jenkins user conference 東京
DESCRIPTION
2012/7 Jenkinsユーザ・カンファレンス東京での発表ですTRANSCRIPT
Jenkins User Conference Tokyo, July 29th 2012
Jenkins ユーザ・カンファレンス 2012
川口耕介 CloudBees, Inc.Jenkinsクリエータ
@kohsukekawahttp://cloudbees.com/
#juc2012#juc2012_satta#juc2012_S505#juc2012_S406
Jenkins User Conference Tokyo, July 29th 2012
有難うございます!
1016/1300
Jenkins User Conference Tokyo, July 29th 2012
運営スタッフの皆さん
• その他の皆さん–法政大学–ボランティアの皆様
中村さん(@ikikko)
佐藤さん(@lino_s)
久川さん(@ryomah)
玉川さん さぼてんさん(@cactusman)
曽我部さん(@ssogabe)
今井さん(@masanobuimai)
Jenkins User Conference Tokyo, July 29th 2012
プラチナスポンサー
メディアスポンサー
シルバースポンサー
Jenkins User Conference Tokyo, July 29th 2012
普及活動
http://www.flickr.com/photos/nasamarshall/4256459445/
Jenkins User Conference Tokyo, July 29th 2012
プラグインの拡大
Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-120
100
200
300
400
500
600 535
# of unique plugins
releases/weeknew plugins/week
Jenkins User Conference Tokyo, July 29th 2012
チケット数の変移
Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-120
2000
4000
6000
8000
10000
12000
14000
1600014500
チケット総数
解決済みチケット
Jenkins User Conference Tokyo, July 29th 2012
インストール総数
Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-120
5000
10000
15000
20000
25000
30000
35000
40000
45000
43000
マスターの数
Jenkins User Conference Tokyo, July 29th 2012
Jenkins User Conference Tokyo, July 29th 2012
世界中で使われています
Jenkins User Conference Tokyo, July 29th 2012
新機能の紹介http://www.flickr.com/photos/randar/3879926596/
Jenkins User Conference Tokyo, July 29th 2012
Demo
Jenkins User Conference Tokyo, July 29th 2012
他にもフロントエンドでは…• フロントエンド周りの現代化– Prototype 1.7, YUI 3– CSSセレクタなどにネイティブ実装を利用
• ページロード時間の改善– gzip圧縮を全ページで on– プラグイン内の画像等のキャッシュの改善– ページ表示に要するリクエストを減らす
• jQuery等ライブラリプラグインの整備• JavaScriptモジュール化
Jenkins User Conference Tokyo, July 29th 2012
バックエンドの機能拡張• マルチ構成プロジェクトの改善–#N, #N+1, …の並列ビルド–カスタム作業ディレクトリによる構成間のディレクトリ共有
–動的に値が変化する軸– SCMチェックアウト動作の拡張ポイント化–実行順序 /フィルタリングの拡張ポイント化
Jenkins User Conference Tokyo, July 29th 2012
バックエンドの機能拡張• REST APIの改善– APIトークン– JSONのインデント付き出力–「 tree」パラメータによる出力データの選択
• コマンドラインクライアントの改善–通信路の暗号化– SSH公開鍵認証–汎用 sshクライアントによる CLI
Jenkins User Conference Tokyo, July 29th 2012
それ以外にも色々な改善• Subversion 1.7 サポート• 40ヶ国語への地域化• ジョブ名への名前規約の強制モード• ANSI カラーコード対応• コアのより一層のプラグイン化• 「ビルド後の処理」の並び替え• Mavenプロジェクトでの任意のビルダ対応• cron文法におけるハッシュのサポート
Jenkins User Conference Tokyo, July 29th 2012
Ruby によるプラグイン開発• 切り捨てたもの– Java, Maven, Jelly
• ツールによる開発環境の改善–コードのリロード–スケルトン生成–ビルド・リリースのサポート
• 詳しくは柴田さんのセッションへどうぞ
Jenkins User Conference Tokyo, July 29th 2012
プラグイン開発者向けの改善• Guiceによる IoCのコアへの取り込み• JUnit4によるテストハーネス• Groovyによる HTML生成–デバッガが使える– IDEによるコード補完が使える
• 拡張ポイントの拡充• Gradle, JRebelのサポート
Jenkins User Conference Tokyo, July 29th 2012
昼間の仕事から…
http://www.flickr.com/photos/sushicam/7211787664/
Jenkins User Conference Tokyo, July 29th 2012
Demo
Jenkins User Conference Tokyo, July 29th 2012
BuildHive.cloudbees.com
• タダで使えます• 使ってみて感想を送ってください
Jenkins User Conference Tokyo, July 29th 2012
Jenkins Enterprise by CloudBees• サポート+企業向け追加プラグイン• 5月に新版をリリースしました–アクティブ /スタンバイ方式による高い可用性–検証済みマージ機能–アップデートセンターを立てて社内プラグインの配布
• CloudBees Free Enterprise Plugins• 詳細は CloudBeesの配布物をどうぞ
Jenkins User Conference Tokyo, July 29th 2012
プロセスとプロジェクト運営体制の整備
(ここからはまた OSSの話 )
Jenkins User Conference Tokyo, July 29th 2012
法人格の取得• 「 Software in the Public Interest」に加盟– F/OSSプロジェクトを促進する NPO団体– Debian, Drupal, PostgreSQLなど
• SPI経由で–お金、ドメイン名、商標などの資産を持ったり–開発者と知的財産権に関する契約を結んだり
Jenkins User Conference Tokyo, July 29th 2012
寄付金集め• jenkins-ci.org/donate• 目標 $5130 をオーバーする $12000が
集まりました!– 日本からも多数ご寄付いただきました
$5130
$12446
Jenkins User Conference Tokyo, July 29th 2012
Jenkins CIA プログラム• Jenkinsについてどこかで発表するなら…– Tシャツとステッカーを送ります
• 制覇した町をピン止めした世界地図を作っています
• エージェント募集中
http://bit.ly/x3OvFT
Jenkins User Conference Tokyo, July 29th 2012
ちなみにこれが本物
CIA 旧本部ビルロビー @ バージニア州ラングレー
Jenkins User Conference Tokyo, July 29th 2012
暫定役員会• SPIにリポートするプロジェクトの意思決
定機関
• 自分 (CloudBees)• Andrew Bayer (Cloudera)• Dean Yu (Yahoo)
Jenkins User Conference Tokyo, July 29th 2012
本当の意思決定機関• 隔週ミーティング– IRC 上で開催– 議題・参加は誰でも出来ます– 議事録もオンラインで見られます
http://bit.ly/eXTY3I
Jenkins User Conference Tokyo, July 29th 2012
プロジェクト憲章の制定• 不文律の明文化– プロジェクトの文化、仕事の仕方など– 新しい参加者や企業参加者にわかりやすく
• 第三者ライブラリのライセンス
• 参加者の役割• 名前の利用に関するガイドライン
• 優れたプルリクエストの送り方
http://bit.ly/q5GKhE
Jenkins User Conference Tokyo, July 29th 2012
開発者ライセンス契約 (CLA)
• プロジェクト憲章の一環でコア開発者向けに CLAの提出を義務付け– Apacheと同じ CLA ・同じ仕組み–コアに追加されるコードの出自とそのライセンスを明文化
– 知的財産権に関わるグレイエリアを小さくして、プロジェクトとユーザーを守ります
Jenkins User Conference Tokyo, July 29th 2012
サーバインフラ 及びリリース
http://www.flickr.com/photos/acmace/4410650624/
Jenkins User Conference Tokyo, July 29th 2012
色々な団体のお世話に• jenkins-ci.org に必要なサービスを外部委
託• 歴史的な経緯を踏まえ、一つの企業に多くを頼り過ぎないように
Jenkins User Conference Tokyo, July 29th 2012
長期サポート (LTS) リリース
通常リリース(毎週)
長期サポートリリース
優良リリースを決める
1.447.2 1.460.1
通常リリースからのバグ修正バックポーティングのみ
1.447.1 1.424.6
Jenkins User Conference Tokyo, July 29th 2012
セキュリティ勧告• ウェブアプリ特有のセキュリティ問題が
Jenkinsにも• メーリングリストか RSSフィードで購読– http://jenkins-ci.org/advisories
• 特にインターネット上で Jenkinsを走らせている人向け–社内 LANでも無視しないで
Jenkins User Conference Tokyo, July 29th 2012
サーバ管理の OSS 化• *.jenkins-ci.org のシェルアクセスは特
権–この権限がある人の数がツールの導入等の障
壁になっていた• 解法: puppet化+ オープンソース化– http://github.com/jenkinsci/infra-puppet–プル・リクエスト経由で誰でも変更を提案できるように
– 特権ユーザは変更をレビューするだけでよい
Jenkins User Conference Tokyo, July 29th 2012
この他のインフラ改善• サーバの監視– http://nagios.jenkins-ci.org/– Pager Duty
• 世界各地に9つのミラー• 自前DNSサーバ (puppet化済 )• Wikiへのキャッシュ導入• サービスの外部委託– JFrogによる Artifactoryの SaaS– CloudBeesによる Jenkinsの SaaS
Jenkins User Conference Tokyo, July 29th 2012
今後の展望
Jenkins User Conference Tokyo, July 29th 2012
プラグイン開発者を助ける
• 拡張ポイントの拡充• プラグイン開発環境の整備– Wikiの記事の拡充– トレーニング講座を作りたい– サンプルの拡充– ツールにスケルトン生成機能– よくある問題の自動検証
• HTMLのタグずれ、 @Extensionの付け間違い等• 日本のユーザーにもっとプラグイン開発をしてもらうにはどうしたら?
Jenkins User Conference Tokyo, July 29th 2012
スイートスポットの拡大• より大規模環境で快適に–マスター間の通信経路の導入• 例:マスターを超えてジョブをトリガ
– 遅延読み込みによる起動時間の改善–プラグイン向けのデータベース接続レイヤ
• 複雑なワークフローへの対応
Jenkins User Conference Tokyo, July 29th 2012
スイートスポットの拡大• 導入を簡単に– BuildHiveからプロジェクト作成Wizardをスピンオフ
– 標準添付のプラグインの見直し–プラグインのセットやお勧めの使い方をコ
ミュニティで共有したい
Jenkins User Conference Tokyo, July 29th 2012
増え続けるプラグインへ対応• プラグインに関する情報共有–レビュー , インストール数 , …
• お勧めのプラグイン–データマイニング , 検索– ニュースレター
• 言語・ターゲット向けプラグインパック ?– iTunes プレイリストのようなイメージ
Jenkins User Conference Tokyo, July 29th 2012
計算機を湯水のように使えるように
• テスト実行の並列化を助けたい• 多数の計算機を跨ぐ作業を簡単にしたい– 負荷テスト、システムテストなど
• それらを支える優れた可視化を提供したい
Jenkins User Conference Tokyo, July 29th 2012
まとめ• 色々な取り組みが成果を出しました
• 今後も色々な取り組みが進んでいきます
• フィードバックを送ってください–よければ開発に参加してください
• 今日一日を楽しんでください
Jenkins User Conference Tokyo, July 29th 2012
本日の会場• ここ「さったホール」• 5階 505, 4階 406– 混雑が予想されるので詰めてお座りください
Jenkins User Conference Tokyo, July 29th 2012