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(デプロイ・段階リリース)までを統合されたワークフローにすることによって、安全かつ効率的なアプリケーション開発を実現する方法をご紹介します。
CircleCI の Japan・APAC 担当として、様々なCI/CD(Web/インフラ/モバイル/ゲーム)の導入・技術的支援をリードしています。前職ではフリマアプリ企業で Software Engineer in Test(SET)、AIスタートアップ企業で DevOps エンジニアとして CI / CD や自動テストの導入・改善を行ってきました。
CircleCI と Argo Rollouts を統合した GKE への継続的リリース基盤 2024/08/01 根本 征 シニアソリューションズエンジニア tadashi-nemoto 1
セッション概要 GKEをはじめとしたKubernetesへのCI/CDには様々な アプローチがありますが、多くの場合CIとCDツールが 別々になり管理や可視化が難しくなります。 本セッションではCircleCIとArgo Rolloutsを連携し、 CI(ビルド・テスト)からCD(デプロイ・段階リリース)までを 統合されたワークフローにすることによって、安全かつ効率的なア プリケーション開発を実現する方法をご紹介します。 2
アジェンダ 1. Kubernetes への CI/CD パイプラインをどう設計するか 2. CircleCI の特徴と、Google Cloud とのインテグレーション 3. CircleCI と Argo Rollouts を統合した、 GKE(Kubernetes)へのプログレッシブデリバリー(デモ) 4. まとめ 3
Kubernetes への CI/CD パイプラインをどう設計 するのか 4
Kubernetes へのデプロイ・リリース方法は様々 https://atmarkit.itmedia.co.jp/ait/articles/2105/26/news005.html 5
プログレッシブデリバリー(カナリアリリース) Argo Rollouts https://www.infracloud.io/blogs/progressive-delivery-argo-rollouts-canary-deployment/ 6
CI と CD ツールが分離・複数のツールが乱立する ArgoCD CircleCI などの CI ツール Argo Rollouts 可視性・一貫性・生産性の低下 7
ミッションクリティカルなアプリケーション開発 におけるCI/CD の選定基準 なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 段階的リリース (プログレッシブ デリバリー)を活用する 8
CircleCI の特徴と、 Google Cloud との インテグレーション 9
ツールチェインにおけるCircleCIのポジション ソースコード管理 コードコミット コラボレーション オーケストレーション デリバリ ビルド • テスト • デリバリ 本番環境へのリリース 開発 運用 実行 モニタリング • 運用 GitHub GitLab Bitbucket 10
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
CircleCI Orb for Google Cloud https://circleci.com/ja/integrations/gcp/ 12
OpenID Connect(Workload Identify 連携) CircleCI に静的な認証情報を保存することなく、OIDC トークンを使って Google Cloud にアクセスすることができます。 https://harryhodge.co.uk/posts/2022/07/keyless-authentication-from-circleci-to-google-cloud 13
CircleCI の Web UI 上から GKE 含めた Kubernetes リリースの 可視化・操作(Argo Rollouts をサポート) CI(ビルド・テスト)からCD(デプロイ・リリース)までを 統合したワークフローで実現 CircleCI Releases https://circleci.com/docs/release/releases-overview 14
CircleCI と Argo Rollouts を 統合した、GKE(Kubernetes) へのプ ログレッシブデリバリー(デモ) 15
CI Pipeline Docker イメージの ビルド Artifact registry へのPush ● CircleCI Orb ○ gcp-cli ○ docker ● OpenID Connect 17
Rollout CircleCI Releases 用の annotation, label を追記 18
CD Pipeline Rollout マニフェス トの Apply ● CircleCI Orb ○ gcp-cli ○ gcp-gke ● OpenID Connect 19
リリース一覧
デプロイを行ったパイプライン(Release Trigger)を参照
リリースの進行(Promote)
リリースのロールバック(Restore)
サンプルリポジトリ・解説記事 https://bitbucket.org/tadashi0713/circleci-demorelease-gke https://qiita.com/CircleCIJapan/items/ 1e4ad6cddbdf60fc4851 24
Free プランから CircleCI Releases を始める https://circleci.com/docs/release/releases-overview
まとめ 26
ミッションクリティカルなアプリケーション開発 におけるCI/CD の選定基準 なるべく1つの CI/CD に 統一する 可視化・管理の しやすさを重視する 段階的リリース (プログレッシブ デリバリー)を活用する 27
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
Thank you!! 29