第5回 Jenkins勉強会に参加してきた #jenkinsstudy


(写真:ビアバッシュ時の書籍プレゼント抽選にて、何と2/24発売の「Jenkins」日本語翻訳版を頂きました♪)

今回第5回のJenkins勉強会は、場所を楽天株式会社品川シーサイド にて行われました。

追加募集が何度か行われており、多くの参加者数が予想されましたが、それら多数の参加者を楽々収容するスペース!(過去自分が訪れた勉強会で言えば、縦サミもここでしたね)

今回は会場設備準備のために若干開始時刻から遅れていたため、この時間を使って場つなぎ的にアイスブレイクトークが行われてました。

  • 今回はプレゼントがあります。
    • Jenkins本

Jenkins

Jenkins

    • WebDB PRESS今号(川口さんの記事あり)

WEB+DB PRESS Vol.67

WEB+DB PRESS Vol.67

  • 作者: 川口耕介,山本和彦,おにたま,神林飛志,杵渕朋彦,中島聡,清水亮,齋藤正浩,高橋征義,ミック,みやけん,青江崇,須賀秀和,上新卓也,牧大輔,角田直行,はまちや2,大和田純,白土慧,太田昌吾,個々一番,Shawn M Moore,じゅんいち☆かとう,小野修司,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2012/02/24
  • メディア: 大型本
  • 購入: 15人 クリック: 253回
  • この商品を含むブログ (26件) を見る

  • 会場に来られた方々の中での利用言語調査
    • Java(約半分)
    • Ruby 10人ちょっと
    • Perl 2〜3人
    • python 10名 川口さん『ここの場合は特定層に偏っている』
    • PHP 10名
    • .NET 4人
    • C++ 8人
    • Javascript 15人

DEV@cloud Jenkins-as-a-Serviceの舞台裏 -Jenkins-as-a-serviceはどうやって動いているか-


  • Jenkinsマスター
    • マスターは別のJVM
    • なぜ?
      • 隔離
      • モニタリング・診断などが簡単
    • 一台の計算機に多数のマスタを集積
  • Jenkinsマスターのコード
    • Core=OSS Jenkins
      • LTS
      • 独自パッチはほぼ解消した
    • 独自プラグイン
      • ユーザーに使われると困るもの
        • Groovy Console
        • マスター上でビルドが起こらないように
      • ユーザーが設定する必要のないもの
        • メールサーバの設定など
  • Jekinsマスターのデータ
    • $JENKINS_HOMEはEBSに
      • 1テナント1ボリューム
    • サイズの拡張が可能
      • 再マウントの為の短いダウンタイムが必要
    • スナップショット+クローンを活用したい!
  • Chefの使い方の工夫
    • Chefにゼロからスレーブをセットアップさせていると間に合わない
    • 予めセットアップしたやつをAMI化
      • 残りデルタだけを起動時にChefにやってもらう
  • JenkinsとChef/Puppet
    • 敷居が高い側面も:Chef
      • 最初は手で管理
      • ツールの文法を覚えるコストが掛かる
      • でも覚えちゃえばあとは楽
      • 手動はいつまでたっても手間変わらず
      • 最初からChef導入は大変、少しずつ導入を
  • スレーブの割り当ての仕組み
    • Providore
      • ブローカー・サービス
      • Jenkinsの外部
      • jcloudsを使ってEC2 APIと対話
      • 等々
  • プールからの割り当て
    • (図解説あり)
  • EC2からの割り当て
    • (図解説あり)
      • EC2 APIが落ちてもよいようにせよ、という教訓。
  • 初期化と占有
  • スレーブの接続
  • Linuxコンテナ
    • OSレベルの仮想化
      • 中からは完全な独立Linuxシステムのように見える
      • 実は単一カーネルの上で動いている
    • スレーブのリサイクルが高速
      • リセット&リブートはLXCの方が圧倒的に早い
    • EC2からの独立性
      • テナントの隔離や犀環境の利追うのロジックがクラウドAPIに依存しない方が望ましい
  • Linuxコンテナ:ワークスペース
    • LXCホストは複数のテナントのWSが接続
      • LXCゲストは1つしか見えないようになっている
      • Consistent Hashによって出来るだけ同じホストにビルドを割り当てる
    • 仮想化版のHDDカートリッジ
  • Nagiosによるモニタリング
    • jenkins-ci.orgも
    • 拡張可能
    • テキストベースの設定ファイル
    • PagerDutyとの統合
    • サービス間の依存関係の
    • モニタすべきもの
      • ユーザーが見るもの:indexページ
      • JVMヒープ、特に
      • 負荷
      • ディスクスペース
      • スレーブの稼働状況
  • 『一度きり→手作業』vs『繰り返し→自動化』
    • 他のツールとの連携は我々には「いちどきり」ではない
    • エコシステム・パートナー
      • あらかじめ統合を自動化しておく
      • ユーザーは連携を有効化するだけ
  • まとめ
    • 野良Jenkins、増えていませんか?
    • 少しずつシステマティックな管理を導入する
    • この事例が参考になりますように。
    • (お知らせ)川口さん執筆の記事掲載『WEB+DB PRESS Vol.67』2/24に発売!

WEB+DB PRESS Vol.67

WEB+DB PRESS Vol.67

  • 作者: 川口耕介,山本和彦,おにたま,神林飛志,杵渕朋彦,中島聡,清水亮,齋藤正浩,高橋征義,ミック,みやけん,青江崇,須賀秀和,上新卓也,牧大輔,角田直行,はまちや2,大和田純,白土慧,太田昌吾,個々一番,Shawn M Moore,じゅんいち☆かとう,小野修司,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2012/02/24
  • メディア: 大型本
  • 購入: 15人 クリック: 253回
  • この商品を含むブログ (26件) を見る

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

  • 楽天株式会社 早瀬千善さん


  • Continuous Delivery

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))

  • 楽天でのContinuous Delivery読書会について
    • 弊社テクノロジーイベントのイメージ
    • 楽天テクノロジーカンファレンス 2011
      • 大人数/英語(外国人)/自社技術
    • イベント・お祭り
      • カフェテリア/お祭り/無料
  • 弊社で実施している勉強会のご紹介
    • きっかけ→募集→実施→各回の進行
    • 各種イベント
    • 肝心の内容
    • セッションの最後に、ひとつご提案(問いかけ)を。
  • はじまり
    • 昨年、ある日の個人面談
      • 最近の若いひとはどうやって勉強しているのだろうか
      • やって1年前はやってたけど、最近は勉強会やってなかった
    • よしおかさんにネタ相談、社内ソーシャル(Yammer)で問いかけてみる
      • Jolt Awardでは良い本が幾つか挙がっているので、その中から選んで読書会をやってみては?
    • 半日位待ったが、よしおかさん以外からは特に返事が無く、likeのみ。
      • 自分だけ、社外の勉強会に参加することに。
      • 待ってみた
      • 結局4〜4名がlikeを押したのみ
        • 投票機能を使うまでもなく→だらだらと「この本面白そう」とつぶやく
        • 突然、2人「Continuous Delivery買っちゃいました」と写真付で投稿
        • non Japaneseからも「英語でやるのか?」と問い合わせ
      • 2週間後から第1章開始。
      • 1回目:5名で実施
        • 日本語で実施、Yammerには英語で内容を共有。
        • 自己紹介・ポジショントーク(参加理由・目的)
    • この時点での勉強会進行プラン
      • 週1回、1章ずつ。2012年02月ごろには終了
    • 自動化されたプロセス
    • 全関係者の協調
    • カバー絵「The Forth Railway Bridge」
      • Forth Bridge - Wikipedia, the free encyclopedia
      • UK初の「大量生産部品」を使った橋。
      • 橋は継続的なメンテナンスを必要とするが、設計の一部としてメンテナンス計画が策定されている。
    • 第1章「ソフトウェアデリバリにおける問題」
      • 「自動化」がカギである。人間は生産的なことをすべき。
      • 全関係者とのコラボレーションが大切
      • 継続的改善のためのフィードバック
      • たしか、この本も英語ではなく、日本語だったと思う
      • 本の要約だけではなく、実業務との対比等、現場感のある発表が行われ、議論が活発化
      • 誰が言い出したかわすれたが、次回から「飲みながらやろう」という事に。
    • 第2章「コンフィグレーション管理」
      • バージョンコントロール(VC)
      • 依存関係管理
      • Configurationは「環境の差異」
    • 第3章「CI」

 3回目から会場を弊社カフェテリアの一角に移す

      • よしおかさん、ビールとつまみを持ち込み
      • 正直半信半疑
      • 3章の発表者が社外のOpen SourceプロジェクトでJenkinsを使っているというデモを実施。
      • よしおかさん、古い日記を引用し、oracleとかDECとかの話をしだす。
      • Nativeな参加者がいるので、例えばdisciplineって何?という質問も。
    • 第4章「Implementing a Testing Strategy」
      • 4象限によるテストの分類
    • 第5章からの第2部は「deployment pipeline」
      • Continuous Deliveryの核となる概念の説明
      • 基本は、プレゼンターの資料ベースのディスカッション
      • よしおかさんの日記、よた話参考
      • Ch5. "Anatomy of the Deployment Pileline"
    • 第6章「ビルドツール」
    • 12月に入ると、スケジュールが合わなくなってきた
      • 参加者少なかったり、延期したり
    • そんな中、Jenkins実践入門の佐藤さんに、弊社でセミナー実施頂く事に
      • 勉強会実践メンバーが参加
    • 現在、12章(2/20実施)まで終わり、残すところあと3章。
      • 前々回、突然TVの取材が来た。
    • まだ、アサインメントが決まっていない章もあるが、メンバーからの期待は少なくないようで、
      • 次なにやるか決めたい
      • 社外秘の内容はあまり決めてないので、社外に展開してみては?
  • 弊社にて勉強会を開催することをご提案致します。
    • Q1.勉強会に賛同される方、どれ位いらっしゃますか?
      • ほぼ全員が挙手。
    • Q2.勉強会の進め方について
      • A.実践事例発表会
      • B.書籍を1章ずつ読み進める読書会
      • C.プロダクトに関する研究会
      • 回答はどれも同じ程度。

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

  • Jenkinsマスターが3台存在
    • バラバラに動いている
      • 1.iOS向けのもの
        • build and Create .plist
      • 2.Android
        • Build and Test Integratged with Gerrit
        • 非常にモダンな仕組み
      • 3.mixi
        • Test
        • Perlで書かれたサーバ側の部分をテスト
  • Perl shop. 主にmixiではperlを使っている
    • 今も使っている人は少ない
    • Execute Shell(スクリプト実行)
    • Test Results
    • Code Metrics
      • Perl::Metrics::Lite
    • Code Coverage
      • Devel::Cover::Report::Clover
  • XMLを上手く使えば、ちゃんとJenkinsの連携がうまくできる
    • mixi全体のテストグラフ
      • Jenkins構成

      • ikachan
    • テスト実行時間:15〜30分。


    • 1."recent" job
      • コミットした部分に関するテストだけを実行
      • ファイルシステム上で簡単な対応が取れるファイル構成にしている
      • コミット直後にテスト実行させるものがこれ
    • 2. "try"job
      • ブランチのテストを行う
      • 指定された場所を実行
      • 持っていないかもしれない環境等のテスト(ブラウザ別等)
    • 3. The Free (????←一部失念。後程対応します)
      • Jenkinsだけ、物理的なサーバを使っている

LT:Smart Jenkins on Ruby

  • コ 文婷さん、胡 益さん@東大笹田研


  • Smart Jenkins
    • 夜に出来るだけテストを実行したかった。
    • 電力の問題で。
    • スレーブマシンで実行できる時間をOK時間、それ以外をNG時間たい。設定可能
    • NG時間帯に入った場合、シャットダウン
  • Smart Jenkins on Ruby
  • 機能拡張検討中。

ビアバッシュ

LT終了後は、そのままビアバッシュへ突入。時間にすると約30分程度でしょうか。参加者同士で懇親しておりました。

会も終わりに近付いた頃、会の冒頭で述べていた「書籍プレゼント」のコーナーへ。

そしたら何と、私の名前が呼ばれるではありませんか!(; ̄Д ̄) 運良く、書籍「Jenkins」日本語翻訳版を頂く事が出来ました♪

今回の勉強会には川口さん・訳者の玉川竜司さんの御二方がいらっしゃってましたので、又とない機会なのでサインも頂いちゃいました♪ 川口さん、玉川さん、ありがとうございました!

頂いたサインに会の冒頭で配布されていたJenkinsステッカーを併せてパチリしたものをUPしておきます。


これは心して読み進め・実践せねば!(`・ω・´) クワッ
そしてやっぱり、Jenkinsをフル活用出来るような状況を作り出したいものですね。職場も自宅でも。


その他関連: