Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ROSCAFE_2社に聞く_DevOpsの最新事例__SocialDog発表スライド_.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kazuma.murata
February 07, 2024
Technology
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ROSCAFE_2社に聞く_DevOpsの最新事例__SocialDog発表スライド_.pdf
kazuma.murata
February 07, 2024
More Decks by kazuma.murata
See All by kazuma.murata
Laravel × オニオンアーキテクチャで始めるテスト駆動開発
canon1ky
5
2.5k
BDDフレームワークで始める、E2Eテストのススメ
canon1ky
1
650
20200109サポーターズ勉強会
canon1ky
0
300
2019年11月20日 ビアバッシュ LT発表資料
canon1ky
0
510
仲間と起業、経営から廃業に至る中で学んだ「ビジョン」の本当の大切さ
canon1ky
2
97
Other Decks in Technology
See All in Technology
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
640
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
500
Consistency for mere mortals - A gentle guide to consistency
ufried
0
110
リアクションエンジニア ― 小さなリアクションから、話しかけやすい組織をつくる ―
ryuguyana
1
100
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
370
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
160
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
8
5.1k
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
250
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
120
AIコーディングエージェント開発_全体像
happysamurai294
0
140
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
140
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
150
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Design in an AI World
tapps
1
380
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Statistics for Hackers
jakevdp
799
230k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
490
Making Projects Easy
brettharned
120
6.8k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
390
Producing Creativity
orderedlist
PRO
348
41k
Exploring anti-patterns in Rails
aemeredith
4
550
Ethics towards AI in product and experience design
skipperchong
2
450
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Transcript
User Happyをより早く、より大切にするための デプロイ・モニタリング改善の取り組み ROSCAFE 2社に聞く!DevOpsの最新事例 村田主磨、GrowthTeam
• SocialDogの事業紹介 • デプロイ手法の改善 ◦ 従来の構成 ◦ 対応したアプローチ • モニタリング環境の改善
◦ 従来の構成 ◦ 対応したアプローチ • これからの展望 2 アジェンダ ROSCAFE 2社に聞く!DevOpsの最新事例
SocialDogとは 投稿管理 分析 ソーシャル リスニング 3 SNSマーケティングのための オールインワンツール フォロワー 管理
キャンペーン 一元管理
SocialDog Values 4 会社として 大切にしたい 3つの価値観 User Happy 常にユーザーのHappyを目指そう Love
Technology 技術を愛そう Open Communication オープンにしよう
5 Devチームの技術的な取り組み コンテナ環境 への移⾏ メンテナンスコストを削減し、より安定してサービスを 提供するため、インフラを GCPのサーバーレスのコン テナ実行環境 Cloud Runに移行しています。
Datadogの導⼊ アプリケーション・インフラの監視を効率化するために 監視アプリケーションの Datadogを導入しました。アプ リケーションモニタリング( APM)などの機能を利用し て、品質改善を行なっています。 CIによる積極的な ⾃動化 生産性向上・品質向上のため、積極的に CIによる自動 化を行なっています。 PullRequestの出ているブランチ にpushすると、各種テストが実行されたり、簡単に結 果が確認できるよう、 StorybookやCypressによるテス トの結果(ビジュアルリグレッションテスト)がホスティン グされる仕組みにしています。 PHPからGoへの リプレイス 数年間かけてバックエンドの開発環境を PHP+CodeIgniterからGoにリプレイスしていきます。新 機能はすべて Goにより開発しています。 少しずつPHPからGoにリプレイスしています。 Cypress+reg-suitによるビジュアルリグレッションテスト
6 スキルアップ支援 Cool SaaS⼿当 CoolなSaaSを作るための手当として、月額 1万円を支 給します。使途は自由です。例えば CoolなSaaSへの 課金、リモートワーク環境整備に利用できます。
個人のスキルアップが会社の成長に直結するため、学びを手厚く支援しています。 Level UP サポート (経費での書籍等購⼊) 書籍(電子書籍も OK)や動画コンテンツなどを事前承認 不要で自由に購入できます。直接会社経費として購入 できるクレジットカードを配布しているため、 経費立替でスピーディに購入できます。 副業OK 副業によるスキルアップ、働き方改革を推進していくた め、「本業に影響させない」「競合他社の仕事ではな い」といった一定の要件を満たせば自由に 副業できます(申請制)。 社内勉強会‧ LT会 就業時間中の社内勉強会・ LT会の開催を推奨してい ます。少しずつ本を読む輪読会、 TypeScriptで適切な 型をつけるType-TypeChallengers!!、Figma勉強会、 各自が自由に発表する LT会など様々な勉強会が開催 されています。
7 デプロイ手法の改善 User Happyをより早く、より大切にするための デプロイ・モニタリング改善の取り組み
• CloudRun環境 • ソースコードでのビルドを使用 • デプロイ時に以下全てが行われる ◦ コンテナイメージのビルド ◦ Artifact
Registryへのイメージ永続化 ◦ CloudRunへのデプロイ 従来の構成 デプロイ手法の改善 8
問題点 デプロイ手法の改善 9 User Happyをより多く届けるため、定期リリース、不定期 のリリースどちらも頻繁に行っている 1回あたりのデプロイ時間の長さが目立つようになった DBスキーマ更新後 コードの更新完了までの待ち 時間
main.goファイルが複数存在 するとエラーになる などの課題もあり
• ビルド ◦ リリースブランチの更新で発火 ◦ ArtifactRegistryへの永続化まで • デプロイ ◦ 作業者がコンテナイメージを指定してデ
プロイ ◦ イメージはArtifactRegistryから取得 対応したアプローチ : ビルドとデプロイの分離 デプロイ手法の改善 10 デプロイ時間が約5分→約20秒に!
• 事前にPHPで翻訳ファイルを生成する必要あり ◦ マルチステージビルドで なるべく少ない手数 で 対応 • バッチサーバとWebサーバ用のイメージが必要 ◦
ビルドしたバイナリをマルチステージビルドで 複数のイメージにコピー するだけ ◦ distrolessイメージを使用 ▪ Googleが提供 ▪ shellさえも含まれない最小限のイメー ジ tips デプロイ手法の改善 11
12 モニタリング環境の改善 User Happyをより早く、より大切にするための デプロイ・モニタリング改善の取り組み
• Datadogを使用 • システムログは基本的に Datadog Logs に送られる • リクエスト毎のトレースを Datadog
APMで 閲覧できる ◦ リクエスト本体 ◦ クエリ詳細、実行時間 従来の構成 モニタリング環境の改善 13
14 問題点 SocialDogの新機能 toBでありtoCでもあるサービスのため、 問い合わせの種類が多様 ユーザー1人あたりの調査に時間がかかる 言語刷新のためPHPとGoの両方のサーバーが動 いている 言語ごとにログ内の ユーザーIDフィールドの構
造が異なる 言語によっては トレースの属性が未整備の状態
• 言語毎のログのユーザーIDフィールドを統一 ◦ PHP、Go、JavaScript全て usr.id フィールドに出力されるように ◦ 実装は変えない ◦ DatadogのUI上で設定できる、
remapper機能で対応 対応したアプローチ : ログのUIDフィールド統一 モニタリング環境の改善 15 ユーザーの関連するログ全てを見たい時に 「@usr.id:xxx」で検索するだけで良くなった!
対応したアプローチ: トレースへのUID紐付け モニタリング環境の改善 16 ユーザー単位でリクエストの詳細情報を 追えるようになった! PHP Go APIのミドルウェアで全リクエストに一律で挿入
ビルドは自動化できた。 デプロイまで何らかのイベントをもとに自動で走らせ たり、さらに簡略化できれば、デプロイ作業の属人化 を防ぐことができる。 デプロイ: CDの自動化 モニタリング: ログとトレースの接続 今後の展望 SocialDogの新機能
17 ユーザー毎に何が起きているかはサッと調べられるよ うになった。 しかし、リクエストに紐づくイベントはまだ少し 追いにくさがある。 ログとトレースを接続できれば、リクエスト内のイベント をより把握しやすくなり、UserHappyを届けるスピード をさらに早くできる。
Copyright © SocialDog, Inc. All rights reserved.