近年、ソフトウェア開発の現場では、より迅速かつ安定したリリースを実現するためにCI/CDの導入が進んでいます。
この記事では、CI/CDの基本的な概念や仕組みについて簡潔解説します。
これからCI/CDを導入予定のエンジニアの方、または基礎を改めて学びたい方に役立つ内容を目指しています。
-
CI/CDとは
- ① CI(継続的インテグレーション)とは?
- ② CD(継続的デリバリー/継続的デプロイメント)とは?
- ③CI/CDパイプラインとは? - よく使われるCI/CDツール
- 参考にさせていただいたサイト
1.CI/CDとは
まず最初に、「CI/CD」は、開発プロセスの中の自動化された一連の流れこと言います。
CIとCDはそれぞれ役割が異なるので、分けて理解するとスッキリします。
① CI(継続的インテグレーション)とは?
CIは、継続的インテグレーション(Continuous Integration)の略です。
主に以下のような役割を行っています。
- 開発者が作成し、Gitなどのリポジトリにプッシュしたコードのビルド
- プッシュしたコードのテスト自動実行
- 実行されたテストにおけるコードの問題(テストエラー、コンフリクト)を早期検出
コーディングルールや、バグのチェックツールなどをCIに組み込めば、ソースコードの静的解析を行うことも可能です。将来発生する恐れのある不具合の発見や保守性の向上など、品質を高めることにも繋がります。
② CD(継続的デリバリー/継続的デプロイメント)とは?
CIでビルドやテストが終了した後、次に必要なのがCD(Continuous Delivery / Deployment)です。
CDの意味は「継続的デリバリー」と「継続的デプロイメント」の2通りの意味合いを持ち、それぞれ以下のような特徴があります。
■ 継続的デリバリー
- ステージング環境までは自動でデプロイ
- 本番環境へのリリース判断は人間が行う(手動承認)
- いつでも「安全に本番に出せる状態」を維持するのが目的
- 「品質の担保+慎重な運用」が求められる現場でよく採用される傾向がある
■ 継続的デプロイメント
- ステージングだけでなく、本番環境まで完全自動で反映される
- テストにパスしたら、自動でユーザーにリリースされる
- 本番反映の「承認ステップ」もなく、コードの変更がそのまま公開される
- 小さな改善をすぐ届けたい開発現場で多く採用される傾向がある
🔍両者の違い(要点まとめ)
観点 | 継続的デリバリー | 継続的デプロイメント |
---|---|---|
本番リリース判断 | 手動(人的承認が必要) | 自動で反映 |
本番デプロイ処理 | 自動化が多い | 自動 |
安全性 | 人の確認(承認)が事前にあるため比較的安全 | 自動化の精度・テスト品質が超重要 |
想定される現場 | 金融・BtoBなど慎重な環境 | Webサービス・SaaSなど高速な改善が求められる環境 |
③CI/CDパイプラインとは?
これまでのCIとCDを1本の流れとしてまとめたものが「CI/CDパイプライン」です。
CIは解析/ビルド/テストの自動化、CDはデプロイの自動化を行うもので、開発効率の向上と安全性の担保を両立できるツールになります。
よく「CI/CD」で纏められることが多いですが、CIとCDのそれぞれの意味を抑えておくと全体のイメージが出来るようになります。
2. よく使われるCI/CDツール
代表的なものをいくつか紹介します。
ツール名 | 特徴 | おすすめ用途 | 注意点 |
---|---|---|---|
GitHub Actions | GitHubと連携〇、YAMLで簡単に定義可能 | GitHubで開発している小〜中規模のプロジェクト | 他のGitサービスとは連携しにくい |
GitLab CI/CD | GitLabに標準搭載、課題管理と統合可能 | GitLab中心の統合環境を構築したい場合 | 他のGitサービスとは連携しにくい |
Azure DevOps Pipelines | Microsoft製、Azureとの高い親和性 | 大規模・複雑なプロジェクト | UIが複雑で学習コストがかかる場合あり |
Jenkins | 高い拡張性・カスタマイズ性 | フルコントロールしたいオンプレ or 自由な構成が必要な場合 | 初期構築と運用に手間がかかる |
CircleCI | クラウド型CI/CD、セットアップが簡単 | クラウドで素早くCI/CDを導入したい中小チーム向け | 無料プランの制限やビルド時間に注意 |
その他にも、様々なCI/CDツールがあります。
プロジェクトの開発規模や利用環境(クラウド型/オンプレミス型)に合わせて選ぶのがポイントです。
🔗参考にさせていただいたサイト
Views: 0