「第5回 Jenkins勉強会」活動報告

はじめに

2月21日に楽天株式会社様の会場をお借りして、100名程度の参加者とともに第5回Jenkins勉強会を開催いたしました。本稿では、本イベントをレポートします。

今回の勉強会では、前半はいつものように有識者数名の発表を聴講し、後半はビアバッシュ形式で参加者皆さんと共に親睦を深めました。

なお、当日のUstreamをはじめ、各発表者の発表資料や参加者の感想ブログはwiki.jenkins-ci.orgにまとめられています。本レポートの補足として参照ください。

画像

DEV@cloudの実装~Jenkins-as-a-Serviceはどうやって動いているか~

川口氏の今回の発表は、CloudBeesが提供しているJenkinsホスティングサービスDEV@cloudを構成する要素の紹介です。

EC2上で提供されているDEV@cloudでは、ProvidoreというJenkinsのスレーブをプーリングする仕組みや、OSレベルでの仮想化を実現するLinuxコンテナを採用して、各種処理の高速化を図っているとのことです。その他にも、サーバの構成管理ツールであるChefや監視ツールのNagiosも合わせて活用し、運用の手間を軽減しています。また、DEV@cloudではクラウド上のSeleniumサービスSauce Labs OnDemandや、Jarファイルなどの成果物を保存しておくリポジトリArtifactoryといったツールとの連携機能も提供していますが、この連携機能の構築作業も自動化しているという話です。DEV@cloudというサービス提供側にとって、連携機能の構築作業は一度限りのものではなく各ユーザに対して何度も行うことになるので、自動化しておくことに意味があるとのことです。

発表中でも図示されていましたが、自動化には初期コストがかかります。DEV@cloudでの連携機能の構築作業のように何度も行われる作業を自動化することは効果が大きいでしょうが、一度限りの設定で済む場合にも自動化することはコストが掛かりすぎるかもしれません。すべての作業を最初から自動化対象とするのではなく、効果が大きい作業を見極めてそこから着手することも一つの手でしょう。

楽天での”Continuous Delivery”読書会について

楽天の早瀬氏は、社内で行っているContinuous Deliveryを題材とした読書会について紹介しました。

社内で読書会と読書会対象の書籍をどうするかという話を持ちかけると、数名の方が先にContinuous Deliveryを購入したために、この本を対象にしたという経緯があったそうです。読書会中では、英語ネイティブな参加者がいることを活かして、書籍中の英語のニュアンスを確認していたという説明もありました。発表の最後には次回以降の勉強会の構想についてのアンケートがあり、参加者の声を参考に検討していくとのことです。

社外勉強会・社内勉強会は双方ともに異なるメリットがあります。社内勉強会では、絶対数が少ないために参加者が集まりにくいことがデメリットの一つです。しかし、参加者間でコンテキストを共有していることが多く、外部に公開しにくい情報のやり取りもできるので、それだけ突っ込んだ有用な議論ができることでしょう。

mixiにおけるJenkinsの運用について

流暢な英語での自己紹介から始まった加藤氏の発表は、mixiにおけるJenkinsの運用についてです。なお、今回の発表内容の一部は、加藤氏が寄稿したSoftware Design 2012年2月号やgihyo.jp上の記事でも触れられています。補足としてご参照ください。

mixiでは、Perlで記述されたコードに対して、Jenkins上でテストやコードメトリクスを取得しています。全体のテストを実行するのに大体15分から30分ほどかかっているとのことですが、テストの実行時間を極力短くするための工夫を紹介しました。例えば、JenkinsのRemote Access APIを用いて変更があった箇所を特定してテストを実行する、”recent job”という仕組みを構築しています。また、”try job”という仕組みでは、Jenkins上でのビルド時にブランチ名をパラメータとして受け取り、そのパラメータで指定されたブランチをチェックアウトしてテストという流れを実現しているそうです。

プラグインの豊富さなどを含めてJenkinsがJavaと相性がいいのは確かですが、Jenkinsに用意されているremote Access APIやCLIを用いれば様々な言語から利用することができます。今回のmixiでの事例のように、Javaプロジェクト以外でもアイデア次第で様々な用途に活用できるでしょう。

Smart Jenkins on Ruby

東京大学 笹田研究室のGu Wenting氏からは、彼らが作成したJenkinsプラグインSmart Jenkinsの紹介がありました。

昨年の電力不足によってJenkinsのスレーブマシンを省電力化する必要性があったことから、省電力を実現するプラグインを作成したとのことです。Smart Jenkinsは、スレーブマシンの自動オンオフやジョブの遅延実行機能を備えています。当初はJavaで実装されていたのですが、Rubyでプラグインを作成できると知ったことから徐々に移植をしたそうです。

Smart Jenkinsのソースコードは、Github上に公開されています。前回の勉強会でJRubyコミッタの中村氏がお話したように、RubyでもJenkinsプラグインを実装することができるようになっています。しかし、Rubyでプラグインを実装するにはまだまだサンプルコードやドキュメントも少ないので、Smart Jenkinsはこれからプラグインを作成したい方の参考になるかと思います。

ビアバッシュ

LT発表が終わった後は、手配しておいたビールとピザを食べながら参加者同士でJenkinsについて語り合いました。なお、ビール代金については楽天様の方で負担していただきました。

ビアバッシュの後半では、各出版社から提供いただいた書籍を参加者の方に抽選でプレゼントするという余興が行われました。オライリー様からは玉川氏が翻訳され2月22日に発売されたばかりのJenkinsBeing Geekを、技術評論社様からは佐藤氏とそのチームが執筆したJenkins実践入門と、川口氏が執筆されJenkins特集が掲載されている今月号のWEB+DB PRESS Vol.67をそれぞれ提供いただきました。当選された参加者の中には、勉強会に参加されていた著者/翻訳者の方にそのままサインをしてもらえた幸運な方もいたようです。

最後に

今回のJenkins勉強会はいつにもましての盛況ぶりで、1時間で40人の1次募集枠が埋まってしまうほどでした。そのため、気づいたときには参加枠がなく参加できなかった方も多いのではと思います。合わせて、今回は今までと少し趣向を変えてビアバッシュ形式を採用したため、勉強会中で親睦を深める時間が増えた反面、発表の時間が減ってしまいました。このため、数名の方からLT発表を応募していただいたのですが、時間の関係上お断りせざるを得ませんでした。

また、この数週間だけでも、第2回大阪Jenkins勉強会Developers Summit 2012豆蔵様が提供する豆ナイトなど数々のJenkins関連のイベントや発表が行われています。それに加えて、上述したようにJenkins関連の書籍も数冊出版されており、Jenkinsに対する関心の高さを感じ取れます。

第2回大阪Jenkins勉強会の様子
第2回大阪Jenkins勉強会の様子

このような状況を踏まえて、より多くの方にJenkinsに関するノウハウを発表・聴講する場としてJenkinsユーザカンファレンスを計画しています。規模としては半日から1日程度で同時に数セッションを開く形式で、海外や国内の著名な方を招待して発表していただこうと考えています。また、普段の勉強会より規模が大きくなることから、カンファレンスのお手伝いをしていただける方も合わせて募集したいと思っています。

まだまだ未確定なことばかりのためこれ以上詳細をお話することはできませんが、乞うご期待ください。

おすすめ記事

記事・ニュース一覧