第8回Jenkins勉強会に参加 / LTしてきました！


久しぶりの、Blog側投稿になります。
数少ない勉強会への参加ですが、今回は昨年のお話の1年後、どうなったか…という辺りをお話してみたいと思い、LT枠での参加を申し込みいたしました。

＃わたしの場合は普段勉強会は参加できないので、『どうしても出たい！』という場合は、自分がイベント主催側に関与するか、自分が発表する機会を得て、キャンセルできないように追い込んだりして（？）ます。

簡単ではありますが、レポをしたいと思います。

-------------------

### 目次

- 各セッションの報告
  - 詳細ではなく、感想を中心に
- 会場雰囲気など
  - イベント進行や会場雰囲気について
- LTタイム
  - LTセッションの様子について
- まとめ
  - 全体を通して感じたこと (Jenkinsのトレンドなど）
  - 参考資料など
- おわりに (個人的な課題とか）

※『おわりに』では、わたし自身の勉強会レポート/Tweetについて思うところを載せました。

-------------

# 各セッションの報告

どなたかが呟いてらっしゃったのですが、メインスピーカーの皆さん、『川』がお名前に入っていました。Jenkinsに詳しい／中心の方は『川』の付く人が多いのかもしれませんね(^^

スライドがしっかりしていますので、細かいレポートは省略させていただきます。自分のココロに残ったことをレポートいたします。

---------

### [「2013年Jenkinsの歩み」](http://www.slideshare.net/kohsuke/ss-29339493) / 川口さん

毎回毎回、世界中で開発が進んでいるJenkinsの最新情報を **日本語で、しかも川口さんご自身が**お話して下さる、大変有り難い機会です。

今回も、アツいお話を伺うことができました。

#### Jenkinsのコアを丁寧にチューニングしています

詳しいお話は割愛いたしますが、注目は、『細部に至るまでの、CI基盤としてのJenkinsのチューニング／改善』という点でしょうか。

Jenkinsにはフック（拡張）ポイントが数多くあり、そこを利用してプラグインという形で、可能性を広げて来ていました。そういう意味では、Jenkinsのベースはシンプルさを重要視していたと思いますし、ベースのJenkinsは本当に設定なども基本のものしか入っていません。

ただ、わたしはHudson時代から使っていたので、たしかにベースのwarも、バージョンを重ねるたびにサイズも増えて来ているな、という印象は受けていましたし、再起動時の時間も少しではありますが、気になるようになってきていました。

川口さんのお話された、大きな改善点はたくさんありますが、わたしが使っている中で実際に『おお！』と感じたのは、以下の点です。

* 実行エンジンをwinstoneからjettyに変更
* マスタ／スレーブの通信の仕組みを大幅に変更（立ち上がりを高速化するための様々な改善） 

2点目については、スレーブの（再）接続時には、従来slave.jar を毎回マスタから転送しなおしていたが、slave.jar をキャッシュする方式に変更したとのことです。

実は、最近手を入れたJenkinsで、スレーブとの接続が一度切れてしまい、再接続を試みたところ、slave.jarがうまく転送されずに、ノードが立ち上がらなかったというトラブルがあったばかり。
さっそくバージョンを上げねば、と感じました(^^;

winstoneについては、Hudson時代からのお付き合い。
『Javaのアプリケーションは、Tomcatなんかの専用コンテナが無いと起動できないんじゃ…』と思っていた私にとって、当時のHudsonが、java -jar だけで8080番で上がってすぐに利用できたことは、衝撃的でした。

以来、私はずっとJenkinsは専用コンテナは利用せず、java -jar ( + ApacheとかNginx) で使っているんですが **最近バージョンアップしてjettyに変更になっても、何の変更も違和感もなく利用できている** ことに、さらにビックリしています。

ベースのJenkinsそのものが、CI/CDされ続け、さらに広がっていることは、凄いことだと改めて感じています。

また、せっかくなので、ずーっと前のhudson.jar と jenkins.jar で同じことを行ってみて、バックグラウンドのプロセスにどんな違いがあるのか、なんてあたりも調べてみたいなと思いました。

-------------

### Jenkinsはじめました。 ～Yahoo! JapanのCI/CD～ / 石川さん

[第8回Jenkins勉強会にてプロモーション広告におけるCI/CDの取り組みについて発表しました] (http://techblog.yahoo.co.jp/event/jenkins-in-promotional-ads/)

個人的には、導入までの道のりのお話を聞いていて、一番心に響くお話でした。また、広がった後の課題も『うんうん』と思う所がありました。

わたしの環境だと、ソフトウェア開発ではあく、インフラ寄りのJenkins導入なので、テストや品質管理に関しては、まだまだ試行錯誤です。石川さんのお話も、インフラ寄りのCI/CDのような印象を受けましたので、色々参考にさせていただこうと思っています。

Tweetでも述べたのですが、規模全然違うにしろ、同じような道を通ってきたので、身につまされるものがありました。
印象に残ったのは、この言葉。多分、皆さんも同じく感じたことと思います。（間違って伝えていたら、申し訳ありません！）

**『エバンジェリストの存在が重要重要。導入支援をする際は、プロセスを見直したり、今までの考え方を変えて行くパワーがいる。』**

こうして、勉強会で、ご自身の想いとか、気付きをお話して下さることが、周りを巻き込み、現場を前進させることに繋がると信じています。

発表お疲れさまでした！

-------------

### [Jenkinsエンタープライズについて](http://www.slideshare.net/hirokotamagawa/20131220-8jenkins-jenkins-enterprise) 玉川さん

SHIFTでソフトウェアテスト、Jenkinsのトレーニングや導入支援に携わっている、玉川さんのお話です。（[テスト自動化研究会（STAR）](https://sites.google.com/site/testautomationresearch/)でも活躍されています）

わたしなんぞ足下にも及びませんが、過去のJenkins勉強会を通してお知り合いになり、この世界で活躍している女性として応援させていただいております。（SHIFT様の技術ブログや、玉川さんが開発されたプラグインにも、お世話になっています！）

#### Enterprise版の重要性

さて、お話は、Enterprise版の特色、サポート内容、専用のプラグインの紹介などでした。

* OSS版のプラグインもサポート対象
* ジョブをテンプレート化し、共通化を図れるプラグインの紹介（２種）
* 権限管理の拡張（委譲しやすくなっている）
* ジョブの棚卸しや整理に便利なFolder pluginの紹介など

わたしもJenkinsは数年使ってみていますが、設定やら管理やらは、試行錯誤しての状況で、とても整っているとは言えません…。
その一方で、ユーザは増え、重要性も増してきていますし、管理するプレッシャーもそれなりにあります。
そういう面から見ても、『ああ、そうそう、この機能欲しい！』と感じるものばかりでした。

Jenkinsの普及、重要性が増したからこそ、Enterprise版の存在意義が際立ってきており、多分来年はEnteprise版の導入がどんどん増えていくんじゃないかと思っています。

#### Enterprise版Jenkinsおよびノウハウの普及／教育活動

玉川さんは、Jenkins導入支援で、トレーニングやBoot Campの件も紹介してくださいました。現在は有償の企業ユーザ向けトレーニングのようですが、今後、土日を利用した無償のBoot Campも検討されているようです。

ユーザが増え、運用事例が増えていくことで、おそらく『Jenkins利用についてのベストプラクティス』というものが、これからもっと蓄積されていくんじゃないかな、とも思っています。

# 会場雰囲気など

勉強会の会場提供側になることも時々ありますので、進行や会場の雰囲気は、実はわたしには大きなトピック／観察しておくべきテーマになっていますので、レポートに含めさせていただきます。

### 会場

奥に深い形ではなく、横に長めの配置になっていました。

スライドが見えにくいこともなく、横に長めになっている分、中央だけでなく両サイドにも（計3カ所）スクリーンが配置されていましたので、スライドの字が見えにくいということは無かったかと思います。

キャンセルの方も多かったので、わたしは意外とすんなり、中央列の前のほうに陣取ることができました。十分なスペースで、電源タップも利用できましたので、おかげさまでPC/無線/（自分の）発表前の手直しも、余裕を持って行うことができました！（IT系勉強会だと、タップ大事ですよね、本当に…)

その他、いろんな視点で会場を眺めさせていただきました。

ボアンティアで受け付けや案内、中継、撤収等々をして下さったYahoo!JAPANのスタッフの皆様、本当に有り難うございました。

おかげさまで、快適にお話を伺うことができました！

会場担当の皆さんに、このコメントが届きますように(_ _

### ビアバッシュ

今回は、メインセッション後の休憩時間に、アルコール＆おつまみを出していただきました！
貴重な歓談タイムだったのですが、わたしはLTを控えていましたので、あまりお酒を口にすることはできず(^^; 

なお、キャンセルの方も多かったようで、意外にドリンクが余ってしまったようです...。飲食のための見積もりや買い出しも、なかなか難しいところですが、当初告知を受けていた参加費が無くなり、主催者側で負担して下さったので、本当に有り難い限りです。

### ジャンケン大会

今回は休憩中にジャンケン大会があり、勝者には、川口さんからJenkins人形のプレゼントがありました！（過去にも関係者の書籍プレゼントなんかもあるイベントなんですよね〜）

残念ながらわたしはすぐに敗退でしたが、配られたJenkins人形が、みなさんの現場で愛されるキャラになってくれることを願っています:)

-------------

# LTタイム

### [『おひとりさま〜』の1年後。〜発表者のその後を語る〜](http://www.slideshare.net/akiko_pusu/20131220-jenkinsakiko-pusu) 

今回、わたしもLTしたいと名乗りを上げました。
LTと言いつつ、ドラが無かったので、だいぶ時間をオーバーしていたかもしれません。申し訳ございません…。

お酒を少し入れた後でのお話でしたので、たくさんの方々の前で、うまく伝えたいことが伝わったかは怪しいのですが、個人的には[黒曜石](http://www.kokuyo-st.co.jp/stationery/fp/)の力も借りまして、お話をさせていただきました (^^;

お話の中で、『自動化を意識する』という習慣が根付けばそれで良い、と述べましたが、もちろん、Jenkinsの存在無くしては、ここまでの考えには到達しませんでした。

Jenkinsのおかげで、自動化することの効果やメリットを **『見える化』**できたことが、一番大きいです。

>（追記）また、お話に出て来たジョブ管理システムですが、そういうものに触れたことがなかったわたしにとっては、良い機会でもありました。
特に、情報を扱うジョブの場合は、変更をトリガにするのではなく、営業日カレンダーのように事前に仕込んだ日付（締め日など）で実行するケースが中心なので、この辺りの設定周りは専用ツールは上手くできているな、と実感しました。
>
>どちらにしても、自動化に対する意識が周囲の中で育っていて、実績が出来ていた状況だったからこそ、あまり抵抗無く受け入れられ、ポーティングもできたのかな、と思っていますし、実際問題なく回っています:)

川口さん、Jenkinsキャラを一人歩きさせてしまってて、すみません〜！

-------------

### [Jenkins with Docker](http://www.slideshare.net/techblogyahoo)

- [第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました](http://techblog.yahoo.co.jp/event/jenkins-with-docker/)

Yahoo!JAPANの須田(@superbrothers）さんのお話です。

わたしは、自分のLTが終わって、ちょっと落ち着いてからTweet開始だったので、ライブでのお話には追いつくことができませんでした。

Dockerは最近耳にしたばかりで、どんなものかイメージできていなかったのですが、みなさんのTweetや後からのコメントも拝見する限り、かなり **アツいテーマ** だということを感じています。

詳しいことは、多分体感してみないと書けないので、今回は割愛。

ただ、秋ぐらいから、わたしもVagrantを使いだしていて **Immutable Infrastructure** という考え方にも納得するようになっています。今後も勉強会に参加する機会があれば、ちゃんとしたレポートを書けるようにしたいので、こちらの方面も勉強しようと思いました:)

# まとめ

わたしにとって、1年ぶりのJenkins勉強会。今回もとっても楽しく、刺激をいただけた会でした。

また、相変わらず人見知りしたり懇親会までは出られないので、なかなか会場の皆さんとお話が出来ないのですが、川口さん、ikikkoさんをはじめ、玉川さんや太田さんとも少しだけお話が出来て、『来て良かったー！』としみじみ思っています。

-----

まとめとして、印象に残った点を挙げておきます。

* Jenkinsの普及により、ますます可用性が重視されるようになっている。
* Jenkins本体の大幅なチューニングがなされている。
* Enterprise版の展開は、Jenkins普及による必然的な流れ。
* CI/CDの展開には、エバンジェリストの存在が重要。
* Immutable Infrastructureの考え方にあるように、『必要な時に作って検証し、いらなくなったらすぐに消す』という環境が開発を加速させる。
* 上記を支える手法として、Jenkins+Dockerがアツい。

以上、長くなりましたが、久しぶりのレポートとさせていただきます。

これからJenkinsに取り組む方の、なにかの道しるべになれば幸いです。


### 関連資料 / 参考

- [第8回Jenkins勉強会 Connpass] (http://connpass.com/event/3660/)
- [Togetterまとめ] (http://togetter.com/li/605324) 
 - (Togetter職人さま、ありがとうございます！)

# おわりに

久しぶりに、勉強会のレポートをBlogに書きました。(書きやすさを鑑み、Qiitaを利用させていただきました）
こちらについても、気付きを少し書いてみます。

#### 会場でTweetすることについて

最近は、何か参加する場合、ライブでTweetする側に回る方が多いのですが、その分、じっくりと跡からメモを見返してBlogを書いて報告する… という機会が減ってしまいました。
自分のTweetも含む、Twitterのまとめが出来上がれば、それで安心とか満足してしまっていました。（以前のように、メモや絵を載せるスタイルも、時間を理由に減ってしまいました）

確かに、リアルタイムで呟くと、すぐにリツイートされたり、お気に入りに入ったりすることもあり、会場から発信する側も、それはそれで楽しいのですが、実際はそれは完全な自分の言葉ではありません….。

スピーカーから紡ぎだされる言葉と、自分の想いが混ざってしまうことがあり、Tweetから流れを追っているみなさんに、精確に情報を伝えられているかというと、怪しいものがあります。

もし、スピーカーの方の意図していたことと、違った方向に受け止められていたとしたら、わたしのしていることは、とんでもないことです…。

### 来年はこうしよう

自分はコメンテーターでもレポーターでもありません…。
スピーカーのお話や、会場の雰囲気とか楽しさを、できるだけ分かりやすく伝えたいという気持ちが根底にあります。

#### 勉強会／イベントでのTweetについて

来年はその辺りを意識して、『できるだけ正しく』『自分の主観と切り分けた』Tweetをして行きたいと思います。

#### 事後のレポートを書くことについて

また、時には会場ではメモ中心にし、後でじっくりとレポートを書くスタイルも、取り戻してみようと考えています。多分、一番わたしらしさが出ますし、『レポートを書く』ことの効率化にも着手すべきだな、なんて思いました。

やっぱり、ここは **自動化** できないですからね。

それではみなさま、良いお年を！