最近プロジェクトで CI (Continuous Integration) 推進を担当していて,CI 環境構築に向けて要件定義や設計をしている.ただ前提知識もない状態で「プロジェクトに CI は必要なんだ!」と訴えたところでまるで説得力がないので,ここで CI をボトムアップ的に基礎から学ぼうと思い立ち "Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley Signature Series (Fowler))" を読んでみた.本書は Jolt Awards 2008 にも選ばれている名著.
本書は CI の基礎を学ぶには最適の1冊で,CI って何?っていうレベルの人から,CI っていう用語は聞いたことあるけど詳しく知らない人,さらに既に Jenkins などの CI サーバに触れているけど CI の本質を理解できていない人に特にお薦めできる.まず Chapter 1, 2 を読むだけで CI の考え方や必要性,得られる効果が明確にわかるようになるし,もし時間があるなら,Chapter 6, 7, 8, 9を読んで,CI の重要な要素であるテスト,インスペクション,デプロイ,フィードバックの理解も深められる.本書では CI サーバとして CruiseControl を使った例で解説されているが,CI の一般的な概念を学ぶことが目的なので,CruiseControl を使う予定はないからっていう理由で本書を読まないのはもったいない.
- 作者: Paul Matyas, Steve Glover, Andrew Duvall
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2007/06/29
- メディア: ペーパーバック
- クリック: 29回
- この商品を含むブログ (15件) を見る
CI サーバ
具体的な CI サーバを学ぶのであれば,本書ではなくそれぞれの CI サーバに特化した書籍を読むべき.ちなみに CI サーバを紹介しておくと,最近だと Jenkins のシェアが高いと思うが,オープンソースなら CruiseControl や Buildbot, Apache Continuum あたり.また商用製品だと Rational Team Concert や Rational Build Forge,Visual Studio Team System 2008 Team Foundation Server などもある.
CIってようするに自動的にコンパイルするだけでしょ?
先日プロジェクトで同僚と CI に関して雑談していたら,見出しのようなことを言っていた.CI っていう用語はそれなりに認知されてきているのかもしれないけど,CI の漠然としたイメージって単純化するとコンパイルに行き着くのかもなと変に納得してしまった.それじゃ困るってことで,その場でちゃんと CI とは何かを説明した.もはや雑談じゃなくなった件について.まだ CI が実現されていないプロジェクトだったりすると,そもそもビルドとコンパイルの意味を混同してしまっていることもあると思う.そういうときは,まさに本書 P4 に載ってる通りで,コンパイルはビルドの一部でしかなく,ビルドが実現するタスクは多角的なんだということを伝えてあげる必要がある.
A build is much more than a compile (or its dynamic language variations). A build may consist of the compilation, testing, inspection, and deployment - among other things.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
次は "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))" に進もうと思って既に購入済.現時点では1人で読み進めていこうと思っているけど,社内で読書会をやってるところもあるようで,議論できたり,効率や進捗の面でも確実に仲間がいた方がいいので,社内で誰か一緒に読んでくれる人を探してみるかも.本書はJolt Awards 2011に選ばれたり,今春まともなエンジニアになりたい人が読む12冊に選ばれたり,かなりの人気.
- 作者: Jez Humble,David Farley
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2010/07/27
- メディア: ハードカバー
- 購入: 3人 クリック: 141回
- この商品を含むブログ (23件) を見る
Jenkins ユーザ・カンファレンス 2012 東京
CI の基礎を学ぼうと言いながら,来週日曜日に Jenkins ユーザ・カンファレンス 2012 東京 が開催されるので,これに行かないでどこに行くんだ!ぐらいの気持ちで聴講する.かなり楽しみ.今のところ,以下のセッションを聴きにいく予定.
- Jenkinsプロジェクト現状報告とこれから
- SIerのJenkins事情 〜CI実践プロジェクト事例から超大規模プロジェクトの活用事例まで〜
- 愛されるJenkins氏になるために
- マルチステージ型継続的インテグレーションのすすめ
- 毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
- LT大会
関連エントリー
Continuous Deliveryをポチッた - wyukawa’s blog
この1年の優れたIT系書籍はどれか?「Jolt Awards 2011」が6冊を発表。 - Publickey
2011-11-06 - 未来のいつか/hyoshiokの日記
2011-11-08 - 未来のいつか/hyoshiokの日記
ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組
今春まともなエンジニアになりたい人が読む12冊+α - うさぎ組
Continuous Integrationの12の勘所 - Fly me to the Juno!
http://d.hatena.ne.jp/imagawa_yakata/20120422/1335056920
万人のためのオートメーション: デプロイメントの自動化パターン、第 1 回
万人のためのオートメーション: 継続的インテグレーションのアンチパターン、第 1 回
万人のためのオートメーション: 継続的インテグレーションのアンチパターン、第 2 回
関連書籍
「Continuous Integration」を日本語訳で読みたいならコチラ.
- 作者: ポール・M・デュバル,スティーブ・M・マティアス,アンドリュー・グローバー,大塚庸史,丸山大輔,岡本裕二,亀村圭助
- 出版社/メーカー: 日経BP社
- 発売日: 2009/08/06
- メディア: 単行本
- 購入: 18人 クリック: 388回
- この商品を含むブログ (37件) を見る
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (53件) を見る
アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)
- 作者: James Shore,Shane Warden,木下史彦(監訳),平鍋健児(監訳),笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/18
- メディア: 大型本
- 購入: 18人 クリック: 336回
- この商品を含むブログ (99件) を見る