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

Cloud Run と GitHub Template Repository による軽量なアプ...

Cloud Run と GitHub Template Repository による軽量なアプリケーションプラットフォーム/ #nikkei_tech_talk

Cloud Run と GitHub Template Repository による軽量なアプリケーションプラットフォームというタイトルで日本経済新聞社のSREチーム山崎さんが発表しました #nikkei_tech_talk

2024/09/12開催 NIKKEI Tech Talk #24

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. 2024/09/12 日本経済新聞社 SRE チーム 山崎 一樹 Cloud Run と GitHub

    Template Repository による 軽量なアプリケーションプラットフォーム NIKKEI TECH TALK #24
  2. #nikkei_tech_talk 本日話すこと 3 • 日経の SRE チームが提供するプラットフォーム • 社内のアプリケーション基盤のニーズ •

    Cloud Run プロジェクトテンプレートの紹介 ◦ プラットフォームの構成 ◦ 仕組みと機能 • プラットフォームの効果
  3. #nikkei_tech_talk 日経の SRE チームが提供するプラットフォーム • アプリケーション基盤 • 負荷試験基盤 ◦ 一年前の

    NIKKEI Tech Talk #11 で話ました! • 監視・オブザーバビリティ基盤 ◦ ログ、メトリクス • インシデント管理ツール • etc. 5 SRE チームが多くのプラットフォームを開発・運用しています
  4. #nikkei_tech_talk アプリケーション基盤 • Vessel ◦ 以前からあるプロダクションレベルの高信頼なプラットフォーム ◦ GKE (Kubernetes) ベース

    ◦ 学習コスト高め • Cloud Run プロジェクトテンプレート ◦ 新しく作った社内デモや PoC 用途のプラットフォーム ◦ Google Cloud Run ベース ◦ シンプルで利用が簡単 6
  5. #nikkei_tech_talk 今回の話 アプリケーション基盤 • Vessel ◦ 以前からあるプロダクションレベルの高信頼なプラットフォーム ◦ GKE (Kubernetes)

    ベース ◦ 学習コスト高め • Cloud Run プロジェクトテンプレート ◦ 新しく作った社内デモや PoC 用途のプラットフォーム ◦ Google Cloud Run ベース ◦ シンプルで利用が簡単 7
  6. #nikkei_tech_talk 社内の声 9 デモや PoC でサクっと使える基盤が欲しい 認証の仕組みがあるといいな〜 Cloud Run 使いたいけど

    Google Cloud のプロジェクトを持っていないんだよね エンジニア部署ではないのでインフラに詳しい人が少ない
  7. #nikkei_tech_talk 既存の基盤ではダメ? • プロダクションレベルの高信頼なプラットフォーム ◦ マルチクラスタ、有事における事業継続計画 (BCP) • GKE (Kubernetes)

    ベースで学習コストが比較的高い • 利用するためには基盤チームによる初期セットアップが必要 ◦ 作業に最短でも数日要する 10 以前から Vessel というアプリケーション基盤があった
  8. #nikkei_tech_talk 既存の基盤ではダメ? • プロダクションレベルの高信頼なプラットフォーム ◦ マルチクラスタ、有事における事業継続計画 (BCP) • GKE (Kubernetes)

    ベースで学習コストが比較的高い • 利用するためには基盤チームによる初期セットアップが必要 ◦ 作業に最短でも数日要する 11 以前から Vessel というアプリケーション基盤があった 社内向けのちょっとしたアプリケーションを デプロイしたい場合には不向き
  9. #nikkei_tech_talk 要件の整理 背景 • 誰もが Cloud Run を動かすためのプロジェクトを持っているわけではない • Google

    Cloud プロジェクトの作成は社内申請が必要で、ちょっとした用途には 敷居が高く、リードタイムも発生する 要件 • 開発者が Google Cloud プロジェクトを用意する必要がない 14 Cloud Run 使いたいけど Google Cloud のプロジェクトを持っていないんだよね
  10. #nikkei_tech_talk GitHubテンプレートレポジトリ SRE チームのサポートがなくとも誰でも 簡単に利用できる 23 • コンテナイメージをビルドするための Dockerfile •

    CloudRun の設定 YAML • GitHub Actions の CI/CD • 使い方を十分に示した README シンプルな構成で 可能な限り認知負荷を下げる
  11. #nikkei_tech_talk GitHub Actions Workflow デプロイ用ワークフローをテンプレートレポジトリに 内包しており、基本はデフォルト設定でOK。 コミットを Push すればデプロイされる。 必要に応じてテストや

    Lint のようなステップを挿入するなどカ スタマイズ可能 設定不要でデプロイ 24 Checkout [actions/checkout] Build [Nikkei/cloudrun-template/build-action] Deploy [Nikkei/cloudrun-template/deploy-action]
  12. #nikkei_tech_talk GitHub Actions Workflow • 「Build」と 「Deploy」アクションは、別のアクショ ン用レポジトリで管理している • アクションレポジトリにて実装を行い、各アプリ

    ケーションからは参照するだけ 基盤の CI/CD の実装をアプリケーションから分 離し、独立して変更を行える CI/CD のメンテナンス性を高める 25
  13. #nikkei_tech_talk オブザーバビリティ アプリケーションのメトリクス・ログを表示する Grafana ダッシュボードを提供 • Cloud Run のメトリクスやログは Google

    Cloud Monitoring に自動で取り込まれる • 開発者には Google Cloud を意識させない設計方針のため Grafana で確認できるように 26
  14. #nikkei_tech_talk 軽量なプラットフォーム • 基盤チームが管理するものが多いほど運用負荷が高まる ◦ 依存サービス・ライブラリのアップデート、障害対応、etc. • 基盤を運用する SRE チームは少人数

    ◦ できるだけ運用負荷は低く抑えたい Cloud Run プロジェクトテンプレートは、ほぼすべてをマネージドサービス・SaaS を利用して構築している • 自分たちで管理が必要なインフラを持っていない • 独自で実装しているのは、GitHub Actions ワークフローのみ 28 管理するものを減らして運用負荷を減らす
  15. #nikkei_tech_talk 利用状況 • 稼動アプリケーション数 ◦ ローンチ後約 1 年で 73 アプリケーション

    • 主要なアプリケーション ◦ ビジュアルコンテンツ制作のプロトタイプやデモが多い ▪ 当初のニーズを満たせている ◦ 社内向けの便利ツールなども 30
  16. #nikkei_tech_talk 利用者の声 • ビジュアルコンテンツのプロトタイプのデ プロイが高速化された • チーム・グループ内におけるモックの共有 が円滑に行えるようになった • これまでモノリシックに開発していたが、コ

    ンテンツごとにプロトタイプを管理しやすく なった Cloud Run テンプレートで 高速にプロトタイピングを行い 実際に公開に至ったコンテンツの例 31 「地震列島」日本 地図とデータで見る https://vdata.nikkei.com/newsgraphics/japan-epicenter-map/
  17. #nikkei_tech_talk まとめ • GitHub と Cloud Run を利用した軽量なアプリケーションプラットフォーム ◦ ユーザのニーズに対応し、開発・ビジネスを加速

    ◦ できるだけ独自にインフラを抱えず、既存のサービスを活用 ◦ 運用負荷の低く抑え、数人のチームで運用 • 小規模なチーム・組織でも実践可能 ◦ 「プラットフォーム」と聞くと大変と思いがち ◦ 小さく軽量なプラットフォームでも十分に効果を発揮し、ビジネスに貢献できる 33