CI/CD について興味が出てきている。
そのタイミングで発売されたので買ってはいたが読むのがこんなに遅くなってしまった。
CI/CD
- CI ・・・Continuous Integration
- CD ・・・Continuous Delivery または Continuous Deployment
事前に計画ができることが減って変化する速度が速くなっているため変化に対応しやすいアジャイル開発が重要視されている。
またシステムを安定稼働させつつ素早くリリースしたいという相反する考えを解消するためにDevOpsという考え方がうまれた。
DevOps が重要視するデリバリの自動化を実践する方法としてCI/CDが大切になってきている。CI/CD を用いることで以下が自動化でき、それぞれに得られる効果がある。
- ビルド・・・手動ですることがないので、依存関係のミスなどが無くなるのでコードのプッシュ効率があがる
- テスト・・・テストし忘れ防止、信頼性の向上
- デプロイ・・積極的な機能リリース
これらができることで、品質と開発速度の向上が両方できるようになっていく。
DecOpsの効果を測る4つの指標
CI/CD を闇雲に導入しても役になっているのかわからないから最低限、以下の指標を測ることを勧めている。
- リードタイム
- デプロイ頻度
- 平均修復時間
- 失敗の頻度
ちなみにここまでは第1章の内容について書いただけである。
本書はこのあと12章 + Appendix までCircleCI の設定の仕方、他のアプリケーションとの連携方法、 config.yaml
の詳しい説明が書かれている。それ以外にもワークフローの説明やテスト実行の最適化などCIを組むための例や説明がたくさん書いてあってとても勉強になった*1。
まとめ
- CI/CD がなぜ必要なのか?が説明されているのが良かった
- CircleCI の使い方がこれでもかと細かく書いてあるので初めての人でも悩まなかった
- CI/CD 初心者だからこれ読めば良いよ、こんな勉強したら良いよを教えて欲しい
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者:Jez Humble,David Farley
- 発売日: 2017/07/31
- メディア: 単行本
*1:自分はCI/CDとはが気になっているのでそこだけ集中的に読んでしまった