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

継続的デリバリー とは?

💡 「いつでもリリースできる」安心感を自動で作る
📌 このページのポイント
継続的デリバリー(CD)のパイプライン コード push ビルド コンパイル テスト 自動テスト ステージング 本番同等環境 手動デプロイ 承認ボタン 人が判断 ← ここまで自動 → 手動 ポイント:いつでもデプロイできる状態を維持 本番リリースのタイミングだけは人が決める ビルド・テスト・ステージングまで自動、デプロイは手動承認
継続的デリバリーのイメージ
ひよこ ひよこ

CI/CDのCDって何?

ペンギン先生 ペンギン先生

CDには2つの意味がある。Continuous Delivery(継続的デリバリー)とContinuous Deployment(継続的デプロイメント)。デリバリーは「いつでもリリースできる状態を維持する」こと。デプロイメントは「自動で本番に反映する」こと。デリバリーは最後のリリースボタンを人間が押す、デプロイメントは全自動という違いだよ

ひよこ ひよこ

なんで手動承認を残すの?

ペンギン先生 ペンギン先生

法規制やビジネス上の理由でリリースタイミングを制御したいケースがあるんだ。例えば金融系システムは営業時間外にリリースしたい、マーケティング施策と合わせてリリースしたいなど。技術的にはいつでもリリースできるけど、ビジネス判断で時期を選ぶということだね

ひよこ ひよこ

具体的なパイプラインはどんな流れ?

ペンギン先生 ペンギン先生

典型的な流れは、①コミット→②自動テスト(ユニット・統合・E2E)→③ビルド・アーティファクト生成→④ステージング環境デプロイ→⑤受入テスト→⑥承認→⑦本番デプロイ。①〜⑤が自動で、⑥が人間の判断ポイント。これを「デプロイメントパイプライン」と呼ぶんだよ

ひよこ ひよこ

導入するのに何が必要?

ペンギン先生 ペンギン先生

最低限必要なのは、①自動化されたテストスイートカバレッジが低いとパイプラインの信頼性が落ちる)、②インフラのコード化(IaC)、③フィーチャーフラグ(未完成機能を隠してデプロイ)、④ブルーグリーンやカナリアなどのデプロイ戦略。文化面ではトランクベース開発やSmall Batchの考え方も重要だよ

ひよこ ひよこ

小さなチームでも意味ある?

ペンギン先生 ペンギン先生

むしろ小さなチームほど効果が出やすいよ。リリース作業の属人化を防げるし、「金曜にリリースしたくない問題」もなくなる。GitHub ActionsGitLab CIなら無料枠で始められるし、最初は自動テスト+自動デプロイだけでも十分。段階的にパイプラインを充実させていけばいいんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「継続的デリバリー」って出てきたら「いつでもリリースできる状態を自動で維持する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Continuous Delivery」 = 継続的な配信
💬 Deliveryは「届ける」。コードの変更を安全に素早くユーザーに届ける仕組みだよ
← 用語集にもどる