[Jenkins] 第5回Jenkins勉強会に行って来ました。

品川の楽天タワーで行われた第5回Jenkins勉強会に参加してきました。

講演

DEV@cloud Jenkins-as-a-Serviceの舞台裏

Jenkinsのリード開発者@kohsukekawaさんによる、Jenkins のホスティングサービスDev@cloudの紹介。

CloudBeesが運営するサービス。 Amazon EC2の上に構築しているのでその裏側の紹介。

JVM:Slave毎にJVMで駆動。JVMで動かしている。
独自パッチ:標準のものから、マスターでビルドが起こらないようにするなど、独自パッチをあてているとのこと。このパッチはほしいぞ...。
Jenkinsの外:Chef (Rubyのコンフィグ管理ツール)をつかって、セットアップしたやつをAMI化しているらしい。そういうツールがあるのは知らんかった。
Linux Container:OSレベルの仮想化に使っている。スレーブのリサイクルが高速で、Amazon EC2の上での独立性を高めて、下のサービスに影響を受けなくて済むようにするための工夫。たしかにXとかslave側にはほとんど不要だからこうしておけばVirtualBoxのクライアントを複数立ち上げるより良さ気。
Nagiosによるモニタリング。信頼を獲得するために、動かしているシステムの状態を把握する。ディスクスペース、スレーブの稼働状況、負荷JVMヒープなどを監視。

要約⇒ちっちゃなことからコツコツと。少しずつシステマティックな管理を導入しよう。

早瀬さん@楽天 : 「楽天での"Continuous Delivery"読書会について」

楽天の中で"Continuous Delivery"読書会を開始したときの話。
Jolt Awardの中から本をピックアップして投票⇒読書会スタートの予定が、投票開始前に「CI本買いました!」って写真付きで社内SNSにアップする人が続出したために、"Continuous Delivery"を読むことになったとのこと。

一章毎の輪講形式。週一回ぐらい。3回目からカフェテリアでビール飲みながらに移行。実業務との関わりなどを絡めて行ったので上手くいっている。

「(このような活動を)社外に発信することで、社内のコミュニケーションが良くなった」とのこと。

加藤さん@mixi : 「mixi における Jenkins の運用について」

mixiでの実例。単純な繰り返し作業を無くすチームというのが存在するとのこと。これはいいチーム。
JenkinsのMasterは3台

  1. iOS: Build + インストール用に .plist 作成
  2. Android: Build Test + Gerrit
  3. "mixi"という名のテスト環境: コードをチェックアウト& テスト
  • テスト結果をTAP::Harness::JUnitを使って、JUnit形式整形⇒Jenkinsで表示
  • Code Metricsは、Perl::Metrics::Liteや、Devel::Cover::Report::Clover

と書いては見たものの、Perlモジュールなんてわからねぇ...。

"try" Job:パラメタライズドビルドにブランチURLを渡してフィーチャーブランチをテスト。しばらく前に似たような要求があったのでその時に知ってればよかったな。最初にチェックアウトして、終わったら忘れる。ブランチであることが確定していたら、svn switchでもイケるかも。
ブランチを作る?作らない?:Web系開発のトレンドでは、ブランチを作らず、メインラインに直接コミットして、コンフィグ変更で実行できるようにするのが主流になりつつあるらしい。

メインラインにコミットして、コンフィグ変更で実行できるようにしている。これのメリットは、A/Bテストがやりやすいこと。
test is dead:正しい作り方も大事だけど、意味のあるものを作るのが大事。テストがこけているどうのこうの小さいところに拘らず、製品を作ってるんだっていう、もっと高い意識を持つのが重要。

LT

Smart Jenkins on Ruby

東大笹田研究室のコ 文婷さん、胡 益さん。節電のためにビルドマシンを24時間つけておくことができなくなったため、夜中にテストするように。Slaveマシンの自動On/Off。

RubyでJenkinsのプラグインが開発できる!

ビアバッシュ

参加費で購入したというピザと、楽天のおごり(!!)の缶ビールで乾杯。
Jenkins特集が掲載される Web+DB PressJenkins実践入門オライリーのJenkins本BeeingGeekが抽選によりプレゼントされました。

まとめ

Keep
  • redmineに引き続きJenkinsの勉強会に参加。今後も開発の基盤に使うシステムに今後も参加する。出来れば年内にどこかで発表できるぐらいのネタを作りたい。引き続き社外でのプレゼンスを上げる努力。
Try
  • 前回のTryを踏まえ、今回はJenkins入れて行ったけど、iProxy有効にした場合に起動してくれなくなった...。要事前確認。