FE EXAM

継続的デリバリ(CD)

ビルドした成果物をいつでも自動でリリースできる状態に保つ手法。

INTERACTIVE VISUALIZATION
自動
承認(手動)
本番
フェーズ
idle
リリース状態
本番リリース
手動承認
シナリオ
ステップ1 / 7
STEP 1/7CDパイプラインを始める前CD(継続的デリバリ)は、CI(自動でビルド・テストする手法)の続きにあたります。テストを通った成果物を、ボタン一つでいつでも本番へ出せる状態に保つのが目的です。横軸は本番リリースまでの流れで、左から右へ進みます。
CDパイプラインCI(ビルド・テスト)自動成果物作成自動ステージング配備自動リリース承認手動承認本番リリース手動承認CI← ここまで自動(CD) →
CODE VIEW — CIが終わった直後
// CIでビルド・テストは合格済み
// ここからリリースの準備に入る
解説

📌
CDとは

成果物準備完了承認ボタン人が押す本番リリースいつでも出せる状態を保つ

CD(継続的デリバリ)とは、ビルドした成果物を、いつでも自動でリリースできる状態に保つ手法です。デリバリ=届けること、つまり「ソフトを利用者にいつでも届けられるよう準備し続ける」という意味です。

身近な例で考えると、いつでも出荷できるよう箱詰めまで終えて待機している宅配荷物に似ています。中身の検品も梱包も済んでいて、あとは「発送ボタンを押すだけ」。出すタイミングは担当者が選びますが、準備は常に整っている状態です。

上のツールで▶ボタンを押すと、成果物の作成からステージング配備まで自動で進み、最後の本番リリースだけ人が承認する流れを確認できます。

⚖️
継続的デプロイとの違い

よく似た言葉に継続的デプロイ(Continuous Deployment)があります。略すとどちらも「CD」になりますが、本番リリースを人が承認するか、完全に自動で行うかが違います。

項目継続的デリバリ継続的デプロイ
本番リリース人がボタンで承認完全に自動
状態いつでも出せる通れば自動で出る
出すタイミング人が選べるテスト合格しだい

エレベーターにたとえると分かりやすいです。継続的デリバリは「ドアが開いて待っているが、乗るかどうかは人が決める」状態継続的デプロイは「準備ができたら自動で発車する」イメージです。どちらが良いかは、ビジネスや品質保証のやり方によって選びます。上のツールの最後の段階は「手動承認」なので、これは継続的デリバリの動きです。

🔗
CIとの関係

CIビルド・テストCDリリース可能にCIの先がCD

CDはCI(継続的インテグレーション)の続きとして動きます。CIは「変更のたびに自動でビルド・テストして検証する」段階、CDは「その検証済みの成果物を、いつでも出せる状態まで運ぶ」段階です。

2つは1本の流れとしてつながっており、まとめて「CI/CDパイプライン」と呼ばれます。順番に並べると次のようになります。
CI:コミット → ビルド → テスト(壊れていないか検証する)
CD:成果物作成 → ステージング配備 → いつでもリリース可能に保つ

料理に例えると、CIが「材料の下ごしらえと味見」、CDが「お皿に盛りつけて、いつでも出せるよう保温しておく」段階にあたります。CIで品質を保証してからCDに渡すからこそ、安心して素早くリリースできます。上のツールの最初の段階がCIの完了から始まっている点に注目すると、両者のつながりが分かります。

練習問題

🎯
基本情報技術者 練習問題

Q1.継続的デリバリ(CD)の説明として最も適切なものはどれか。
A.ビルドした成果物を、いつでも自動でリリースできる状態に保つ手法
B.変更をコミットするたびに自動でビルド・テストする手法
C.コードの内部構造を改善する作業
D.開発の最後に一度だけ統合する手法
Q2.継続的デリバリと継続的デプロイの違いとして正しいものはどれか。
A.継続的デリバリは本番リリースまで完全自動、継続的デプロイは人が承認する
B.継続的デリバリは本番リリース直前で人が承認、継続的デプロイは本番まで完全自動
C.どちらもまったく同じ意味である
D.継続的デプロイはテストを行わない
Q3.CIとCDの関係として最も適切なものはどれか。
A.CDが先に行われ、その後にCIが行われる
B.CIとCDは互いに無関係で別々に使う
C.CIで検証した成果物を、CDがリリース可能な状態まで運ぶ
D.CIとCDは同じ作業を二重に行うものである

関連コンテンツ