deployment pipelineとは?
deployment pipelineとは、検証済みのbuildを連続する環境を通して本番に到達するまで昇格させる、自動化された経路です。
deployment pipelineはデリバリーの"ラストマイル"に焦点を当てます。すでにテストに通ったbuildを安全に本番へ届けることです。この道のりを、それぞれ前のものよりも本番に近い、ゲート付きの環境の連続としてモデル化します。
それは何か
deployment pipelineは、単一のbuild artifactを取り、development、staging、本番などの環境を通して移動させます。同じartifactが各ステップで昇格され、決して再buildされないため、テストしたものがそのまま出荷されます。各環境は、buildが通過しなければならないチェックポイントとして機能します。
各ステージ
- 一度buildし、バージョン管理されたartifactを生成します。
- テストまたは統合環境へdeployして検証します。
- 本番のほぼコピーであるstagingへ昇格させます。
- smoke testと受け入れチェックを実行します。
- 同一のartifactを本番へ昇格させます。
一度buildして、どこにでもdeploy
決定的な原則は、artifactが一度だけbuildされ、すべての環境で再利用されることです。環境ごとに再buildすると、テストしたものと出荷したものの間に微妙な差異が生じる恐れがあります。同じバイトをどこにでも昇格させることで、"stagingでは動いた"という類の予期せぬ問題を丸ごと取り除けます。
実例
コンテナイメージがbuildされ、commitハッシュでタグ付けされます。それがstagingへdeployされ、smoke testに通り、まったく同じイメージ、同じタグが、その後本番へdeployされます。2度目のbuildがないため、両者の間にドリフトが生じる余地がありません。
なぜリスクを減らすのか
各環境は問題がユーザーに届く前に捕捉するゲートであり、同一のartifactを昇格させることが一貫性を保証します。pipelineはまたdeployment処理を再現可能かつ観測可能にするため、本番へのdeployは信仰の飛躍ではなく、日常的でよく訓練された操作になります。
重要なポイント
- deployment pipelineはbuildをゲート付きの環境を通して昇格させます。
- 一度buildし、同じartifactを昇格させてドリフトを避けます。
- 各環境は本番を保護するチェックポイントです。