SSブログ

書籍『Jenkins実践入門』 [献本]

Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

  • 作者: 佐藤 聖規 監修・著
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/11/11
  • メディア: 単行本(ソフトカバー)

CIツールであるJenkinsの解説書です。目的に応じて、様々な設定について説明されています。継続的インテグレーションやJenkinsに興味がある人にとっては、導入する際に手元に置いておいて参考にすることができます。すでに、Jenkinsを使用している人であれば、自分が知らない新たな発見があると思います。

継続的インテグレーションは、どのような開発プロセスを使用していても必須だと言っても過言ではありません。ウォータフォール開発しているとかアジャイル開発ではないから関係ないというものではありません。

この本のカバーには次のように書かれています。
「手作業でミスが多発」
「別の環境だとビルドできない」
「結合テストで修正地獄に]
「リリース直前なのに動作しない」

自動化でストレスはゼロに
品質は最高に
どのようなソフトウェア開発でも起きる問題なのです。

私自身が初めてビルド作業を完全自動化して夜間ビルドを導入したのは,
Fuji Xerox DocuStation IM 200の開発の時でした。1993年から開発に着手して1996年初めに商品化されました。私自身も7、8万行程度の製品コードを書く一方で、夜間ビルドやNFSを活用した分散コンパイルなど様々改善を行いました。自動化するきっかけは、二週間に1回の定期リリース日にビルドがほぼ100%失敗することでした。それで頭にきて、毎晩自動でビルドするようにしたのです。それからはリリース日にビルドが失敗していることはなかったのですが、まだ手作業でテストする時代でしたので、リリース用テストで障害がたくさん見つかるということを繰り返していました。

1990年代は夜間ビルドの時代であり、2000年代からは継続的インテグレションの時代で、さらに発展して継続的デリバリーの時代に突入しようとしています。残念ながら、多くのソフトウェア開発現場では、今も手作業でビルドが行われ、この本のカバーに書かれているような問題が多発しているのではないでしょうか。

初期のCIツールであるCruiseControlを2007年頃に使用した時と比べると、Jenkinsは非常に進歩しています。開発者自身が、手作業というの労働集約型開発から解放されて、知識集約的活動に集中するためには、CIツールは必須です。その意味で、このような書籍が執筆されたことは、今後、日本のソフトウェア業界の生産性向上に貢献してくれることを期待しています。

私自身も、昨年10月にそれまで手作業で行われたいた自部門のビルド環境を、Hudson/Jenkinsを使用して完全に自動化に着手して、若手のエンジニアと二人で3ヶ月で、ほとんどの手作業を自動化しました。それまでは、上手く行っても3時間かかる手順を、ビルド担当者が手作業で行っていたのですが、今は、同じことが15分程度で自動で行われます。自動化作業に着手した時に、本書があれば、もっとスムーズに作業が進んでいたかもしれません。

手作業の問題点は、手順書にすべてが書かれておらず、ビルド担当者しか知らない前提条件や手順が多くあったりすることです。そのため、手作業を自動化するというのは、その部分を明らかにして各種スクリプトへ落とし込んでいく必要があります。

本書では述べられていませんが、自動ビルド環境を整えても終わりではありません。エンジニアに躾をしなければならないのです。プライベートビルドをしてからコミットするとか、ビルド結果をきちんと確認して、素早く対応させるとかです。その意味で、合わせて『継続的インテグレーション入門』も読まれると良いと思います。

継続的インテグレーション入門 開発プロセスを自動化する47の作法

継続的インテグレーション入門 開発プロセスを自動化する47の作法

  • 作者: ポール・M・デュバル
  • 出版社/メーカー: 日経BP社
  • 発売日: 2009/08/06
  • メディア: 単行本(ソフトカバー)

高価なソフトウェアを購入しなくても、Jenkinsのようなツールがオープンソースで利用できる時代です。まだ、手作業でビルドを行っているのであれば、『Jenkins実践入門』を参考にJenkinsの導入を試してみてください。そして、「作業はコンピュータに、人間は創造的活動を」目指してください。