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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
55k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
分割40%キーボードにスムーズに入門するには
hoto17296
1
210
「面白い!」を信じ抜け。激動の時代を貫く、オンリーワン・エンジニアの条件
kizawa2020
2
620
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
160
Azure App Service / Container Apps の組み込み認証
kuniteru
0
110
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
100
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
120
KAEN Company Deck
kaen
PRO
0
220
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
0
220
IDperturb: Enhancing Variation in Synthetic Face Generation via Angular Perturbation
sansantech
PRO
0
100
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Site-Speed That Sticks
csswizardry
13
1.5k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Faster Mobile Websites
deanohume
310
32k
Making Projects Easy
brettharned
120
6.7k
A designer walks into a library…
pauljervisheath
211
24k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
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.