【けいぞくてきでりばりー】

継続的デリバリー とは?

公開:
💡 「いつでもリリースできる」安心感を自動で作る
📌 このページのポイント
継続的デリバリー(CD)のパイプライン コード push ビルド コンパイル テスト 自動テスト ステージング 本番同等環境 手動デプロイ 承認ボタン 人が判断 ← ここまで自動 → 手動 ポイント:いつでもデプロイできる状態を維持 本番リリースのタイミングだけは人が決める ビルド・テスト・ステージングまで自動、デプロイは手動承認
継続的デリバリーのイメージ
ひよこ ひよこ
CI/CDのCDって何?
ペンギン先生 ペンギン先生
CDには2つの意味がある。Continuous Delivery(継続的デリバリー)とContinuous Deployment(継続的デプロイメント)。デリバリーは「いつでもリリースできる状態を維持する」こと。デプロイメントは「自動で本番に反映する」こと。デリバリーは最後のリリースボタンを人間が押す、デプロイメントは全自動という違いだよ
ひよこ ひよこ
なんで手動承認を残すの?
ペンギン先生 ペンギン先生
法規制やビジネス上の理由でリリースタイミングを制御したいケースがあるんだ。例えば金融系システムは営業時間外にリリースしたい、マーケティング施策と合わせてリリースしたいなど。技術的にはいつでもリリースできるけど、ビジネス判断で時期を選ぶということだね
ひよこ ひよこ
具体的なパイプラインはどんな流れ?
ペンギン先生 ペンギン先生
典型的な流れは、①コミット→②自動テスト(ユニット・統合・E2E)→③ビルド・アーティファクト生成→④ステージング環境デプロイ→⑤受入テスト→⑥承認→⑦本番デプロイ。①〜⑤が自動で、⑥が人間の判断ポイント。これを「デプロイメントパイプライン」と呼ぶんだよ
ひよこ ひよこ
導入するのに何が必要?
ペンギン先生 ペンギン先生
最低限必要なのは、①自動化されたテストスイートカバレッジが低いとパイプラインの信頼性が落ちる)、②インフラのコード化(IaC)、③フィーチャーフラグ(未完成機能を隠してデプロイ)、④ブルーグリーンやカナリアなどのデプロイ戦略。文化面ではトランクベース開発やSmall Batchの考え方も重要だよ
ひよこ ひよこ
小さなチームでも意味ある?
ペンギン先生 ペンギン先生
むしろ小さなチームほど効果が出やすいよ。リリース作業の属人化を防げるし、「金曜にリリースしたくない問題」もなくなる。GitHub ActionsGitLab CIなら無料枠で始められるし、最初は自動テスト+自動デプロイだけでも十分。段階的にパイプラインを充実させていけばいいんだよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「継続的デリバリー」って出てきたら「いつでもリリースできる状態を自動で維持する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Continuous Delivery」 = 継続的な配信
💬 Deliveryは「届ける」。コードの変更を安全に素早くユーザーに届ける仕組みだよ
← 用語集にもどる