Shinya’s Daily Report このページをアンテナに追加 RSSフィード

2012/07/29(日)

[][]Jenkins ユーザ・カンファレンス 2012 東京 に参加してきた #juc2012 23:51 Jenkins ユーザ・カンファレンス 2012 東京 に参加してきた #juc2012を含むブックマーク Jenkins ユーザ・カンファレンス 2012 東京 に参加してきた #juc2012のブックマークコメント

f:id:absj31:20120729195522p:image:w1000

(写真:川口さんの基調講演にて姿を現した"ニンジャ"Jenkins、そして…"タモリ"?)


暫く前から開催がささやかれており、参加募集開始と共に爆発的な登録数を記録、何と『1000人』の壁を突破したという恐るべき興味関心を惹いていた【Jenkinsユーザカンファレンス】。

この日ようやく開催の運びとなり、自分も朝イチからガッツリ参加してきました!

開催場所は法政大学市ケ谷キャンパス 外濠校舎@市ヶ谷。この日は連日のうだるような暑さが続いており、市ヶ谷駅から徒歩で校舎に向かったのですがこの時点で汗ダラダラ、だいぶぐったり目w

f:id:absj31:20120729104455j:image:w450f:id:absj31:20120729104735j:image:w450

(※本編とは関係ありませんが、ちょうど時期的にもロンドン五輪開催中であり、法政大学出身者を励ます巨大横断幕があったのでパチリ。この日偶然にも重量挙げの三宅選手が銀メダルを獲ってました!)

f:id:absj31:20120729103902j:image


会場到着。『さったホール』って珍しい名前だな〜と思ってたんですが、人の名前だったんですね。

f:id:absj31:20120729105207j:image

さったホールを部屋の一番後ろから撮った図。広い!収容人員800名超。

f:id:absj31:20120729162507j:image:w900

席にはクリアファイル、ステッカー等々、各種取り揃えられておりました。これは嬉しいですね。

f:id:absj31:20120729110136j:image:w800


ちなみに、今回私は以下のセッションに参戦しました。
・satta-1 : Jenkinsプロジェクト現状報告とこれから (基調講演)
・S406-2 : SIerのJenkins事情 〜CI実践プロジェクト事例から超大規模プロジェクトの活用事例まで〜 (スポンサーセッション:NTTデータ)
・S406-3 : 愛されるJenkins氏になるために (スポンサーセッション:DeNA)
・S505-4 : Jenkins に XFD を追加してみると?
・S505-5 : AWSで実現するSeleniumテスト高速術
・satta-6 : LT大会

11:30を迎え、いよいよ本編開始、川口さんの基調講演です。以下参戦メモ。

satta-1 : Jenkinsプロジェクト現状報告とこれから (基調講演)

f:id:absj31:20120729113254j:image:w900

Jenkinsプロジェクトがこの新しい名前になってから、一年半あまりが経ちました。
本発表では、プロジェクトの現状や最近実装された機能を紹介し、
普及の度合いをはかる数値などを交えつつ、プロジェクトの歩みを振り返ります。

後半では、現在進行中の様々な取り組みや、今後予定されている(もしくは実装していきたい)機能や、
また中長期的に取り組んでいきたい分野、技術の方向性などについてもふれたいと思います。
  • トップバッターをつとめる川口です。
  • 1000人以上の登録、ありがとうございます!
    • 開催時時点で:1016/1300人。
  • 先日誕生日を迎えました&お祝いしてもらいました!
    • その時のケーキがこちら。

f:id:absj31:20120729212020j:image

  • 普及活動
    • プラグインの拡大
    • チケット数の遷移
      • チケット総数に活動が追い着いてない感じ
    • インストール総数
      • 43000台のマスターが長期間活動している。
      • ユーザの中には大企業もそうでない企業も沢山。
      • "忍び"のように、うしろから入ってきて気が付いたら制圧している…!

f:id:absj31:20120729212110p:image:w600

  • 新機能の紹介
    • 目指す設定画面へ短いキー操作でアクセス出来る機能。
      • ページ内へのナビゲーションへもジャンプ可能
    • 適用ボタンを作って、設定内容の保存が出来るようになっている。
    • ビルド職人の境目:ドラッグアンドドロップで順序を変えられる!
      • 点線枠で掴む場所が分かり易く。
    • メニューからセレクトタグ経由でメニュー選択出来るように。

等々

    • プラグイン開発者向けの改善
    • GuiceによるIoCのコアへの取り込み
    • JUnit4によるテストハーネス
    • GroovyによるHTML生成
    • 拡張ポイントの拡充
    • Gradle, JRebelのサポート

    • Jenkins Enterprise by CloudBees
      • サポート+企業向け追加プラグイン
      • 5月に新版リリース
      • 詳しくはCloudBeesの配布物を!

  • プロセスとプロジェクト運営体制の整備(OSSの話)
    • 法人格の取得(SPI経由で)
    • 寄付金集め:目標をオーバーする金額が集まった。日本からも多数寄付有り。
    • Jenkins CIAプログラム
      • 只今エージェント絶賛募集中!

f:id:absj31:20120729120150j:image:w800

      • ちなみに本物のCIAはこちら。
    • 暫定役員
    • 本当の意志決定機関
      • 隔週ミーティング:IRCで開催、議題・参加は誰でも可能、議事録も閲覧可能
    • プロジェクト憲章の制定
    • 開発者ライセンス契約(CLA)
    • 色々な団体のお世話に
      • jenkins-ci.orgに必要なサービスを外部委託
      • 某O社とも色々あったし…
  • スイートスポットの拡大
    • より大規模環境で快適に
    • 複雑なワークフローへの対応
  • 計算機を湯水のように使えるように…

  • まとめ
    • 色々な取り組みが成果を出しました。
    • 今後も色々な取り組みが進んで行きます
    • フィードバックを!良ければ開発にも参加して下さい。
    • 今日一日を、楽しんで下さい!

S406-2 : SIerのJenkins事情 〜C

I実践プロジェクト事例から超大規模プロジェクトの活用事例まで〜 (スポンサーセッションNTTデータ)

f:id:absj31:20120729122938j:image:w800

日本のSIerがJenkinsを普及に努めて3年!社内普及活動の内容を紹介します。
また、小さいけど執事Jenkinsの活躍に支えられながら歩んできたプロジェクトから
超大規模プロジェクトで1000人を超える多くの開発者を助けてきたJenkinsの雄姿を紹介します。
  • 自己紹介
  • アジェンダ
    • 社内展開
      • 目論見
      • 取り組み
    • 事例
      • プロジェクトA
      • プロジェクトK
      • プロジェクトB
    • まとめ

社内展開
  • 目論見
    • 品質向上
      • 自動テストで繰り返し開発の品質を向上させる。
      • 自動化で作業ミスを無くす。
      • 属人性を無くす。
    • コスト削減
      • バグの早期発見で手戻りを最小限にする。
      • 自動化で作業者の手間を減らす。
    • プロジェクト状況の見える化
      • メトリクスを自動で取得する
      • 解析結果、テスト結果をレポート出力する。
  • 取り組み
    • SDワークベンチという社内ブランドとして展開
    • 社内向けの開発環境ツールセットして、既に普及しているSDワークベンチに追加した。

事例:プロジェクトA
  • プロジェクトのエースである大島さん(仮)に聞きました
  • 概要
    • 10年間の長期運用
    • 規模:1.2Mstep
    • 言語:java
    • 開発プロセス:WF
    • リリース頻度:月1回
  • 組織として推進
  • お客様にヒット
  • どのように使った?
    • リリース業務と分けて構築
    • 動作環境の違いに苦労した
      • ソフトウェアの動作環境が異なっていた
      • jenkinsのジョブ単位で利用するJDKAntのバージョンを個別に設定して実行した。

    • テストの自動化範囲の選択
      • Seleniumブラウザテストを自動化
      • 自動化範囲の選択
        • ビジネスのインパクトガ大きな機能
        • それ以外個所の不具合は、次回リリース時で対応
      • お客様が重視するポイントを絞って合意を行った

    • 結果レポートの共有
      • 品質管理チームと結果レポートを共有
        • 品質管理チームが開発LANから切り離されている。
        • Jenkinsのweb画面から直接参照出来ない。
      • レポートのポータビリティが必要

    • 今後の展開は?
      • 自動化範囲の拡大

事例:プロジェクトK
  • 今夏プロジェクトを退く予定の前田さん(仮)に聞きました
  • 概要

    • デプロイ頻度・対象
      • デプロイ先は約20面
        • アプリ毎のテスト環境
        • 性能評価環境など
      • 1面に対して、1日4〜5回
    • 担当者は2名。
  • 速度向上とコスト削減

事例:プロジェクトB
  • 最近Hプロジェクトに移動した指原さん(仮)に聞きました
  • どんなプロジェクト?
  • どのような運用をしたのか?
  • Jenkinsが与えたインパクト
    • ビルド作業の効率化
    • 大多数のマシンへのデプロイを制御
    • 作業待ち時間が大幅に削減
  • ビルド失敗の影響は大きいのでは?
  • 貸出返却について
    • 貸出返却とは
    • 貸出返却の目的とデメリット
    • 貸出返却は必要無い?
    • 3つのポイント
      • 繰り返しリリース
      • 段階的なリリース
      • 貸出返却の撤廃
  • まとめ
    • 案件での使われ方
    • 目論見について
      • ビルドとテスト環境へのデプロイで多く活用されていた。
        • 結合テストからjenkinsを導入
        • テストか今日の面数が多数存在
      • メトリクス自動取得やテストの自動化から導入していた。
        • 長期間の運用案件は既存プロセスが存在
        • ポーたびりてぃがある結果レポート
    • 最後に
      • SIの現状に合うプラクティスを取り入れれば、開発スピードはまだまだ上がる。
      • 目的に合わせてプロジェクトに入れ易い形を模索して行こう。

S406-3 : 愛されるJenkins氏になるために (スポンサーセッションDeNA)

f:id:absj31:20120729133002j:image:w700

Jenkinsによる自動テストや静的検証を導入したけど、うむむ、どうも、メンバーのみんなにあまり役になっている気がしないぞ。
なぜなんだだろう、どうしたらみんなに役に立ってもらえる、みんなが見てくれる、みんなが使ってくれる、
Jenkins氏になれるだろうかという悪戦苦闘の半年を生々しくご紹介します。
  • ゲームで使用されている技術と課題
  • Jenkinsの導入
    • 発端
      • 手動テストの限界
      • 各自の環境でサーバサイドの自動テスト
      • 各自の環境での自動テストの限界
    • Jenkinsの導入
      • とりあえず、自動テストを…
        • 複数ブランチでの並行開発
          • イベント==ブランチ
          • マージされる開発ブランチ→Jenkinsのジョブ対象
          • CIのベストプラクティスが通じない
  • 自動テストの活用の改善
    • git-flowによる¥解決策
    • カスタマイズしたけど…
    • フィットしない…
    • 無理でした…
    • 現実を認める
    • 全ブランチの自動テストをjenkinsで実施
    • iPadをXFDに
      • いつもみんなの目につくところに
    • いけてないStatus monitor plugin
      • iPadでも遠くから分かり易く見えるように修正
    • 直列ジョブ詰まる問題の対応
      • Build-timeout Plugin
    • 誰でも簡単に作れるジョブ
      • ブランチ名を変更すればOK
    • 複数ブランチのテストが並列に実行出来ない問題
      • 歴史的経緯
    • 普通のJenkinsのジョブっぽく作ったバージョン
      • 本番環境への影響からお蔵入り
    • 前述の直列ジョブ詰まる問題

    • 落ちるテストの対処
      • ローカルでは動くのにjenkinsだと動かない
      • 開発が進むと失敗するテストが増える
    • 主な原因
    • 対応策
      • 落ちているテストは一旦無効に
      • テスト毎にスキーマとフィクスちゃを作成

    • アーキテクトUさんによる絶大な改善
      • クラスとテストをテンプレート化し、自動生成
      • 自動テストにperlcriticを組み込み
      • 自動テストにPerl::Metrics::Liteを組み込み

    • 様々な改善の効果
      • XFDによる即座の修正
      • 必ずテストを書く
      • 自分でJenkinsのジョブを作る
      • Jenkinsへの要望の増加
      • ※jenkinsは人ではない。メンタリティ。(なので背景画像のJenkinsも薄くした)
  • 静的検証の活用と改善
    • 最初の改善
      • Perlcritic on Jenkins
      • 見ない&直さない
    • アーキテクトUさんの改善
      • 既存のコードは直さないという割り切り
      • 新規はテストに組み込む
      • 上手く行った!

  • 質疑応答:
    • [Q].最初にテストをdisabledにしてグリーンする、その後は?
    • [Q].既存の不具合は直さない、という割り切り、こわいなーと思う。それで痛い目に合った経験とかは?
    • [Q].XFDにiPadを選択した理由は?
    • [Q].只今執筆中のJenkins本について何か教えてもらえれば…

主に以下の質問が挙がったのですが、内容的に(ピー)入れとかないといけないようなものだったりしてるので(書籍出版に関しては特に)、回答については自主規制とさせて頂きたいと思います。m(_ _)m (笑)



S505-4 : Jenkins に XFD を追加してみると?

Jenkins を使い始めると、もう使っていなかったときのをことを忘れるくらい便利ですよね。
でも、本当に急がしくなると忘れてしまったり、ほったらかしたりしていませんか?
そこで、Extreme Feedback Device の出番です。

XFD は、Jenkins の状態を見て、ビルドが失敗すると、ランプが光る、音を鳴らす、
しゃべるなどのいろいろな方法でチームに知らせます。
この発表では、Arduino を使って XFD を作成する方法と、実際に XFDを導入してみたいくつかのチームに、
どんな影響があったのかを中心にお話ししたいと思います。

こちらは既にスライド資料が多くUPされているため、メモは省いてざっくり流れのみを。

まずは原田騎郎さんによるXFD解説。

XFDの解説及び過去から現在に至るまでの幾つかの歴史について言及した後、XFDの実演デモを実施。Jenkinsでタスクが実行失敗すると…

f:id:absj31:20120729145258j:image:w800

点きました!

f:id:absj31:20120729145339j:image:w400f:id:absj31:20120729145332j:image:w400

『はんだづけ』に関しては、イベントを催した事についても報告が。

f:id:absj31:20120729145603j:image:w900


次いで、XFDを職場に導入した御三方の報告セッション。まずは『湯島道場』ことアルティネット株式会社様より、西郡さんの発表。

XFD導入前(メール)から導入後、または導入してからの問題点や改善点などについて言及しております。


f:id:absj31:20120729232642p:image:w450f:id:absj31:20120729232639p:image:w450

湯島道場道場主様、大活躍の巻。


そして3人目は遠く福岡からいらした高橋さんの発表。0号機から始まり2号機に至るまでの、社内で利用を重ねてきたXFDに関する失敗談・導入効果等について。


最後4人目は川路さん。(こちらはスライドが未UPなので参戦メモで)

f:id:absj31:20120729151340j:image

  • 導入してどうなったか?
    • コミット粒度が小さくなった
    • 一定水準の安心感
    • 環境依存問題の減少
    • チーム以外のメンバーからガヤ増加。

  • 良い点
    • XFDを2チーム間で共有:御前のチームじゃねえのか?疑心暗鬼
  • 悪い点
    • 飲み会中に現場へ強制送還。
    • XFDの置き場所、フラッシュに注意!
  • 今後の改善
  • 参加者様へのメッセージ
    • プロジェクト初期から導入した方が良い。
    • デプロイ自動化:成功した数の積み重ねが自信を生む
    • 勿論途中導入のメリットもあり。
  • 番外編
    • Jenkins+XFDも良いが、人間系チェックもかなり良く出来ている。Twitter眺めているだけでも改善出来たり…。
      • 環境依存問題発生
      • Twitterで晒されて居る事で世間的な目も気になる。
      • 原田さん、最凶すぎる!

最後は原田さんに再度バトンタッチで締め。

  • 何が変わるか
  • 確認作業は実はムダ
  • XFDを作ってみたくなりましたか?
  • 作ったらぜひシェアしてください。

いやぁ、このセッション、普段とは違う切り口で中々に面白かったですね。やはり目に見えてこういう結果が分かるってのは、良いもんですね。(※良い面ばかりでも無さそうだけど…w)



S505-5 : AWSで実現するSeleniumテスト高速術

  • 井上史彰(いのうえふみあき)氏 株式会社シャノン QAマネージャー

f:id:absj31:20120729153844j:image:w800

Seleniumを使ったリグレッションテストをAWS上で行うことで、どのように短時間かつ安定したテスト実行を行なっているか。
また、どのようにスケールできるような構成にしているのかについて紹介します。
  • 自己紹介
  • 仕事は
  • シャノンの自動テストツール
  • Seleniumテストでの様々な課題
    • ゴール?
      • 機能を追求しつつも不具合を最小限に!!
      • POINT:
        • 価値を生み出すことに集中
        • ソフトウェアの規模拡大につれてテスト工数は増加
        • 自動化出来るところはしっかり自動化する
        • 品質向上させるためにユーザー感覚でブラウザを操作するSeleniumは効果的
  • 課題1:
    • テストの定期実行と結果の見える化
    • Jenkinsの導入
      • いつテストが実行されたか分からない
        • テスト実行にはWindowsPCにログインして手動で実行
        • 誰かが使っていると他の人が使えない→取り合いに
      • テストが成功したかわからない
        • テスト結果もPCにログインして結果のレポートを確認する必要があった
  • 課題3:
  • 最後に:
    • 新しく製品の自動テストを作るとしたら?

Seleniumという非常に興味深い、得るものが多い内容だったのですがメモ取りも甘く、時間も押し気味だったので駆け足になってしまっていた部分もあり全てを把握は仕切れませんでした。無念。資料がUPされたら改めて熟読してみたいです。


satta-6 : LT大会

今回は後述する『Togetterまとめ』の作業に追われたりだったりで、正直このLT大会の時はだいぶ体力の限界を迎えておりました(笑)

と言う訳なので、ここは『この写真』という一枚+つぶやきでLTをそれぞれ振り返ってみたいと思います。

LT:書籍執筆における継続的デリバリー

f:id:absj31:20120729163405j:image


LT:英語Jenkinsコミュニティの解説

f:id:absj31:20120729164154j:image


LT:Flash(ActionScript3.0)開発でもJenkinsを導入しよう

f:id:absj31:20120729164812j:image


LT:ふつうのSIerのJenkinsのある暮らし

f:id:absj31:20120729165621j:image


LT:運用でも使えるjenkins

f:id:absj31:20120729170311j:image



と言うわけで11:30からほぼノンストップで駆け抜けてきたJenkinsカンファレンスも17:00過ぎには終了。


個人的には『昼休みが無かった』のと『休憩時間が短い』と言うのが気になった点と言えば点ですが、これは恐らく【18:00には完全撤収】という状況があったための苦渋の選択だったのかな?と想像。1000人近くの参加申請があり、人数だけで言えば混乱を招きかねないんじゃないか、というのはあったのかなと思います。

逆に言うと、それ以外については何ら気になる所は無く、内容・設備共に素晴らしいカンファレンスであったと思います。

Jenkins個別にテーマを向けると、個人ではJenkinsをちょこちょことではありますが使ってる状態からすると、やってる人はかなり深まった・進んだ使い方なり運用方法でJenkinsを使ってるんだな〜、というのを痛切に感じました。Jenkins等を用いた自動化や関連するプラクティス手法については今後避けて通る事の出来ないテーマであり、自分のスキルとしても吸収して行きたいところ。より一層業務や個人学習のテーマと絡めてJenkinsを探求して行こうと思います。


Jenkinsユーザーカンファレンスに関わるスタッフの皆様、講演者の皆様、会場御提供頂いた法政大学の関係者様、そして当日御参加された皆様。ありがとうございました!


イベント関連エントリなど

見つけ次第、順次追加して行きます。


Togetter一覧

今回のJenkinsカンファレンス、参加者が約1000人/ニコ動もある/途中部屋別でセッションが分かれている、という状況から『これはハッシュタグ1つでは(つぶやきをまとめる人が)死ぬな…』と思い、直前ではありますが運営スタッフの方々に非公式ハッシュタグの作成を提案し、当日は公式・非公式ハッシュタグでつぶやきをまとめました。

講演者・運営の方々、そして参加者の皆さんによって非公式のハッシュタグもそれなりに周知出来、つぶやいて頂いたおかげで公式×2、非公式×14の計16個のTogetterまとめを作成する事が出来ました。ありがとうございました!

また、つぶやきまとめにつきましてはおれんじクローバー(TwitterID:@orange_clover)さん、kimukou(TwitterID:@kimukou2628)さんの両名にお手伝いして頂きました。ありがとうございました!


以下、Togetterまとめの一覧です。

公式(ハッシュタグ#juc2012)

非公式:さったホール(収容人員:870名)で行われたセッション一覧
(ハッシュタグ#juc2012 #juc2012_satta)

非公式:S505(収容人員:210名)で行われたセッション一覧
(ハッシュタグ#juc2012 #juc2012_S505)

非公式:S406(収容人員:210名)で行われたセッション一覧
(ハッシュタグ#juc2012 #juc2012_S406)

海外からの登壇者講演のリアルタイム抄訳について

“Continuous Integration Continuous Quality Continuous Delivery”
John Smart (@wakaleo)

- satta-3 : 飛行機を飛ばしながら直す方法教えます:JenkinsとGerritによる継続的デプロイメントの実践
“Continuous Deployment with Jenkins and Gerrit”
R. Tyler Croy (@agentdero) (@jenkinsciの中の人)

- satta-4 : 複雑な多段階ビルドに対処する: 事例紹介
Andrew Bayer (@abayer) Jenkins Governance board メンバー

どのセッションも興味深くはあるが、言葉の壁がなぁ…と悩んでおられた方にとってはこの上ないサポートですね。ありがとうございます!リアルタイム抄訳(を行うと思われる)資料のURLは以下。

リンク元