Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ROSCAFE_2社に聞く_DevOpsの最新事例__SocialDog発表スライド_.pdf
Search
kazuma.murata
February 07, 2024
Technology
310
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
630
20200109サポーターズ勉強会
canon1ky
0
300
2019年11月20日 ビアバッシュ LT発表資料
canon1ky
0
500
仲間と起業、経営から廃業に至る中で学んだ「ビジョン」の本当の大切さ
canon1ky
2
91
Other Decks in Technology
See All in Technology
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
87k
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
290
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
210
AIエージェントを雇う前に決める5つのこと
knishioka
1
130
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
210
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
1
780
魔法少女がClaude Codeを監視する / ccportal-deck
noriyukitakei
3
110
いま好きなこと 最初はそんなに好きじゃなかった #tamagawadev
nishiuma
1
150
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
610
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
Master Dataグループ紹介資料
sansan33
PRO
1
4.9k
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
280
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
Navigating Weather and Climate Data
rabernat
0
500
Raft: Consensus for Rubyists
vanstee
141
7.7k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
エンジニアに許された特別な時間の終わり
watany
108
250k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Invisible Side of Design
smashingmag
301
52k
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.