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
Google Cloud で クラウドネイティブに入門しよう
Search
Taisei Oda
March 31, 2024
88
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google Cloud で クラウドネイティブに入門しよう
SAPPORO ENGINEER BASE #01
Taisei Oda
March 31, 2024
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
90
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
RailsConf 2023
tenderlove
30
1.6k
Automating Front-end Workflow
addyosmani
1369
210k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Product Roadmaps are Hard
iamctodd
55
13k
Visualization
eitanlees
153
17k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Transcript
Google Cloud で クラウドネイティブに入門しよう SAPPORO ENGINEER BASE #01
自己紹介 • 現在は SRE しています • 社会人歴 4 年目の 25
歳 • 2022/12~ 札幌市中央区に移住 小田 泰生 (taisei oda) 𝕏: oda(@0I74_)
近況
1. おすすめの Google Cloud のサービスの紹介 2. 基本的な使い方 お話すること
おすすめの Google Cloud のサービス
Cloud Run
Cloud Deploy
2つのサービスについて紹介します
Cloud Run とは?
Cloud Run (サービス) Knative 基盤 GKE への移行もし やすい デプロイが簡単 デプロイ後URLが付
与される フルマネージド サーバーレス 0→N自動スケール コンテナをデプロイできるサービス!
Cloud Run のユースケース Cloud Run Cloud Run Cloud Run パブリック(すべて)
• Web App • API endpoint など プライベート(内部) • マイクロサービスなど
Cloud Run のリソースモデル サービス (https://hoge-abc123-an.a.run.app) サービス • エンドポイント提供 リビジョン •
デプロイ毎に作成される • デプロイで指定したイメージ情報、 1 インスタンスあたりの CPU/メモリ数 インスタンス • 実際に動作するコンテナインスタン ス Revision C 20% 80% Instance Instance Instance 0% https://cloud.google.com/run/docs/resource-model Revision B Revision A
Cloud Run のデプロイ方法 Cloud Run Artifact Registry Docker Image サービス
Revision ① コンテナイメージ作成 ② デプロイ (サービス/リビジョン作成)
Cloud Run のデプロイ方法 デプロイが完了するとURLが自動で発行される https://{サービス名}-{ランダム文字列}-an.a.run.app
Cloud Run のデプロイ方法 一般的なデプロイ方法 # Docker ビルド $ docker build
-t \ asia-northeast1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE} # Artifact Registry に イメージを push $ docker push \ asia-northeast1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE} # Cloud Run へデプロイ $ gcloud run deploy $NAME --region=${_LOCATION} --image \ asia-northeast1-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/${_IMAGE}
Cloud Run のデプロイ方法 Dockerfile を用意せずにソースコードからもデプロイ可能 (イメージのビルド、 Artifact Registry へのイメージ Push
を自動化) # builpacks を使ってソースコードから Cloud Run へデプロイ $ gcloud run deploy <service> --region=asia-northeast1 --source=. • Cloud Run には Buildpacks の仕様が実装済み ◦ --source オプションを指定するだけ • 対応言語は Go、Node.js、Python、Java、Kotlin、.NET、Ruby、PHP
Cloud Run のデプロイ戦略 • カナリア • Blue/Green • ロールバック
Cloud Run 単体でもいろんな デプロイ方法があるけど、、、 なんかかっこよくない!!!!!!
ここで Cloud Deploy の出番
Cloud Deploy とは?
Cloud Deploy アプリケーションを Cloud Run や Google Kubernetes Engine の環境に
継続的デリバリー(CD) することに特化したマネージド サービス • アプリケーションのデプロイ ターゲットやデプロイ順序を定義 • デプロイに関する情報を可視化
Cloud Deploy 仕組み Skaffold Google の OSS、コンテナベースの継続的な開発を容易にする CLI ツール (ビルド・デプロイ・テストといったことができる)
これを Cloud Deploy は内部で利用 Skaffold で宣言した内容で Cloud Run (GKE) にデプロイする
Cloud Deploy でカナリアデプロイする Cloud Run Cloud Run 新 Revision 古
Revision Cloud Deploy Skaffold 新 Revision 古 Revision 100% 0% ②デプロイ ①リリース作成 25%→… 100% 75%→… 0% ③デプロイ トラフィックの一部を ルーティング ④トラフィックを増やして いく dev環境 prd環境
Cloud Deploy デリバリー パイプライン作成 apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name:
cloud-run-pipeline description: test pipeline serialPipeline: stages: - targetId: dev profiles: [dev] - targetId: prd profiles: [prd] strategy: canary: runtimeConfig: cloudRun: automaticTrafficControl: true canaryDeployment: percentages: [25, 50, 75] --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: dev run: location: projects/dev環境/locations/asia-east1 executionConfigs: - usages: - RENDER - DEPLOY --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: prd run: location: projects/prd環境/locations/asia-east1 executionConfigs: - usages: - RENDER - DEPLOY clouddeploy.yaml # デリバリー パイプラインの作成 $ gcloud deploy apply --file=clouddeploy.yaml \ --region=asia-northeast1
Cloud Deploy リリースの作成 # リリースの作成 $ gcloud deploy releases create
[リリース名] \ --region=asia-northeast1 \ --delivery-pipeline=[パイプライン名] \ --skaffold-file=skaffold.yaml apiVersion: skaffold/v3alpha1 kind: Config metadata: name: deploy-run profiles: - name: dev manifests: rawYaml: - run-dev.yaml - name: prd manifests: rawYaml: - run-prd.yaml deploy: cloudrun: {} skaffold.yaml
Cloud Deploy リリースの作成 # リリースを昇格してprd環境にデプロイ $ gcloud deploy releases promote
\ --release=[リリース名] \ --delivery-pipeline=[パイプライン名] \ --region=asia-northeast1 25% のトラフィックがこのリビジョンに ルーティングされる
Cloud Deploy リリースの作成 # 50%のフェーズに移行 $ gcloud deploy rollouts advance
[ロールアウト名]\ --release=[リリース名] \ --delivery-pipeline=[パイプライン名] \ --region=asia-northeast1 50% に変化
まとめ • Cloud Run ◦ 簡単にアプリケーションをデプロイできる ◦ 勝手にスケーリングしてくれる • Cloud
Deploy ◦ デプロイに特化したイケてるサービス
Thanks!!