CI/CDとは
CI/CDは、継続的インテグレーションと継続的デリバリという言葉の略語です。CI/CDを実現するためのAWSのサービスがCodePipelineを始めとするCodeシリーズのサービス群です。
継続的インテグレーション(CI)とは
開発者が自分のコード変更を定期的にセントラルリポジトリにマージし、その後に自動化されたビルドとテストを実行するDevOpsソフトウェア開発の手法
引用元:継続的インテグレーションとは?
セントラルリポジトリに頻繁にマージしながら、都度テストを実行していくため、テストが頻繁に実施されることになります。
メリット
- テストが頻繁に、かつコードを書いた直後に実行されます
- バグの発見にかかる時間が削減されます
- ソフトウェアの品質が向上します
- 機械的なチェックや煩雑な作業などを自動化します
- 開発者は本質的な作業に集中できます
- チームの生産性が向上します
継続的デリバリ(CD)とは
継続的デリバリーとは、DevOpsソフトウェア開発手法の 1 つで、コード変更が発生すると、自動的にビルド、テスト、および本番へのリリース準備が実行されるというものです。継続的デリバリーは継続的インテグレーションを拡張したもので、すべてのコード変更が、ビルド段階の後にテスト環境または本番環境、あるいはその両方にデプロイされます。
引用元;継続的デリバリーとは?
リリースまでのプロセスの一連の流れを自動化し、人間の承認をもってデプロイを行います。一連の流れの中には必要に応じて負荷試験、統合テストなど、ユニットテストより粒度の大きなテストを組み込むことも多いです。
メリット
- デプロイまでのリリースプロセス全体が自動化されることで、UIテスト、ロードテスト、統合テスト等も含めた一連のプロセスを自動で迅速に行うことができます
- コードの変更をすばやくリリースできるようになります
- リリースの自動化により開発者が手動作業から開放され、チームの生産性が向上します
- 単体テストより粒度の大きいテストを組み込むことでさらなる品質の向上に繋がります