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

10月15日に株式会社グリー様の会場をお借りして、75名程度の参加者と共に第4回Jenkins勉強会を開催いたしました。本稿では、本イベントをレポートします。

今回のテーマは「C/C++/C#(...etc)プロジェクトにおけるJenkinsの運用について」です。今回の参加者の過半数は、主にC/C++/C#に携わっている方ということもあって、少しでも日々の業務で活かせるものを持ち帰ろうと皆さん熱心に発表を聞いていました。

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

画像

クロスコンパイルに役立つマルチ構成プロジェクトの紹介

川口氏の今回の発表は、マルチ構成プロジェクト機能の紹介です。マルチ構成プロジェクトについては、以前川口氏がgihyo.jp上に寄稿した記事も参考にしてください。

画像

マルチ構成プロジェクトは、ほぼ同一のビルドを様々な環境で行う場合に適しています。例えば、複数プラットフォームでのコンパイルなどのように、ビルド内容はほとんど同一だが構成の一部が異なるという場面を想定しています。また、構成の組み合わせによっては、テスト数が爆発したりそもそも意味のない組み合わせが含まれることもありますが、この対策として組み合わせをフィルタする機能も搭載されています。

今回はコンパイラの種類を例として挙げていましたが、その他にも様々な状況で活用できます。例えば、SeasarのS2JDBCをホストしているJenkinsでは、⁠データベース×JDKのバージョン)の2軸でマルチ構成プロジェクトを構成しています。似たようなプロジェクトを多数抱える状況となったら、一度マルチ構成プロジェクトを検討してみるとよいでしょう。

「Jenkins+α」で開発環境がみるみる良くなる VisualC++編

粉川氏による、Jenkinsを絡めた、C++での開発環境について発表です。

画像

最初に、Jenkinsの基本機能について簡単な説明をして、それを踏まえた上で実際にどのようなJenkinsプラグインや関連ツールを導入したかを話しました。自動ビルド/自動テストに始まって、静的解析やBTSとの連携まで幅広く紹介したのですが、最初からすべてを取り入れたわけではないとのことです。まずは自動ビルドから行い、その後に効果が高く使う人の反応がよいプラグインから優先的に導入したと述べていました。

すべてを最初から導入する必要がなく、効果が高そうな項目から順次導入できることはJenkinsの長所の一つです。Jenkinsを新たに導入しようと考えている現場では、従来の開発プロセスを崩さない範囲で導入していくのがよいでしょう。その後、メンバーがJenkinsの効果を感じることができるようになったタイミングで、より大掛かりな機能・プラグインの導入に持っていくやり方が周囲の理解も得られやすいと思われます。

輪るBingドラム.NET - CI戦略、しましょうか

名古屋から発表に来ていただいたbleis氏は、業務で運用しているシステムの構成紹介と、運用していく中で感じたことについて発表しました。

画像

システムの構成要素として、Jenkinsの他に.NET FrameworkとGit / MSBuild / NUnitを使用しており、これらに対応するJenkinsプラグインと共に認証・認可を行うためのプラグインなどを組み合わせているとのことです。開発・運用を進めていく中でJenkinsがもたらした効果の一つとして、⁠開発者に安心感を与える」ことができた点を挙げていました。一方、失敗談もいくつか紹介されましたが、総括すると「基本に忠実に」従うことが大事であると纏めていました。

「開発者に安心感を与える」という点は、まさにJenkinsが目指していることです。開発者は、Jenkinsによって不安要素から解放され、より本質的な作業に集中できるようになります。この辺の感覚は、bleis氏が感じたように、実際にJenkinsを運用していく中で実感することになるでしょう。

LT発表

Jenkinsを愛する全ての人に贈る『Jenkins実践入門』 11月発売! 目次チラ見せしちゃいます

NTTデータの佐藤氏の発表は、11月発売予定の書籍『Jenkins実践入門』の紹介です。なお、本書籍は既にAmazonで予約可能です。

画像

Jenkinsは、画面を直感的に操作できることやヘルプが充実していることから使い方は分かりやすいのですが、自由度が高すぎてどう活用すればいいかが分からないという点を問題点として認識していたそうです。そこで、書籍を執筆するに当たって、Jenkinsを活用するためのベストプラクティスをまとめることに注力したとのことでした。書籍の後半では、プラグインの開発方法をはじめとして一歩進んだ活用方法も紹介されており、Jenkinsのパワーユーザにも満足できる内容となっています。

個人的には、書籍内に挟まれるコラムの内容に強く興味を惹かれました。コラムでは、Webアプリケーション用のテストツールSeleniumやシステム管理ツールPuppet/Chefについても触れられています。Jenkinsとこのような外部ツールとをうまく連携することによって、より自動化を推し進めることができることでしょう。

こっちだってJenkinsを愛する全ての人に贈る『Jenkins The Definitive Guide日本語訳』 実践入門の(たぶん)ちょっと後に発売!

オライリーから出版されているHadoop本など、いくつかの翻訳にいそしんでおられる玉川氏Jenkins The Definitive Guideの日本語翻訳版についての紹介です。

画像

「日本で一番最初にJenkinsの本を出したい」という決意のもとに『Jenkins The Definitive Guide』の翻訳を進めていた玉川氏ですが、年内の出版はおそらく不可能ということで、残念ながら上述した『Jenkins実践入門』に先を越されることになりました。⁠Jenkins実践入門』と比べると、こちらは活用シーンに応じたプラグインの紹介が中心となっています。また、Amazon Web ServicesのEC2や、Jenkinsに特化したPaaSであるCloudBees DEV@Cloudなどのクラウドを利用する話も掲載されています。

Jenkinsはプラグインが豊富であるという特徴がありますが、その豊富さゆえにどれを使えばいいのかが検討つけにくくなっているという側面もあります。この状況ではどのようなプラグインが利用できるのかという情報を、書籍というまとまった形で参照できることはユーザにとってありがたいことだと思います。Jenkinsをより深く活用するに当たって、⁠Jenkins実践入門』とともに目を通しておきたい書籍です。

Jenkins温泉とは何だったのか

cactusman氏は、今回初の試みだったJenkins温泉について発表しました。

画像

Jenkins温泉とは、10月9日から2泊3日で13名が参加した、Jenkinsに関するハッカソンです。初日に3時間ほどプラグイン開発のチュートリアルがあり、以降は各々が興味を持った内容でハックするというものでした。プラグインの新規開発や改善を行った人、Android端末と連携するクライアントやXFDを作成した人など、多岐にわたる内容だったようです。

cactusman氏のJenkins温泉総評にもありましたが、こういった場を通じてメインコミッタの川口氏とリアルタイムでやり取りできることは、とても大きいことだと思います。疑問に思うことがあっても、メーリングリストやJIRA経由だと質問するにしてもどうしても敷居が上がってしまうのですが、同じ場を共有していれば直接質問してすぐに解決できるのでリズムよく開発することができます。Jenkins温泉は引き続き開催していきたいと考えていますので、ご期待ください。

Ruby Plugins for Jenkinsの紹介

飛び入りでお話いただいた中村氏は、RubyでJenkinsのプラグインを記述できるようにする取り組みの現状について発表しました。

画像

RubyでJenkinsプラグインを開発できるようにする取り組みは、前回の勉強会で川口氏が紹介したもので、その後中村氏・川口氏と作者であるCharles氏で毎週金曜日の夜にオンラインミーティングを行いながら進められています。このプロジェクトの中で、中村氏はビルドスクリプトを追加するといった裏側の仕組みを整備しているとのことです。今後の方向性としては、Github用のCIツールであるTravisのように、プラグインの設定を極力単純にしようと試みているようです。

JRuby/CRubyコミッタの中村氏が参画したことで、そのRubyの知識を活かして順調に開発が進んでいるようです。このプロジェクトを通じてJenkinsプラグインを他言語へ移植するときのノウハウが培われれば、例えばPythonへ移植するときもそのノウハウを流用できることでしょう。

Jenkins User Conf 報告

プログラム上は予定していませんでしたが、勉強会の最後に川口氏から先日開催されたJenkins User Conferenceについて参加報告がありました。

画像

Jenkins User Conferenceとは、サンフランシスコで10月2日に丸一日かけて行われた、発表数20・参加者250名程度のカンファレンスです。カンファレンスのはじめに、Jenkinsプロジェクトの活発さを示す指標として、JenkinsのJIRAに登録されたチケットやJenkinsプラグインの登録数などすべての面で増加しており、その増加ペースも年々上がっているというデータが川口氏から示されました。その後、Yahoo!やRed Hatといった大型ユーザの運用事例の報告や、第2回Jenkins勉強会で発表していただいた山本氏などを含めたLT発表が行われました。

大盛況のうちに終わったJenkins User Conferenceですが、今後はヨーロッパでの開催も予定されているようです。まだまだ構想レベルですが、日本でも現在行っている2時間程度の勉強会をもう少し大きくして、丸一日かけたカンファレンスを開催することも検討中です。日本でのカンファレンスについて、開催希望や内容など皆さんの意見もお待ちしております。

最後に

200名超の参加者が集まった第1回Hudson勉強会から、およそ1年が経過しました。その間、名称がHudsonからJenkinsに名前が変わるなど様々なこともありましたが、継続して勉強会を開催できていることをスタッフとして嬉しく思っています。最近では、大阪札幌でもJenkins勉強会が開催され、LT発表でも紹介があったJenkins温泉も開催されるなど、その勢いはますます盛んになっています。

札幌でのJenkins勉強会の風景
札幌でのJenkins勉強会の風景

この1年は、プログラミング言語を軸に勉強会のテーマを設けてきました。Java / LL / C, C++, C#とひと通り取り上げたこともあって、次回以降は別の切り口でテーマを設けてみようと考えています。Jenkinsの開発者・ユーザ・スタッフ皆の意見を取り入れて、よりよい勉強会にしていきたいと思っています。

このようなテーマで勉強会を開催して欲しいといった意見や、大阪・札幌にとどまらずぜひうちの地域でも開催して欲しいなどの要望がある方は、メーリングリスト等からコンタクトを取ってみていただければと思います。

おすすめ記事

記事・ニュース一覧