– Gitリポジトリ上のコードでインフラとアプリケーションの状態が決定する – Single Source of Truthを介してCIとCDを分離する • 状態の差分検出とconversion – 実行環境がSingle Source of Truthとの差分を検出して自律的に状態を変える(Pull型) – 環境の差分が解消されない場合は、アラートを上げる 18 実行環境 差分検出 装置 自環境に 差分を反映 (conversion) CIツール Ops CD CI PR 運用操作 PR アプリの更新 Single Source of Truth (manifest)
コンテナレジストリ PR:Kustomizeで環境毎の Manifestを作る アプリケーションコード コードをプッシュ > docker push NS: production Single Source of Truth テンプレート manifest(staging) NS: staging NS: development Spinnaker manifest(prod)
> docker push NS: production Single Source of Truth テンプレート manifest(staging) NS: staging NS: development manifest(prod) パラメータファイルを作成してプッシュ • どの環境用のmanifestを作るか • デプロイするイメージのタグ パラメータファイルに従って manifestを作成しPR (Kustomize) Spinnaker
NS: production Single Source of Truth テンプレート manifest(staging) NS: staging NS: development Spinnaker manifest(prod) パラメータファイルを作成してプッシュ • どの環境用のmanifestを作るか パラメータファイルに従って manifestを作成しPR (Kustomize) イメージは更新しない stagingと同じものを つかう。