継続的デリバリー

継続的インテグレーション、継続的デリバリーに興味があるので読んでみた。

内容としてはデプロイメントパイプラインという概念の包括的な説明になる。
個別のツールは紹介程度で、ツールの具体的な使い方や、環境構築手順といったものは説明されていない。
あらゆるプロジェクトに適用可能な継続的デリバリー基盤などというのはないだろうから、必然の結果だとは思う。

つまり、具体的にどのような環境を構築するかは、この本を読んだあとで自分で考えていく必要がある。


最初の方に出てくる以下の文から、本書の勢いのようなものを感じ取ったので最後に引用しておく。

p.65 〜 p.66
1.7.6 完了したとはリリースしたということだ

「完了」とはどういう意味だろうか?実は、フィーチャが完了したと言えるのは、価値をユーザーに届けたときだけなのだ。このことは、継続的開発というプラクティスを支えるモチベーションの一部である。

「80%完了」などというものはない。完了したか、完了していないかのどちらかだ。何かを完了させるのに必要な残作業を見積もることはできる。しかし、それは見積もりでしかない。残作業の総量を判断する際に見積もりを基にすると、そのパーセンテージが表しているものが明らかになったときに犯人捜しをしてののしりあうことになる。そのパーセンテージは決して正しくないからだ。

何かを完了させることは誰か一人の力ではできないのだ。

p.67
1.7.8 継続的改善

アプリケーションにとって、最初のリリースはライフサイクルにおける最初のステージでしかないということは強調しておく価値がある。あらゆるアプリケーションは進化するのであり、さらなるリリースが後に続くのだ。

今後も素早いフィードバックを得ることを目標に開発していきたい。

目次

第1部 基礎(ソフトウェアデリバリーの問題
構成管理
継続的インテグレーション
テスト戦略を実装する)
第2部 デプロイメントパイプライン(デプロイメントパイプラインの解剖学
ビルド・デプロイメントスクリプト
コミットステージ
自動受入れテスト
非機能要件をテストする
アプリケーションをデプロイ・リリースする)
第3部 デリバリーエコシステム(基盤と環境を管理する
データを管理する
コンポーネントや依存関係を管理する
高度なバージョン管理
継続的デリバリーを管理する)