CI/CD
概略
beeeyan.icon解釈含むかも
CIとは
Continuous Integration
Continuous : 継続的な
Integration : 統合・一体化
CI (継続的インテグレーション) は開発者が書いた新しいコードとマスターブランチ(トランク)を頻繁に統合するプロセスです。新しい機能開発のためにブランチを作成する場合、つぎにマージするまでの期間が長くなるにしたがって変更量が多くなり、マージ作業が大変になるだけでなく、問題が含まれるコードの特定と分離が難しくなります。一回のコミットでの変更量を小さくして頻繁にマージすれば、問題の発見が早くなり対処が楽になります。また、問題発見のオーバーヘッドを小さくするために自動化されたテストを行うことが有効です。
漠然と捉えてる節があるbeeeyan.icon
CIを実現するための一連の流れをパイプラインと呼びます。開発者のコミットをトリガーとして、自動的にビルドや静的解析、単体テストといったテストや成果物のデプロイを行います。また、一連の流れの開始や終了時、何か問題が発生した際に開発者へ直ちにフィードバックする仕組みもパイプラインには欠かせない要素です。
→ 早くマージして、問題を早く見つけるプロセス。
CDとは
Continuous Delivery
Delivery : 配布
継続的デリバリー(CD)プロセスをさらに延長して、リリース可能であることを保証されたソフトウェアを実際に本番環境にデプロイするプロセスです。このプロセスは特にWebアプリケーションをビジネス基盤とすることが多い、BtoCビジネスにおいて実践されることが多いでしょう。ソフトウェアを通して顧客に価値をいち早く届け、フィードバックを得る(改善につなげる)ことが重要だからです。このプロセスでは確実にデプロイが実行されるように配慮された実行環境のプロビジョニング、万が一のときにはアプリケーションをロールバックする自動化手法が用いられます。
→ リリースを問題なく、スピーディにできるようにする
案外定義が人の解釈で変わってくる節があり、「CI/CD構築してください・見積もってください」が難しい印象beeeyan.icon