読者です 読者をやめる 読者になる 読者になる

ikeike443のブログ

ソフトウェアビジネスに関心がある系のブログ

Jenkins(カエル本)に寄稿しました

Jenkins

じっくり読んでいたらすっかり遅くなってしまいました。。

Jenkins

Jenkins

寄稿しました

去る2月22日にオライリー・ジャパンさんから発売された『Jenkins』(通称カエル本)に、縁あって寄稿させていただきました。
”付録B プラグインの開発”という記事です。
帯にも記載されているとおり、Play! frameworkプラグインを例にして、プラグイン開発について簡単なチュートリアルを書かせてもらいました。


正直、Playみたいな(新しいけど)マイナーなフレームワークを題材にしていいんですか、という疑問があって、お話をくださった訳者の玉川さんには何度か確認したのですが、ぜひPlayで、とのことだったので、思い切って書かせていただきました。
ぜひ、手にとってお確かめください!

Jenkins

Jenkins

初心者から上級者までカバーする決定版

さて、この本は、先に出版された技術評論社さんの『Jenkins実践入門』と比較すると、中級者むけのやや難しい本、という紹介がされているようです。
ですが、私はそうは思っていません。
確かに、第2章の初めの一歩という章でいきなりMavenとGitが出てくるのは、日本のIT業界の現状を考えると厳しいかも知れませんが、インストールの仕方について説明は書いてありますし、Jenkinsを手にとって読もうと考えるような人(プロジェクトのリーダーだったり、ライブラリアンだったりリリースマネージャーだったりする人)であれば、仮にMavenやGitに馴染みがなくても、何とかできると思います。


この本は、初めてJenkinsに触れようとしている方や、継続的インテグレーションって聞いたことあるけどなんのことだっけ、という方のために、まず第1章でJenkinsと継続的インテグレーションについての概説から説き起こしてくれます。
目次についてはこちらを参照してください。(目次タブをクリック)

とりあえずJenkinsについて知りたい人は第2章まで、さらに第6章まで読めばかなり分かる

続く第2章ではとりあえずJenkinsをクイックに起動して一通り試してみるための方法について触れています。第3章では、各種OSにおけるJenkinsのインストールの仕方、Apacheのリバースプロキシの設定の仕方、TomcatなどJEEアプリケーションサーバでの動かし方、といったサーバの設定にもページを割いて丁寧に説明しています。
第4章ではJenkinsのシステム設定について、第5章ではビルドジョブの設定、第6章では自動テストの設定の仕方、コードカバレッジをとる方法、JMeterを使ったパフォーマンステストなどについて詳しく丁寧な解説があります。


初めてJenkinsに触れるという方は、第2章まで読めば、とりあえずJenkinsを動かして、一通りの流れを試すことが出来ます。まず概要を掴むには第2章までで充分です。
さらに第6章まで読めば、サーバのセットアップからビルドジョブの設定、自動テストのやり方までひと通り学ぶことが出来ます。
このように、ステップバイステップでJenkinsに慣れていくことが出来るように書かれています。
かなり丁寧に書かれているので、この本を読みながら設定すれば、きっと動かすことが出来るはずです。

セキュリティについての第7章、通知のバリエーションについてやたら詳しくなれる第8章

さらに、第7章ではセキュリティ、ユーザー権限管理についても詳しく説明があります。大きな組織でテストやリリースを管理されている場合、この章はかなり役立つのではないでしょうか。
第8章ではメールやIRCなどによる、ビルド結果の通知について掘り下げています。このあたりからこの本は少しずつマニアックな面を見せてきます。メールで使える変数の解説はもちろん、デスクトップ通知やSMSへの通知について触れ、ビルドラジエータという概念についても説明し始め、さらにはSoundsプラグインやSpeaksプラグインを使って、ビルド結果を音を鳴らしたり、コンピュータにしゃべらせて通知するなんていう方法も教えてくれます。(こんなの知らなかった。。)
さらに、XFDについても触れていて、お約束のNabaztagをフィーチャーしています。
Jenkinsによってテストやビルドを自動化していても、成功や失敗の事実をきちんと人間がキャッチできなければ意味がありません。
通知について1章を割いて熱く語るのもわかるなー、という感想をもちました。
特に、成功ビルドや失敗ビルドをまとめてメンバーの眼を引くような場所に(大型ディスプレイなどに)映しだしておく、というビルドラジエータという方法はいいなあと思いました。

徐々に高度に:ビルドプロモーション、分散ビルド、継続的デリバリ

第9章でCheckStyleFindbugsといった静的解析ツールについて触れ、Sonarとの統合について説明した後、さらに高度な内容の説明に入っていきます。第10章ではパラメータ化ビルドジョブやマルチ構成ビルドジョブについての詳説、並列ビルドやビルドパイプライン、ビルドプロモーションといった本当に高度な、しかし大きなプロジェクトを成功させようと思ったら必ず必要になる知識が山盛りになっています。
第11章はJenkinsの分散ビルドについて詳しく知ることが出来ます。EC2プラグインや、CloudBeesのDEV@Cloudについても説明があります。プロジェクトが成長してスローテスト問題が顕在化してくると、複数ノードを使った分散ビルドを検討するようになります。分散ビルドがかなりイージーにセットアップ出来るのもJenkinsの特徴ですよね。
第12章ではさらに一歩進んで、デプロイの自動化と継続的デリバリについて触れられています。Mavenリポジトリへのデプロイや、アプリケーションのデプロイについて触れています。デプロイで問題になるのはアプリケーションの更新よりもデータベースの更新(スキーマの変更や出荷データの更新)だと思いますが、このあたりは軽く触れられているだけで、まだまだこれからの分野なのかな、と思わせます。継続的デリバリについてはそれだけで一冊本があるくらいですしね。。

メンテナンスについてもフォローしてるよ

この本が素晴らしいのは、第13章でJenkinsのメンテンナンスについてもきちんと目配せしていることです。ディスク使用量の監視やバックアップの仕方、ビルドジョブの移行(別のJenkinsインスタンスへビルドジョブだけを移行する)についても触れています。これは長期間継続的にJenkinsを使っていると必ず問題になるところです。
メンテナンスまでしっかりフォローしているのは本当にさすがという感じです。

付録までついてお腹いっぱい

さらに、付録AではMavenとAntで自動テストを書く方法、付録Bではプラグインを書く方法(僕の記事!)までフォローされていて、本当にお腹いっぱいになります。

Jenkinsについてのバイブル

Jenkinsを初めて使おうとしている人から、今使っている人まで、全てのJenkinsユーザーが常に傍らに常備しておくべきバイブル、それがこの『Jenkins』という本だと思います。


というわけでみなさん、今すぐ買いましょう!

Jenkins

Jenkins