CI・CT・CDとは?
CI・・・継続的インテグレーション
CD・・・継続的デレリバリー
CT・・・継続的テスト
この3つは、DevOpsの基盤です。
これらのプロセスをまとめて「CI/CDパイプライン」「DevOpsパイプライン」と呼ばれます。
CIとは?
CIとは、複数の開発者や開発したコードをセキュリティが確保された一元管理のリポジトリ(GitHubなど)に自動的に統合(マージ)するソフトウェアの開発手法になります。
CIでは、コードへの変更を頻繁にリポジトリにマージします。
SlackやTeamsなどのコミュニケーションツールは、CIツールと統合されることが多く、開発チームにリアルタイムの更新情報を提供して、デプロイメント中に発生する問題への迅速な対応が可能なります。
CTとは?
CTによって、開発ライフサイクルのすべての段階でのテストができます。
開発者がコードをリポジトリにコミットすれば、CTが自動にテストを開始し、コードが次の段階に進む前に、正しく動作するか?の機能を確認することができます。
こうしたテストが自動的に実施されることで、開発者は開発プロセスの早い段階で問題点を把握することができます。
CTは、DevOpsライフサイクル全体を通じてテストと検証が継続的に実施される状態を確保して、早急なフィードバックを可能にしてリリースまでの時間を短縮することができます。
CTのテストには以下の種類が入ります。
- 単体テスト
- 統合テスト
- 回帰テスト
- パフォーマンステスト
- セキュリティテスト
これらのテストに関して、さまざまな対象としているため、コードの品質と安定性を確保ができます。
CDとは?
コードは実行可能状態です。本番環境にリリースできる状態であるということです。
本番環境へのリリースは、Terraform PocketなどのIacのツールが使用されることが多いです。
CI/CT/CDのパイプラインのメリットについて
コードベースへの不適切な変更やエラーが発生しやすい変更に対しガードができ、コードのけ欠陥を早期に検出できます。
また、素早くフィードバックを返すことが可能です。フィードバックはメール、チャットツールなどからアクセスが可能です。
この迅速なフィードバックのおかげで開発スピードが上がり開発サイクルがの効率が上がります。
CI/CT/CDパイプラインでは、デプロイメントが自動化できます。
ソフトウェアを手作業リリースすると、人為的エラーが発生しやすいです。
リリースまで手順を自動化すれば、コードとリリースプロセスの両方が機能でき保証できます。