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