Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ROSCAFE User Happyをより早く、より大切にするためのデプロイ・モニタリング改善...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for ROSCAFE ROSCAFE
February 06, 2024
88

ROSCAFE User Happyをより早く、より大切にするためのデプロイ・モニタリング改善の取り組み 株式会社SocialDog

Avatar for ROSCAFE

ROSCAFE

February 06, 2024
Tweet

Transcript

  1. • SocialDogの事業紹介 • デプロイ手法の改善 ◦ 従来の構成 ◦ 対応したアプローチ • モニタリング環境の改善

    ◦ 従来の構成 ◦ 対応したアプローチ • これからの展望 2 アジェンダ ROSCAFE 2社に聞く!DevOpsの最新事例
  2. 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によるビジュアルリグレッションテスト 

  3. 6
 スキルアップ支援
 Cool SaaS⼿当 CoolなSaaSを作るための手当として、月額 1万円を支 給します。使途は自由です。例えば CoolなSaaSへの 課金、リモートワーク環境整備に利用できます。 


    個人のスキルアップが会社の成長に直結するため、学びを手厚く支援しています。
 Level UP サポート (経費での書籍等購⼊) 書籍(電子書籍も OK)や動画コンテンツなどを事前承認 不要で自由に購入できます。直接会社経費として購入 できるクレジットカードを配布しているため、 
 経費立替でスピーディに購入できます。 
 副業OK 副業によるスキルアップ、働き方改革を推進していくた め、「本業に影響させない」「競合他社の仕事ではな い」といった一定の要件を満たせば自由に 
 副業できます(申請制)。 
 社内勉強会‧ LT会 就業時間中の社内勉強会・ LT会の開催を推奨してい ます。少しずつ本を読む輪読会、 TypeScriptで適切な 型をつけるType-TypeChallengers!!、Figma勉強会、 各自が自由に発表する LT会など様々な勉強会が開催 されています。 

  4. • CloudRun環境 • ソースコードでのビルドを使用 • デプロイ時に以下全てが行われる ◦ コンテナイメージのビルド ◦ Artifact

    Registryへのイメージ永続化 ◦ CloudRunへのデプロイ 従来の構成 デプロイ手法の改善 8
  5. • ビルド ◦ リリースブランチの更新で発火 ◦ ArtifactRegistryへの永続化まで • デプロイ ◦ 作業者がコンテナイメージを指定してデ

    プロイ ◦ イメージはArtifactRegistryから取得 対応したアプローチ : ビルドとデプロイの分離 デプロイ手法の改善 10 デプロイ時間が約5分→約20秒に!
  6. • 事前にPHPで翻訳ファイルを生成する必要あり ◦ マルチステージビルドで なるべく少ない手数 で 対応 • バッチサーバとWebサーバ用のイメージが必要 ◦

    ビルドしたバイナリをマルチステージビルドで 複数のイメージにコピー するだけ ◦ distrolessイメージを使用 ▪ Googleが提供 ▪ shellさえも含まれない最小限のイメー ジ tips デプロイ手法の改善 11
  7. • Datadogを使用 • システムログは基本的に Datadog Logs に送られる • リクエスト毎のトレースを Datadog

    APMで 閲覧できる ◦ リクエスト本体 ◦ クエリ詳細、実行時間 従来の構成 モニタリング環境の改善 13
  8. • 言語毎のログのユーザーIDフィールドを統一 ◦ PHP、Go、JavaScript全て usr.id フィールドに出力されるように ◦ 実装は変えない ◦ DatadogのUI上で設定できる、

    remapper機能で対応 対応したアプローチ : ログのUIDフィールド統一 モニタリング環境の改善 15 ユーザーの関連するログ全てを見たい時に 「@usr.id:xxx」で検索するだけで良くなった!
  9. ビルドは自動化できた。 デプロイまで何らかのイベントをもとに自動で走らせ たり、さらに簡略化できれば、デプロイ作業の属人化 を防ぐことができる。 デプロイ: CDの自動化 モニタリング: ログとトレースの接続 今後の展望 SocialDogの新機能

    17 ユーザー毎に何が起きているかはサッと調べられるよ うになった。 しかし、リクエストに紐づくイベントはまだ少し 追いにくさがある。 ログとトレースを接続できれば、リクエスト内のイベント をより把握しやすくなり、UserHappyを届けるスピード をさらに早くできる。