Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Cloud Deploy と仲良くなりたい
Search
Tomonori Hayashi / ぴーはや
March 17, 2024
Technology
1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloud Deploy と仲良くなりたい
Tomonori Hayashi / ぴーはや
March 17, 2024
More Decks by Tomonori Hayashi / ぴーはや
See All by Tomonori Hayashi / ぴーはや
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
800
ビジネス要望の翻訳が生む アーキテクチャの複雑性とトレードオフ
phaya72
2
620
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
34
23k
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
3
3.8k
Pub/Sub vs Cloud Tasks - その違い、わかりますか?-
phaya72
3
590
OpenTelemetry SpanProcessor を Let's カスタマイズ!
phaya72
3
460
非同期処理でも分散トレーシングしたい!- OpenTelemetry × Pub/Sub -
phaya72
2
1.1k
エラーバジェット枯渇の原因 - 偽陽性との戦い -
phaya72
2
240
Vertex AI Experimentsの実態 - コードを辿った先にあったもの -
phaya72
3
1.4k
Other Decks in Technology
See All in Technology
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
360
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
320
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
110
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
120
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
410
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
310
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
160
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
1
330
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
3
1.3k
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
800
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
360
AIコーディングエージェント開発_全体像
happysamurai294
0
110
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
6.2k
Skip the Path - Find Your Career Trail
mkilby
1
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
490
Are puppies a ranking factor?
jonoalderson
2
4.1k
The Language of Interfaces
destraynor
162
27k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How STYLIGHT went responsive
nonsquared
100
6.3k
The Invisible Side of Design
smashingmag
301
52k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
600
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
230
Transcript
Cloud Deploy と仲良くなりたい Jagu’e’r クラウドネイティブ分科会 Meetup#13 - Tomonori Hayashi 1
Tomonori Hayashi • NTT コミュニケーションズ イノベーションセンター所属 ◦ ノーコード時系列分析ツール「 Node-AI」の開発/運用 ◦
アプリケーションエンジニア ▪ Front:TypeScript - React/Next.js ▪ Infra:Google Cloud • Jagu’e’r ◦ 人材育成分科会 ◦ O11y - SRE 分科会 • Google Cloud Partner Top Engineer 2024 • Google Cloud All Certifications • Favorite Word ◦ class SRE implements DevOps @pHaya72 2
Node-AI の紹介 • ノーコードで AI モデルを作成できる WEB アプリケーション • カードを直感的につなげるだけで
時系列データの前処理から AI モデルの学習・評価までの パイプラインを作成・実行 できる • 技術スタック ◦ TypeScript + React / Next ◦ Python + Django ◦ C# + ASP.NET Core ◦ Kubernetes ◦ Google Cloud ◦ Scikit-learn / Tensorflow / Pytorch 3
Google Cloud × Observability 4
(隙間時間で)こんなことに挑戦しています Cloud Run を中心に アーキテクチャを構築 IAP ・URL マスク・ストレージマウントなど 痒いところに手が届く感じが良き! 構築中のテレメトリ収集/可視化基盤
Cloud Operations との連携 でテレメトリを集約 Grafana から Cloud Monitoring や Cloud Logging に手を伸ばしてテレメトリ を取得 & Otel 経由でも取得 5
(隙間時間で)こんなことに挑戦しています Cloud Run を中心に アーキテクチャを構築 IAP ・URL マスク・ストレージマウントなど 痒いところに手が届く感じが良き! 構築中のテレメトリ収集/可視化基盤
Cloud Operations との連携 でテレメトリを集約 Grafana から Cloud Monitoring や Cloud Logging に手を伸ばしてテレメトリ を取得 & Otel 経由でも取得 6 CI/CD はどこぞ?
構築中ってのもありゴリゴリ手動 ビルド デプロイ $ docker build -t asia-northeast1-docker.pkg.dev/hoge/grafana/dev . $
docker push asia-northeast1-docker.pkg.dev/hoge/grafana/dev 7
構築中ってのもありゴリゴリ手動 ビルド デプロイ $ docker build -t asia-northeast1-docker.pkg.dev/hoge/grafana/dev . $
docker push asia-northeast1-docker.pkg.dev/hoge/grafana/dev 構築中 & 個人での開発なら あまり問題にならない 8
構築中ってのもありゴリゴリ手動 ビルド デプロイ $ docker build -t asia-northeast1-docker.pkg.dev/hoge/grafana/dev . $
docker push asia-northeast1-docker.pkg.dev/hoge/grafana/dev 構築中 & 個人での開発なら あまり問題にならない 今後開発も運用もスケールさせたい 9
構築中ってのもありゴリゴリ手動 ビルド/テスト デプロイ $ docker build -t asia-northeast1-docker.pkg.dev/hoge/grafana/dev . $
docker push asia-northeast1-docker.pkg.dev/hoge/grafana/dev 構築中 & 個人での開発なら あまり問題にならない 今後開発も運用もスケールさせたい 登壇機会もらったし 検討してみよう 10
CI/CD の選択肢 ビルド/テスト/デプロイ ビルド/テスト ビルド/テスト デプロイ デプロイ or and and
11
CI/CD の選択肢 ビルド/テスト/デプロイ ビルド/テスト デプロイ or and ビルド/テスト デプロイ and
12
こんな感じを想像してみた Cloud Shell Editor Github Github Actions Cloud Deploy Artifact
Registry Cloud Run 13
Cloud Deploy さん、こんにちは 定義したプロモーションシーケンスでの一連の ターゲット環境へのアプリ の配信を自動化するマネージドサービス (※1) リリースコンテンツを事前にまとめて環境に依存しない一貫性のある成果 物管理が可能(※2) 継続的デリバリーそのものの改善に必要な指標を可視化
(※2) (※1) https://cloud.google.com/deploy/docs/overview?hl=ja (※2) https://lp.cloudplatformonline.com/rs/808-GJW-314/images/App_Modernization_OnAir_q4_1027_Session.pdf 14
Cloud Deploy さん、こんにちは 定義したプロモーションシーケンスでの一連の ターゲット環境へのアプリ の配信を自動化するマネージドサービス (※1) リリースコンテンツを事前にまとめて環境に依存しない一貫性のある成果 物管理が可能(※2) 継続的デリバリーそのものの改善に必要な指標を可視化
(※2) (※1) https://cloud.google.com/deploy/docs/overview?hl=ja (※2) https://lp.cloudplatformonline.com/rs/808-GJW-314/images/App_Modernization_OnAir_q4_1027_Session.pdf 15 うーん、、 難しそう
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy dev/stg/prod manifest.yaml skaffold .yaml Cloud Build Artifact Registry Create Release Promote to Stg Promote to Prod Release Contents 16 Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy dev/stg/prod manifest.yaml skaffold .yaml Cloud Build Artifact Registry Create Release Promote to Stg Promote to Prod Release Contents 17 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Cloud Build Artifact Registry どの環境に何を デプロイするのか Create Release Promote to Stg Promote to Prod dev/stg/prod manifest.yaml skaffold .yaml Release Contents 18 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ どの環境に何を デプロイするのか Release Contents 19 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ どの環境に何を デプロイするのか Release Contents 20 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ Dev で OK だったら Stg にプロモート どの環境に何を デプロイするのか Release Contents 21 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ Dev で OK だったら Stg にプロモート Release ver.X $ skaffold deploy Stg の manifest.yaml に 基づきデプロイ どの環境に何を デプロイするのか Release Contents 22 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ Dev で OK だったら Stg にプロモート Release ver.X $ skaffold deploy Stg の manifest.yaml に 基づきデプロイ どの環境に何を デプロイするのか Release Contents 23 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Dev の manifest.yaml に 基づきデプロイ Dev で OK だったら Stg にプロモート Release ver.X $ skaffold deploy Stg の manifest.yaml に 基づきデプロイ Release ver.X $ skaffold deploy Stg で OK だったら Prod にプロモート Prod の manifest.yaml に 基づきデプロイ どの環境に何を デプロイするのか Release Contents 24 Cloud Run Service の切り分けとして プロジェクト毎もしくはサービス毎 にしておく Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Release ver.X $ skaffold deploy Release ver.X $ skaffold deploy Yaml や Terraform で 事前に定義 Release Contents 25 Delivery Pipeline Cloud Storage
ばくっとした全体像 Dev - Cloud Run Target Env Stg - Cloud
Run Prod - Cloud Run Cloud Deploy Create Release Promote to Stg Promote to Prod Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml Release ver.X $ skaffold deploy Release ver.X $ skaffold deploy Yaml や Terraform で 事前に定義 Release Contents 26 Delivery Pipeline Cloud Deploy 何をどこの環境にどの順番で(どのように) デプロイするかをあらかじめ設計した デリバリーパイプラインで管理・自動化してくれる
便利な機能 - カナリアリリース - *** - Cloud Run Cloud Deploy
Cloud Build Artifact Registry Release ver.Y $ skaffold deploy 27 Promote to ** ver.Y 50% ver.X 50% DeliveryPipeline に strategy 項目を追加する Delivery Pipeline Cloud Storage
便利な機能 - カナリアリリース - *** - Cloud Run Cloud Deploy
Cloud Build Artifact Registry Release ver.Y $ skaffold deploy 28 Promote to ** ver.Y 100% DeliveryPipeline に strategy 項目を追加する Delivery Pipeline Cloud Storage Stable な状態に移行させることで ver.Y を 100% にロールアウト トラフィック分割した後の新 Ver のロールアウトか 旧 Ver へのロールバックかの作業が容易
便利な機能 - デプロイ後の検証 - Dev - Cloud Run Cloud Deploy
Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml 29 Verify 項目を追加する Create Release or Promote to **
便利な機能 - デプロイ後の検証 - Dev - Cloud Run Cloud Deploy
Create Release or Promote to ** Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml 30 Verify 項目を追加する デプロイ完了後に Verify 項目で 設定したコマンドを実行 $ wget http://*** コマンドが失敗したら ロールアウトも失敗する
便利な機能 - デプロイ指標の可視化・アラート - 31 DevOps 改善に役立つ指標の中でも 「デプロイ頻度」「失敗率」を計測する
便利な機能 - デプロイ後の検証 - Dev - Cloud Run Cloud Deploy
Create Release or Promote to ** Cloud Build Artifact Registry Release ver.X $ skaffold deploy dev/stg/prod manifest.yaml skaffold .yaml 32 Verify 項目を追加する デプロイ完了後に Verify 項目で 設定したコマンドを実行 $ wget http://*** コマンドが失敗したら ロールアウトも失敗する Cloud Deploy デプロイ戦略やデプロイ後の検証も デリバリーパイプラインに組み込める
Github Actions との連携は意外と簡単 33 Workload Identity での連携 OAuth トークンで Docker
に対して認証 (※) https://github.com/google-github-actions/example-workflows/blob/main/workflows/create-cloud-deploy-release/cloud-deploy-to-cloud-run.yml
Github Actions との連携は意外と簡単 34 Workload Identity での連携 OAuth トークンで Docker
に対して認証 (※) https://github.com/google-github-actions/example-workflows/blob/main/workflows/create-cloud-deploy-release/cloud-deploy-to-cloud-run.yml create-cloud-deploy-release という Action を使うことで適切なパラメーターを渡すだけ
Github Actions との連携は意外と簡単 35 Workload Identity での連携 OAuth トークンで Docker
に対して認証 (※) https://github.com/google-github-actions/example-workflows/blob/main/workflows/create-cloud-deploy-release/cloud-deploy-to-cloud-run.yml create-cloud-deploy-release という Action を使うことで適切なパラメーターを渡すだけ よし!これでいい感じの CI/CD 実装ができそうだ・・・
Github Actions との連携は意外と簡単 36 Workload Identity での連携 OAuth トークンで Docker
に対して認証 (※) https://github.com/google-github-actions/example-workflows/blob/main/workflows/create-cloud-deploy-release/cloud-deploy-to-cloud-run.yml create-cloud-deploy-release という Action を使うことで適切なパラメーターを渡すだけ よし!これでいい感じの CI/CD 実装ができそうだ・・・ と思ったけど、Cloud Deploy の良さを活かせるか??
要件とアプローチを整理 37 現状(最低限実装できればいいこと) 検討内容 今のところ 1 プロジェクトに Dev/Prod が 異なる
Cloud Run Service・デプロイ頻度は低い チームの多くは アプリケーションエンジニア
要件とアプローチを整理 38 現状(最低限実装できればいいこと) 検討内容 今のところ 1 プロジェクトに Dev/Prod が 異なる
Cloud Run Service・デプロイ頻度は低い チームの多くは アプリケーションエンジニア 現状に対してはちょっとリッチすぎるかも Cloud Deploy のキャッチアップも必要
要件とアプローチを整理 39 現状(最低限実装できればいいこと) 決定内容 gcloud コマンドで Cloud Run Service にデプロイ
Cloud Deploy を使いたくなったら置 き換えるだけ 今のところ 1 プロジェクトに Dev/Prod が 異なる Cloud Run Service・デプロイ頻度は低い チームの多くは アプリケーションエンジニア
要件とアプローチを整理 40 現状(最低限実装できればいいこと) 決定内容 gcloud コマンドで Cloud Run Service にデプロイ
Cloud Deploy を使いたくなったら置 き換えるだけ 今のところ 1 プロジェクトに Dev/Prod が 異なる Cloud Run Service・デプロイ頻度は低い チームの多くは アプリケーションエンジニア 俺の考える最強の CI/CD(の軸) 要件に合わせてシンプルな技術選択する CI と CD を分離することで それぞれ最適なタイミングで最適な技術を導入しやすくする
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik Thanks! @pHaya72 @t_hayashi 41
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik Thanks! Cloud Deploy ! @pHaya72 @t_hayashi 42
余談 43 ピックアップしてもらえたが 受賞には至らなかった(悔しい) ただ、これがあって今回の登壇の話を もらえたので頑張ってよかった (※) https://cloud.google.com/blog/ja/topics/partners/google-cloud-partner-tech-blog-challenge-2023-winners
はまったポイント 44 Cloud Run Cloud Deploy Cloud Build Artifact Registry
Cloud Storage イメージをひっぱてくる権限 デプロイを実行する権限 オブジェクトを作成する権限 デフォルトが Compute Engine の デフォルトサービスアカウントで実行 ログを書き込む権限権限
はまったポイント 45 Cloud Run Cloud Deploy Cloud Build Artifact Registry
Cloud Storage イメージをひっぱてくる権限 デプロイを実行する権限 オブジェクトを作成する権限 デリバリーパイプラインを構築する際の executeConfig でサービスアカウントを指定する必要があった ログを書き込む権限権限
参考文献 ★ GitHub Actions と Google Cloud Deploy が連携 ◦
https://cloud.google.com/blog/ja/products/devops-sre/using-github-actions-with-google-cloud-deploy • GitHub Actions を使用して Cloud Run にデプロイする ◦ https://cloud.google.com/blog/ja/products/devops-sre/deploy-to-cloud-run-with-github-actions ★ Cloud Deploy 公式ドキュメント ◦ https://cloud.google.com/build/docs/deploying-builds/deploy-cloud-run?hl=ja ★ Google Cloud Partner Tech Blog Challenge の 2023 年度受賞者発表 ◦ https://cloud.google.com/blog/ja/topics/partners/google-cloud-partner-tech-blog-challenge-2023-winners ★ Cloud Run のための実践 Cloud Deploy ◦ https://zenn.dev/knowledgework/articles/cloud-deploy-for-cloud-run ★ Cloud Deploy で始める 継続的デリバリー 䛾 継続的改善 ◦ https://lp.cloudplatformonline.com/rs/808-GJW-314/images/App_Modernization_OnAir_q4_1027_Session.pdf ★ Google Cloud Deploy にデプロイ後に検証を行う機能を導入 ◦ https://cloud.google.com/blog/ja/topics/developers-practitioners/google-cloud-deploy-introduces-post-deploy ment-verification 46