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 User Happyをより早く、より大切にするためのデプロイ・モニタリング改善...
Search
ROSCAFE
February 06, 2024
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ROSCAFE User Happyをより早く、より大切にするためのデプロイ・モニタリング改善の取り組み 株式会社SocialDog
ROSCAFE
February 06, 2024
More Decks by ROSCAFE
See All by ROSCAFE
ROSCAFE Meetup ~ENGINEER SUSHI BAR~ Kokoro Takahashi
roscainc
0
33
ROSCAFE Meetup ~ENGINEER SUSHI BAR~ Takashi Suzuki
roscainc
0
35
ROSCAFE ROSCAFE Meetup 〜ENGINEER SUSHI BAR〜 Akimitsu Murata
roscainc
0
43
ROSCAFE TECH NIGHT 株式会社DELTA
roscainc
0
260
ROSCAFE TECH NIGHT 株式会社PICK
roscainc
0
230
ROSCAFE TECH NIGHT 株式会社助太刀
roscainc
0
270
ROSCAFE TECH NIGHT 株式会社Rockets
roscainc
0
240
ROSCAFE 医療×AI OUI.Inc
roscainc
0
230
ROSCAFE 医療×AI AMI株式会社
roscainc
0
47
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Music & Morning Musume
bryan
47
7.3k
A Tale of Four Properties
chriscoyier
163
24k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
410
A Soul's Torment
seathinner
6
3.1k
Skip the Path - Find Your Career Trail
mkilby
1
170
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
420
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
330
Six Lessons from altMBA
skipperchong
29
4.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
Transcript
User Happyをより早く、より大切にするための デプロイ・モニタリング改善の取り組み ROSCAFE 2社に聞く!DevOpsの最新事例 村田主磨、開発部
• 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.