jenkins user conference 東京

46
Jenkins User Conference Tokyo, July 29 th 2012 Jenkins ユユユ ユユユユユユユ 2012 川川川川 CloudBees, Inc. Jenkins 川川川川川 @kohsukekawa http://cloudbees.com/ #juc2012 #juc2012_satta #juc2012_S505 #juc2012_S406

Upload: kohsuke-kawaguchi

Post on 15-Jan-2015

7.772 views

Category:

Technology


1 download

DESCRIPTION

2012/7 Jenkinsユーザ・カンファレンス東京での発表です

TRANSCRIPT

Page 1: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Jenkins ユーザ・カンファレンス 2012

川口耕介 CloudBees, Inc.Jenkinsクリエータ

@kohsukekawahttp://cloudbees.com/

#juc2012#juc2012_satta#juc2012_S505#juc2012_S406

Page 2: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

有難うございます!

1016/1300

Page 3: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

運営スタッフの皆さん

• その他の皆さん–法政大学–ボランティアの皆様

中村さん(@ikikko)

佐藤さん(@lino_s)

久川さん(@ryomah)

玉川さん さぼてんさん(@cactusman)

曽我部さん(@ssogabe)

今井さん(@masanobuimai)

Page 4: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

プラチナスポンサー

メディアスポンサー

シルバースポンサー

Page 5: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

普及活動

http://www.flickr.com/photos/nasamarshall/4256459445/

Page 6: Jenkins user conference 東京

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

Page 7: Jenkins user conference 東京

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

チケット総数

解決済みチケット

Page 8: Jenkins user conference 東京

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

マスターの数

Page 9: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Page 10: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

世界中で使われています

Page 11: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

新機能の紹介http://www.flickr.com/photos/randar/3879926596/

Page 12: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Demo

Page 13: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

他にもフロントエンドでは…• フロントエンド周りの現代化– Prototype 1.7, YUI 3– CSSセレクタなどにネイティブ実装を利用

• ページロード時間の改善– gzip圧縮を全ページで on– プラグイン内の画像等のキャッシュの改善– ページ表示に要するリクエストを減らす

• jQuery等ライブラリプラグインの整備• JavaScriptモジュール化

Page 14: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

バックエンドの機能拡張• マルチ構成プロジェクトの改善–#N, #N+1, …の並列ビルド–カスタム作業ディレクトリによる構成間のディレクトリ共有

–動的に値が変化する軸– SCMチェックアウト動作の拡張ポイント化–実行順序 /フィルタリングの拡張ポイント化

Page 15: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

バックエンドの機能拡張• REST APIの改善– APIトークン– JSONのインデント付き出力–「 tree」パラメータによる出力データの選択

• コマンドラインクライアントの改善–通信路の暗号化– SSH公開鍵認証–汎用 sshクライアントによる CLI

Page 16: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

それ以外にも色々な改善• Subversion 1.7 サポート• 40ヶ国語への地域化• ジョブ名への名前規約の強制モード• ANSI カラーコード対応• コアのより一層のプラグイン化• 「ビルド後の処理」の並び替え• Mavenプロジェクトでの任意のビルダ対応• cron文法におけるハッシュのサポート

Page 17: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Ruby によるプラグイン開発• 切り捨てたもの– Java, Maven, Jelly

• ツールによる開発環境の改善–コードのリロード–スケルトン生成–ビルド・リリースのサポート

• 詳しくは柴田さんのセッションへどうぞ

Page 18: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

プラグイン開発者向けの改善• Guiceによる IoCのコアへの取り込み• JUnit4によるテストハーネス• Groovyによる HTML生成–デバッガが使える– IDEによるコード補完が使える

• 拡張ポイントの拡充• Gradle, JRebelのサポート

Page 19: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

昼間の仕事から…

http://www.flickr.com/photos/sushicam/7211787664/

Page 20: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Demo

Page 21: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

BuildHive.cloudbees.com

• タダで使えます• 使ってみて感想を送ってください

Page 22: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Jenkins Enterprise by CloudBees• サポート+企業向け追加プラグイン• 5月に新版をリリースしました–アクティブ /スタンバイ方式による高い可用性–検証済みマージ機能–アップデートセンターを立てて社内プラグインの配布

• CloudBees Free Enterprise Plugins• 詳細は CloudBeesの配布物をどうぞ

Page 23: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

プロセスとプロジェクト運営体制の整備

(ここからはまた OSSの話 )

Page 24: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

法人格の取得• 「 Software in the Public Interest」に加盟– F/OSSプロジェクトを促進する NPO団体– Debian, Drupal, PostgreSQLなど

• SPI経由で–お金、ドメイン名、商標などの資産を持ったり–開発者と知的財産権に関する契約を結んだり

Page 25: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

寄付金集め• jenkins-ci.org/donate• 目標 $5130 をオーバーする $12000が

集まりました!– 日本からも多数ご寄付いただきました

$5130

$12446

Page 26: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

Jenkins CIA プログラム• Jenkinsについてどこかで発表するなら…– Tシャツとステッカーを送ります

• 制覇した町をピン止めした世界地図を作っています

• エージェント募集中

http://bit.ly/x3OvFT

Page 27: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

ちなみにこれが本物

CIA 旧本部ビルロビー @ バージニア州ラングレー

Page 28: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

暫定役員会• SPIにリポートするプロジェクトの意思決

定機関

• 自分 (CloudBees)• Andrew Bayer (Cloudera)• Dean Yu (Yahoo)

Page 29: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

本当の意思決定機関• 隔週ミーティング– IRC 上で開催– 議題・参加は誰でも出来ます– 議事録もオンラインで見られます

http://bit.ly/eXTY3I

Page 30: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

プロジェクト憲章の制定• 不文律の明文化– プロジェクトの文化、仕事の仕方など– 新しい参加者や企業参加者にわかりやすく

• 第三者ライブラリのライセンス

• 参加者の役割• 名前の利用に関するガイドライン

• 優れたプルリクエストの送り方

http://bit.ly/q5GKhE

Page 31: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

開発者ライセンス契約 (CLA)

• プロジェクト憲章の一環でコア開発者向けに CLAの提出を義務付け– Apacheと同じ CLA ・同じ仕組み–コアに追加されるコードの出自とそのライセンスを明文化

– 知的財産権に関わるグレイエリアを小さくして、プロジェクトとユーザーを守ります

Page 32: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

サーバインフラ 及びリリース

http://www.flickr.com/photos/acmace/4410650624/

Page 33: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

色々な団体のお世話に• jenkins-ci.org に必要なサービスを外部委

託• 歴史的な経緯を踏まえ、一つの企業に多くを頼り過ぎないように

Page 34: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

長期サポート (LTS) リリース

通常リリース(毎週)

長期サポートリリース

優良リリースを決める

1.447.2 1.460.1

通常リリースからのバグ修正バックポーティングのみ

1.447.1 1.424.6

Page 35: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

セキュリティ勧告• ウェブアプリ特有のセキュリティ問題が

Jenkinsにも• メーリングリストか RSSフィードで購読– http://jenkins-ci.org/advisories

• 特にインターネット上で Jenkinsを走らせている人向け–社内 LANでも無視しないで

Page 36: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

サーバ管理の OSS 化• *.jenkins-ci.org のシェルアクセスは特

権–この権限がある人の数がツールの導入等の障

壁になっていた• 解法: puppet化+ オープンソース化– http://github.com/jenkinsci/infra-puppet–プル・リクエスト経由で誰でも変更を提案できるように

– 特権ユーザは変更をレビューするだけでよい

Page 37: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

この他のインフラ改善• サーバの監視– http://nagios.jenkins-ci.org/– Pager Duty

• 世界各地に9つのミラー• 自前DNSサーバ (puppet化済 )• Wikiへのキャッシュ導入• サービスの外部委託– JFrogによる Artifactoryの SaaS– CloudBeesによる Jenkinsの SaaS

Page 38: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

今後の展望

Page 39: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

プラグイン開発者を助ける

• 拡張ポイントの拡充• プラグイン開発環境の整備– Wikiの記事の拡充– トレーニング講座を作りたい– サンプルの拡充– ツールにスケルトン生成機能– よくある問題の自動検証

• HTMLのタグずれ、 @Extensionの付け間違い等• 日本のユーザーにもっとプラグイン開発をしてもらうにはどうしたら?

Page 40: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

スイートスポットの拡大• より大規模環境で快適に–マスター間の通信経路の導入• 例:マスターを超えてジョブをトリガ

– 遅延読み込みによる起動時間の改善–プラグイン向けのデータベース接続レイヤ

• 複雑なワークフローへの対応

Page 41: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

スイートスポットの拡大• 導入を簡単に– BuildHiveからプロジェクト作成Wizardをスピンオフ

– 標準添付のプラグインの見直し–プラグインのセットやお勧めの使い方をコ

ミュニティで共有したい

Page 42: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

増え続けるプラグインへ対応• プラグインに関する情報共有–レビュー , インストール数 , …

• お勧めのプラグイン–データマイニング , 検索– ニュースレター

• 言語・ターゲット向けプラグインパック ?– iTunes プレイリストのようなイメージ

Page 43: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

計算機を湯水のように使えるように

• テスト実行の並列化を助けたい• 多数の計算機を跨ぐ作業を簡単にしたい– 負荷テスト、システムテストなど

• それらを支える優れた可視化を提供したい

Page 44: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

まとめ• 色々な取り組みが成果を出しました

• 今後も色々な取り組みが進んでいきます

• フィードバックを送ってください–よければ開発に参加してください

• 今日一日を楽しんでください

Page 45: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012

本日の会場• ここ「さったホール」• 5階 505, 4階 406– 混雑が予想されるので詰めてお座りください

Page 46: Jenkins user conference 東京

Jenkins User Conference Tokyo, July 29th 2012