CI/CD(またはCICD)とはソフトウェアエンジニアリングにおいて、継続的インテグレーションと継続的デリバリーまたは継続的デプロイのいずれかを組み合わせた継続的デプロイを指す。これらはまとめて継続的開発または継続的ソフトウェア開発と呼ばれることもある。

CI/CDは、アプリケーションの構築、テスト、および展開の自動化を実施することにより、開発および運用アクティビティとチームの間のギャップを埋める。現代のDevOpsプラクティスには、継続的開発、継続的テスト、継続的インテグレーション、継続的デプロイ、および開発ライフサイクル全体にわたるソフトウェアアプリケーションの継続的モニタリングが含まれる。 CI/CDプラクティスまたはCI/CDパイプラインは、現代のDevOpsオペレーションのバックボーンを形成する。

コンポーネント

継続的インテグレーション(Continuous Integration) 複数の小さな変更を頻繁にメインブランチにマージすること。 継続的デリバリー(Continuous Delivery) 短いサイクルで高速かつ高頻度にソフトウェアを生産し、信頼性の高いソフトウェアをいつでもリリースできるようにすること。デプロイを決定した際には、シンプルで再現性のあるデプロイプロセスを伴う。 継続的デプロイ(Continuous Deployment) 新しいソフトウェア機能の自動ロールアウトのこと。

これら3つのプロセスが順番に発生する場合、「CI/CDパイプライン」として説明されることがある。

目的 CI/CDは、アプリケーションのビルド、テスト、およびデプロイにおける自動化を強制することにより、開発および運用活動とチーム間のギャップを埋める。CI/CDサービスは、開発者が行った差分コードの変更をコンパイルし、リンクしてソフトウェア成果物にパッケージ化する。自動化テストはソフトウェアの機能を検証し、自動化デプロイサービスはそれらをエンドユーザーに提供する。その目的は、早期の欠陥発見を増やし、生産性を向上させ、より迅速なリリースサイクルを提供することである。このプロセスは、新しいバージョンをデプロイする前にソフトウェアアップデートの集合を1つの大きなバッチに統合していた従来の手法とは対照的である。

現代のDevOpsの実践には、ソフトウェアアプリケーションの開発ライフサイクル全体を通じた以下のものが含まれる。

継続的開発 継続的テスト 継続的インテグレーション 継続的デリバリー 継続的デプロイ 継続的モニタリング

CI/CDの実践、またはCI/CDパイプラインは、現代のDevOps運用のバックボーンを形成している。

クラウドシステムのベストプラクティス 以下のプラクティスは、特にクラウドでホストされているシステムにおいて、CI/CDパイプラインの生産性を向上させることができる。

パイプラインの数 : 小規模なチームは、1つのリポジトリと1つのパイプラインを持つことでより生産的になる。対照的に、大規模な組織では、チームごとに別々のリポジトリとパイプラインを持ったり、チーム内のサービスごとに別々のリポジトリとパイプラインを持ったりする場合がある。 権限 : パイプライン関連の権限のコンテキストでは、アーキテクチャの動的な性質により、最小特権の原則を遵守することが困難な場合がある。管理者は、影響範囲を最小限に抑えるための補完的なセキュリティ統制を実装しつつ、より緩い権限を選択することができる。

その他  コーポレートコミュニケーションの文脈では、 CI / CDはコーポレートアイデンティティと企業デザインの全体的なプロセスを指すこともある。 関連項目

継続的インテグレーション (CI) 継続的デリバリー (CD) 継続的デプロイ (CD)

Docker テスト自動化 Jenkins

脚注 

外部リンク

What is CI/CD - all you need to know - Maciej Manturewicz