CircleCI と Argo Rollouts を統合した GKE への継続的リリース基盤

546 Views

August 01, 24

スライド概要

Google Cloud Next Tokyo 2024
https://cloudonair.withgoogle.com/events/next-tokyo-24?talk=d1-sl-10

GKEをはじめとしたKubernetesへのCI/CDには様々なアプローチがありますが、多くの場合CIとCDツールが別々になり管理や可視化が難しくなります。本セッションではCircleCIとArgo Rolloutsを連携し、CI(ビルド・テスト)からCD(デプロイ・段階リリース)までを統合されたワークフローにすることによって、安全かつ効率的なアプリケーション開発を実現する方法をご紹介します。

profile-image

CircleCI の Japan・APAC 担当として、様々なCI/CD(Web/インフラ/モバイル/ゲーム)の導入・技術的支援をリードしています。前職ではフリマアプリ企業で Software Engineer in Test(SET)、AIスタートアップ企業で DevOps エンジニアとして CI / CD や自動テストの導入・改善を行ってきました。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

CircleCI と Argo Rollouts を統合した GKE への継続的リリース基盤 2024/08/01 根本 征 シニアソリューションズエンジニア tadashi-nemoto 1

2.

セッション概要 GKEをはじめとしたKubernetesへのCI/CDには様々な アプローチがありますが、多くの場合CIとCDツールが 別々になり管理や可視化が難しくなります。 本セッションではCircleCIとArgo Rolloutsを連携し、 CI(ビルド・テスト)からCD(デプロイ・段階リリース)までを 統合されたワークフローにすることによって、安全かつ効率的なア プリケーション開発を実現する方法をご紹介します。 2

3.

アジェンダ 1. Kubernetes への CI/CD パイプラインをどう設計するか 2. CircleCI の特徴と、Google Cloud とのインテグレーション 3. CircleCI と Argo Rollouts を統合した、 GKE(Kubernetes)へのプログレッシブデリバリー(デモ) 4. まとめ 3

4.

Kubernetes への CI/CD パイプラインをどう設計 するのか 4

5.

Kubernetes へのデプロイ・リリース方法は様々 https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html 5

6.

プログレッシブデリバリー(カナリアリリース) Argo Rollouts https://www.infracloud.io/blogs/progressive-delivery-argo-rollouts-canary-deployment/ 6

7.

CI と CD ツールが分離・複数のツールが乱立する ArgoCD CircleCI などの CI ツール Argo Rollouts 可視性・一貫性・生産性の低下 7

8.

ミッションクリティカルなアプリケーション開発 におけるCI/CD の選定基準 なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 段階的リリース (プログレッシブ デリバリー)を活用する 8

9.

CircleCI の特徴と、 Google Cloud との インテグレーション 9

10.

ツールチェインにおけるCircleCIのポジション ソースコード管理 コードコミット コラボレーション オーケストレーション デリバリ ビルド • テスト • デリバリ 本番環境へのリリース 開発 運用 実行 モニタリング • 運用 GitHub GitLab Bitbucket 10

11.

CircleCI × Google Cloud の特徴 CircleCI Orb OpenID Connect CircleCI Releases Google Cloud サービス (Cloud Run, GKE など)と 簡単に連携・アプリケー ションをデプロイすること ができます (Workload Identify 連携) CircleCI の Web UI 上から GKE 含めた Kubernetes リ リースの可視化・操作(進 行、ロールバック、キャンセ ル)ができます。 CircleCI に静的な認証情報 を保存することなく、OIDC トークンを使って Google Cloud にアクセスすることが できます。 11

12.

CircleCI Orb for Google Cloud https://circleci.com/ja/integrations/gcp/ 12

13.

OpenID Connect(Workload Identify 連携) CircleCI に静的な認証情報を保存することなく、OIDC トークンを使って Google Cloud にアクセスすることができます。 https://harryhodge.co.uk/posts/2022/07/keyless-authentication-from-circleci-to-google-cloud 13

14.

CircleCI の Web UI 上から GKE 含めた Kubernetes リリースの 可視化・操作(Argo Rollouts をサポート) CI(ビルド・テスト)からCD(デプロイ・リリース)までを 統合したワークフローで実現 CircleCI Releases https://circleci.com/docs/release/releases-overview 14

15.

CircleCI と Argo Rollouts を 統合した、GKE(Kubernetes) へのプ ログレッシブデリバリー(デモ) 15

17.

CI Pipeline Docker イメージの ビルド Artifact registry へのPush ● CircleCI Orb ○ gcp-cli ○ docker ● OpenID Connect 17

18.

Rollout CircleCI Releases 用の annotation, label を追記 18

19.

CD Pipeline Rollout マニフェス トの Apply ● CircleCI Orb ○ gcp-cli ○ gcp-gke ● OpenID Connect 19

20.

リリース一覧

21.

デプロイを行ったパイプライン(Release Trigger)を参照

22.

リリースの進行(Promote)

23.

リリースのロールバック(Restore)

24.

サンプルリポジトリ・解説記事 https://bitbucket.org/tadashi0713/circleci-demorelease-gke https://qiita.com/CircleCIJapan/items/ 1e4ad6cddbdf60fc4851 24

25.

Free プランから CircleCI Releases を始める https://circleci.com/docs/release/releases-overview

26.

まとめ 26

27.

ミッションクリティカルなアプリケーション開発 におけるCI/CD の選定基準 なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 段階的リリース (プログレッシブ デリバリー)を活用する 27

28.

CircleCI × Google Cloud の特徴 CircleCI Orb OpenID Connect CircleCI Releases Google Cloud サービス (Cloud Run, GKE など)と 簡単に連携・アプリケー ションをデプロイすること ができます (Workload Identify 連携) CircleCI の Web UI 上から GKE 含めた Kubernetes リ リースの可視化・操作(進 行、ロールバック、キャンセ ル)ができます。 CircleCI に静的な認証情報 を保存することなく、OIDC トークンを使って Google Cloud にアクセスすることが できます。 28

29.

Thank you!! 29