kakakakakku blog

Weekly Tech Blog: Keep on Learning!

CI の基礎は「Continuous Integration 本」から学べ!

最近プロジェクトで 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 を使う予定はないからっていう理由で本書を読まないのはもったいない.

Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley Signature Series (Fowler))

Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley Signature Series (Fowler))

CI サーバ

具体的な CI サーバを学ぶのであれば,本書ではなくそれぞれの CI サーバに特化した書籍を読むべき.ちなみに CI サーバを紹介しておくと,最近だと Jenkins のシェアが高いと思うが,オープンソースなら CruiseControlBuildbotApache Continuum あたり.また商用製品だと Rational Team ConcertRational Build ForgeVisual 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冊に選ばれたり,かなりの人気.

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))

Jenkins ユーザ・カンファレンス 2012 東京

CI の基礎を学ぼうと言いながら,来週日曜日に Jenkins ユーザ・カンファレンス 2012 東京 が開催されるので,これに行かないでどこに行くんだ!ぐらいの気持ちで聴講する.かなり楽しみ.今のところ,以下のセッションを聴きにいく予定.

  • Jenkinsプロジェクト現状報告とこれから
  • SIerのJenkins事情 〜CI実践プロジェクト事例から超大規模プロジェクトの活用事例まで〜
  • 愛されるJenkins氏になるために
  • マルチステージ型継続的インテグレーションのすすめ
  • 毎日が憧れの新築、反復可能なデリバリーによる常時新築システム
  • LT大会

関連書籍

「Continuous Integration」を日本語訳で読みたいならコチラ.

継続的インテグレーション入門

継続的インテグレーション入門

  • 作者: ポール・M・デュバル,スティーブ・M・マティアス,アンドリュー・グローバー,大塚庸史,丸山大輔,岡本裕二,亀村圭助
  • 出版社/メーカー: 日経BP社
  • 発売日: 2009/08/06
  • メディア: 単行本
  • 購入: 18人 クリック: 388回
  • この商品を含むブログ (37件) を見る
「Continuous Delivery」を日本語訳で読みたいならコチラ.
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

  • 作者: David Farley,Jez Humble,和智右桂,高木正弘
  • 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
  • 発売日: 2012/03/14
  • メディア: 大型本
  • 購入: 24人 クリック: 567回
  • この商品を含むブログ (53件) を見る
アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)

アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)

  • 作者: James Shore,Shane Warden,木下史彦(監訳),平鍋健児(監訳),笹井崇司
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/02/18
  • メディア: 大型本
  • 購入: 18人 クリック: 336回
  • この商品を含むブログ (99件) を見る