Skip to content
Latchkey

デプロイジョブとは?pipelineからコードを出荷する

デプロイジョブとは、buildされたartifactを受け取り、stagingや本番などのターゲットenvironmentへリリースするpipelineのjobです。

buildとtestのjobはコードを準備します。デプロイジョブは実際にそれを出荷します。これはpipelineの一部で、コンテナイメージをpushしたり、ファイルをサーバーにコピーしたり、クラウドサービスを更新したり、インフラの変更を適用したりします。稼働中のシステムを変更するため、デプロイジョブはより大きなリスクを伴い、通常はその周囲に追加のガードレールが設けられます。

デプロイジョブが行うこと

pipelineの前段で生成されたartifactを受け取り、environmentへ適用します。イメージをregistryへpushしてロールアウトする、データベースのmigrationを実行する、deployツールを呼び出す、などです。ターゲットは通常名前付き(staging、本番)で、pipelineが何がどこにあるかを追跡できるようになっています。

deploy jobがbuild jobとどう違うか

  • 単なるworkspaceではなく、名前付きのenvironmentを対象とする。
  • 承認や保護されたenvironmentのルールをしばしば必要とする。
  • 特定のbranchやtagに制限されることが多い。
  • 同時deployを避けるため、1つずつ実行されることがある。

簡単な例

deploy jobは、新しいコンテナをロールアウトするためにkubectl set image deployment/app app=registry/app:${SHA}を実行したり、最新のbuildをリリースするためにプラットフォームのCLIを呼び出したりします。${SHA}は、deployをbuildおよびtestされた正確なcommitに結びつけます。

deployのガードレール

deployは本番を変更するため、チームは承認、environmentの保護、並行性の制限を追加します。rollback経路は不可欠です。deploy jobが不良なbuildを出荷した場合、rollback jobが以前のバージョンを素早く戻せるべきです。

deploy jobと信頼性

途中で失敗するdeployは、まったく始まらなかったものより悪いです。信頼できるdeploy jobは冪等で検証可能であり、デプロイ後チェックで新バージョンが健全であることを確認します。安定したrunnerはdeploy途中の中断を減らします。マネージドrunner(Latchkey)は一時的なインフラの不調をリトライするため、deployがあなたのコードとは無関係な理由で失敗する可能性が下がります。

重要なポイント

  • デプロイジョブは、buildされたartifactを名前付きのenvironmentへリリースします。
  • build jobより大きなリスクを伴うため、承認と保護が設けられます。
  • rollback経路とデプロイ後のヘルスチェックと組み合わせましょう。

関連ガイド