Slide 1

Slide 1 text

| © 2025 Cloud Ace, Inc 新しいプロダクトのデプロイパイプラインに Argo CDを使った話

Slide 2

Slide 2 text

| © 2025 Cloud Ace, Inc 自己紹介 北野 敦資 @Aquamarine_1010 クラウドエース株式会社  DevSecOps 事業部 Expert ● 2019年 6月よりGoogle Cloudへのシステムの提案・設計から運用までの実施 ● 前職ではシステムの運用管理の自動・自律化の研究、プライベートクラウドの運用・ 開発

Slide 3

Slide 3 text

| © 2025 Cloud Ace, Inc 概要 Argo CDとCrossplaneを使ってデプロイパイプラインの構築

Slide 4

Slide 4 text

| © 2025 Cloud Ace, Inc 当社の提供サービス 顧客システム・ビジネスの信頼性向上 ● 24/365でのシステムの監視 ● システムの機能改善の提案の実施

Slide 5

Slide 5 text

| © 2025 Cloud Ace, Inc ● サービスの機能 ○ 認証基盤: Keycloak ○ ダッシュボード: Grafana ○ ナレッジ管理: Backstage ○ チケット管理: Redmine ○ サービスデスク: 独自アプリ ○ インシデント管理: Pagerduty ● アプリ基盤 ○ GKE・Cloud Run サービスのシステム構成概要 GKE と Cloud Run でアプリケーションを構成

Slide 6

Slide 6 text

| © 2025 Cloud Ace, Inc 実現したいデプロイパイプライン ● 運用ミスをなくすパイプライン ○ 専用の基盤からのみの変更 ○ 構成情報のコード化 ○ 統一的なデプロイフロー ○ 本番環境への変更を明示的に行う ● 変更に気づける ○ 変更作業の失敗への通知 信頼性の高い CI / CD パイプライン

Slide 7

Slide 7 text

| © 2025 Cloud Ace, Inc デプロイパイプラインの設計 信頼性の高いデプロイの実現 ● デプロイ専用環境の構築 ○ Google Cloudの専用プロジェクトを準備 し、開発・本番環境に横断的に構成変更 の実施 ● CIとCD のパイプラインの分離 ● IaCを採用し変更作業のコード化 ● GitOpsの採用 ● リポジトリ戦略の設計 ○ タグ作成により本番環境のリリース ● Slackで変更作業者への通知

Slide 8

Slide 8 text

| © 2025 Cloud Ace, Inc デプロイ方法の設計 ● アプリケーションのデプロイ ○ Argo CD + Kustomizeによるデプロイ ● Google Cloud上のアプリの設定 ○ Cloud Build + Terraformによるデプロイ ■ 特定のIPから変更できるようにする ● Google CloudとSaaSの設定 ○ GitHub Actions + Terraformによるデプロイ 種類ごとにデプロイエージェントとコードの使い分け

Slide 9

Slide 9 text

| © 2025 Cloud Ace, Inc アプリケーションのデプロイ

Slide 10

Slide 10 text

| © 2025 Cloud Ace, Inc Argo CD の設計 ● 単一Argo CDで複数のGKEの管理 ○ GKE の Fleet 機能 + Connect Gateway による全環 境への接続 ○ argocd-fleet-sync によるクラスタの情報の同期 ● Argo CDのprojectに各環境の分離 ○ プロジェクトで設定する内容 ■ デプロイ先のクラスタ情報 ■ 各環境のアクセス権限 ■ 参照するリポジトリ ● システムのKeycloakによるSSOの実現 ○ Keycloak のグループによるログイン ● Argo CD NotificationによるSlack通知 ○ エラー発生時に @channel で全員への連絡 安全かつ効率的なArgo CD 環境の実現

Slide 11

Slide 11 text

| © 2025 Cloud Ace, Inc Argo CD の Application 設計 ● 自前のアプリケーションは Kustomizeで管理 ○ baseの内容を overlays で環境に沿った変更する ■ 例: イメージのバージョン、Podのresourcesなど ● Application : 管理するアプリケーション = 1:1 ○ Keycloak、 Grafana、 サービスデスクを1つのApplicationとし て管理する ● 作成したGKE上のリソースを Application で管理 ○ GKE のエクステンション、Argo CD 自体も Applicationで管理 ● Applicationは ApplicationSetで管理 ○ 本番環境は自動同期しないように設定 ■ 管理者が差分を目視確認してSYNCする Kustomizeを使った効率的なアプリケーション管理

Slide 12

Slide 12 text

| © 2025 Cloud Ace, Inc Argo CD と 連携するリポジトリの設計 ● デプロイ用のリポジトリの作成 ○ KubernetesのマニフェストとCloud Run の 構成情報の管理 ○ Argo CDと連携 ● アプリケーションのリポジトリでの実施 内容 ○ Dockerイメージの作成 ○ 開発環境の アプリの更新 ■ Github Actions デプロイ用のリポジト リのマニフェストの更新 CI と CDを明確に分離するように設計 a イメージの作成とバージョン更新

Slide 13

Slide 13 text

| © 2025 Cloud Ace, Inc Argo CD での Cloud Run の管理 ● Workload IdentityによるGoogle Cloudへの認証 ● V2ServiceプロバイダによりCloud Runの管理 ● Argo CDにCrossplaneのステータス追跡の設定 ○ resourceのトラッキング・ステータスの設定 Crossplane によるCloud Runのデプロイ V2Service Provider デプロイ デプロイ 同期 Cloud Run Argo CD

Slide 14

Slide 14 text

| © 2025 Cloud Ace, Inc まとめ Argo CD で安全なデプロイパイプラインの作成

Slide 15

Slide 15 text

| © 2025 Cloud Ace, Inc まとめ ● Argo CD のシステム設計 ○ GKE Fleet + Connect Gateway + argocd-fleet-sync による複数クラスタの管理 ○ Keycloak + Argo CDのプロジェクトによる安全なデプロイパイプラインの実現 ○ Argo CD NotificationによるSlackへの通知 ● デプロイパイプラインの設計 ○ デプロイ用のリポジトリを個別に作成 ○ アプリケーションパイプラインから開発環境のデプロイ ● CrossplaneによるCloud Runの管理 ○ Workload Identityの活用で安全な認証 ○ V2ServiceプロバイダによるCloud Runの制御 Argo CD とCrossplaneで安全なデプロイパイプラインの作成

Slide 16

Slide 16 text

| © 2025 Cloud Ace, Inc 参考URL ● GKE での Argo CD の構築 ● Argo CD でのGKE のマルチクラスタ管理 ● Argo CD で Google アカウントによる SSO する方法 ● Argo CD で Crossplane を使った Cloud Runのデプロイ ● Argo CD が参照していないリポジトリからイメージバージョンを更 新する方法 ● Crossplane で GKE の Workload Identityによる認証方法