FEATUREわかったつもりの、その先へ
知る・学ぶ

CI / CDって言葉、正しく使えてますか?

CI/CDを「ビルドやデプロイのこと」で終わらせないために。継続的インテグレーションと、継続的デリバリー・継続的デプロイの違いを図で解説し、現場で「CI/CDどうしてますか?」と聞かれたときの答え方まで整理します。

CONTENTSこの記事の目次8項目

エンジニアとして働いていると、普段の業務でも耳にする「CI/CD」。Appli Parkの開発でも、コードの変更を確かめたり、アプリを本番へ反映したりする場面で身近な言葉です。でも、「ビルドやデプロイのことですよね」で説明が止まっていないでしょうか。

CIとCDはどこが違うのか。CDに2つの意味があるのはなぜか。「本番反映は手動です」と言ったら、CI/CDをやっていないことになるのか。そんな疑問を、言葉の意味と開発の流れをつなげながら整理してみます。

まずは全体像:CIと2つのCD

CIはContinuous Integration(継続的インテグレーション)の略。小さな変更をこまめに共有するコードへ統合し、自動ビルドやテストで問題を早く見つける取り組みです。

CDはContinuous Delivery(継続的デリバリー)とContinuous Deployment(継続的デプロイ)のどちらを指す場合もあります。前者はいつでも本番に出せる状態を保つこと、後者は検証を通った変更を本番反映まで自動で進めることです。「CD」と聞いたら、どちらの意味か確認すると話がかみ合います。

CIと2つのCDを比べたオリジナル概念図。デリバリーでも、承認後の配布作業は自動化できます。工程の順序や検証内容はプロジェクトによって異なります。

ビルド・テスト・デプロイは、それぞれ何をする?

  • ビルド:ソースコードから、実行・配布できるファイルやコンテナイメージなどを作る。
  • テスト:期待した動作になっているかを確認する。
  • デプロイ:作ったものを検証環境や本番環境へ配置・反映する。
  • リリース:変更や機能を利用者が使える状態にする。機能フラグなどで、デプロイと提供開始を分ける場合もある。

ビルドが成功しても、期待した動作をするとは限りません。また、検証環境へデプロイしただけでは、本番の利用者に届いたことにはなりません。「何をしたか」に加えて「どの環境まで進んだか」を言えると、説明が具体的になります。

CIは「自動でビルドすること」だけではない

たとえば、2人が別々に直したコードは、それぞれの手元では動いても、組み合わせると壊れることがあります。変更を長くため込まずに統合し、そのたびに同じ手順で確かめれば、問題を小さいうちに見つけやすくなります。

PRを作ったときに自動チェックを走らせるのは、そのための実装例です。ただし、PRのチェックを導入しただけで、変更をこまめに統合する習慣までできたことにはなりません。失敗したチェックを放置せず、直してから先へ進む運用もCIの一部です。

CDの違いは「本番に出す判断」をどこに置くか

継続的デリバリーでは、ビルドやテスト、必要な検証を経て、変更をいつでも本番へ出せる状態に保ちます。本番に出すタイミングは人が決められるため、承認後にボタンを押して自動デプロイを始める運用も含まれます。毎回、手作業でファイルを集め直す状態とは違います。

継続的デプロイでは、必要な検証を通った変更が、本番反映ごとの手動承認を挟まずに自動で進みます。「何も確認しない」という意味ではありません。自動テストの条件や本番の監視、問題が出たときに止める・戻す仕組みが支えになります。

自動デプロイのスクリプトが1本あるだけでは、継続的デプロイとは言い切れません。変更から検証、本番反映までがどうつながっているかを見る必要があります。どちらが常に優れているという話でもなく、変更の影響やチームの運用に合わせて判断の位置を決めます。

Appli Parkの設定を、この言葉で読み直す

Appli ParkのGitHub Actions設定では、mainブランチへのpushをきっかけに、フロントエンドのlint・テスト・ビルド、バックエンドのテスト、インフラの確認、コンテナのビルドを行います。一方、本番へのデプロイは別のワークフローを手動で起動する構成です。

本番反映のワークフローでは、コンテナイメージを作って登録し、バックエンド、フロントエンドの順に反映します。配布作業は自動化されていますが、起動の判断は人が持っています。この構成を「変更が入れば、そのまま自動で本番に出ます」と説明するのは不正確です。

「CI/CDどうしてますか?」には、4点で答える

ツール名だけを答えるより、「きっかけ・確認内容・反映先・人の判断」を順に話すと、相手は運用をイメージできます。次の回答は、PRで検証し、検証環境へ自動反映し、本番は承認後に反映するチームを想定した作例です。自分の現場で実施している内容に置き換えてください。

Appli Parkの設定に合わせて短く答えるなら、「GitHub Actionsでmain更新時のテストやビルドを実行しています。本番デプロイは別のワークフローを手動起動し、その後のイメージ作成と配布を自動化しています。本番まで無承認で進む継続的デプロイではありません」と説明できます。

まだ一部しか自動化していなくても、背伸びする必要はありません。「CIはテストとビルドまで自動化しています。デプロイはまだ手動です」のように、できている範囲と残っている作業を分けるほうが、正確で役に立ちます。

「わかったつもり」の、その先へ

次にCI/CDの話になったら、「何のツールを使っていますか?」に加えて、「どの変更をきっかけに、何を確認し、どこまで自動で進みますか?」と聞いてみてください。自分の現場について、その流れを一本の線で説明できれば、CI/CDは曖昧な略語から、開発の仕組みを話すための言葉に変わります。

参考資料

  • Amazon Web Services「What is Continuous Integration?」:CIの定義と、頻繁な統合・自動検証の考え方。
  • Amazon Web Services「What is Continuous Delivery?」:継続的デリバリーと継続的デプロイの違い。
  • GitHub Docs「Understanding GitHub Actions」:ワークフロー、イベント、ジョブの基本。
  • Appli ParkのCI・本番デプロイ設定:ci.yml、deploy-production.yml。いずれも2026年9月11日確認。本文と図は独自に構成しています。