CI/CDとは、プログラムの変更を自動的にテストし、本番環境へ反映するまでの一連の作業を効率化する仕組みのことです。「継続的インテグレーション(CI)」と「継続的デリバリー/デプロイ(CD)」という2つの考え方を組み合わせた言葉で、DevOpsを支える代表的な技術のひとつです。
現実世界に例えると、CI/CDは工場に設置されたベルトコンベア式の検品・出荷ラインのようなものです。人の手で一つひとつ確認して運ぶのではなく、決められた工程を自動で流れるように進めることで、素早く確実に製品を届けられます。
CI/CD図解
CIとCDの違い
| 用語 | 内容 |
|---|---|
| CI(継続的インテグレーション) | コードの変更を自動でテスト・統合する |
| CD(継続的デリバリー/デプロイ) | テストを通過した変更を自動で反映する |
CIが解決する課題
複数人でひとつのプログラムを開発していると、それぞれが加えた変更を統合した際に、思わぬ不具合が発生することがあります。CIでは、変更が加えられるたびに自動でテストを実行し、問題を早い段階で発見できるようにします。問題の発見が遅れるほど、原因の特定や修正にかかる手間は大きくなります。
CDが解決する課題
テストを通過した変更を、人の手で本番環境へ反映する作業には手間がかかり、ミスが発生する余地も残ります。CDでは、この反映作業も自動化することで、素早く安全に新しい機能を利用者へ届けられるようにします。手作業の手順書に頼らずに済むため、担当者の負担も軽くなります。
CI/CDがもたらすメリット
自動化によって、手作業によるミスを減らしつつ、変更を本番環境へ反映するまでの時間を大幅に短縮できます。小さな変更を頻繁にリリースしやすくなるため、不具合が発生した際の影響範囲も抑えやすくなります。
DevOpsとの関係
CI/CDは、開発と運用が連携して継続的に改善を進めるDevOpsという考え方を、具体的な仕組みとして実現する手段のひとつです。CI/CDの整備は、DevOpsを実践するうえで欠かせない土台となっています。
パイプラインという考え方
CI/CDでは、テストからビルド、デプロイまでの一連の流れを「パイプライン」と呼び、あらかじめ決めた手順に沿って自動的に処理を進めます。パイプラインのどこかで問題が見つかると、そこで処理が止まり、担当者に通知される仕組みになっています。
導入する際のポイント
CI/CDを導入するには、十分なテストコードをあらかじめ用意しておくことが欠かせません。テストが不十分なまま自動化を進めてしまうと、問題を見逃したまま本番環境へ反映してしまう危険性が高まります。


コメント