最近CI/CDという言葉をよく聞くようになったものの、「何かを自動化するやつだっけ?」と知識が無さすぎたので調べました。
目次
- 概要
- メリット
概要
CI/CDは、ソフトウェアの変更を常にテストして自動で本番環境にリリース可能な状態にしておくというソフトウェア開発の手法を指す。
CI (Continuous Integration) : 継続的インテグレーション
CIは主にシステムやアプリケーションの変更を常に自動でテストすることを指す。コーディング後のアプリケーションのビルドや変更テスト、リポジトリへのPushを自動化することで、より正確かつ迅速に開発を進めることが可能になる。
CD (Continuous Delivery) : 継続的デリバリー
CDは主に自動で本番環境にリリースを行うことを指す。インストールパッケージの作成や利用者への配信環境への登録などのリリース工程までを自動化することで、システムやアプリケーションの変更を高速で行うことができる。
cf) 継続的デプロイメント
リリース後に本番環境への導入(デプロイ)まで自動化することを指す。ビルドやテストが済んだプログラムのリリース、デプロイまでが完全に自動化され、実運用環境のプログラムが継続的に自動更新される。
メリット
・ビルド,テスト,デプロイのコスト削減
・人的ミス減少による品質向上
・自動化による開発工数の削減
まとめ
CI/CDはコーディング後のテストやデプロイの自動化を行うことができる手法だと知り、一貫したシステム開発において便利なんだなと思いました。JenkinsやCircleCIといったCIツールがあるみたいなので実際に開発で使用して利便性を実感してみようと思います。
参考