Upload
kohsuke-kawaguchi
View
7.090
Download
2
Embed Size (px)
DESCRIPTION
第六回の
Citation preview
©2010 CloudBees, Inc. All Rights Reserved
©2010 CloudBees, Inc. All Rights Reserved
Jenkins User Conference @ SFKohsuke Kawaguchi / @kohsukekawa / [email protected]アーキテクト / CloudBees
©2010 CloudBees, Inc. All Rights Reserved
2©2010 CloudBees, Inc. All Rights Reserved
スポンサーにあの会社が
©2010 CloudBees, Inc. All Rights Reserved
3©2010 CloudBees, Inc. All Rights Reserved
来年はあの会社にも !
©2010 CloudBees, Inc. All Rights Reserved
4©2010 CloudBees, Inc. All Rights Reserved
Jenkins をカスタマイズする系の話: Salesforce
• 昔:モノリシックなシステム– 200K のテスト、延べ 3000 時間分を 6 時間
で並列実行– 独自開発した CI サーバ
• 今:モジュール化に伴いモジュール別にJenkins を立てる方向へ– うまくいけば独自開発の CI サーバを捨てら
れるかも?– Jenkins のインストールを自動化した
©2010 CloudBees, Inc. All Rights Reserved
5©2010 CloudBees, Inc. All Rights Reserved
こんな感じで質問に答えると…
©2010 CloudBees, Inc. All Rights Reserved
6©2010 CloudBees, Inc. All Rights Reserved
こんな感じで自分の Jenkins が
©2010 CloudBees, Inc. All Rights Reserved
7©2010 CloudBees, Inc. All Rights Reserved
Jenkins をカスタマイズする系の話: NetFlix
• 社内共通化– Ant+Ivy ベースの共通ビルドツールを開発– ビルドが RPM 化– RPM を集めて AMI を作る「 bakery 」– AMI のグループをデプロイする「 asgard 」
• Groovy スクリプトを活用• 独自プラグインを書いて OSS 化– Job DSL プラグイン– Dyna slave プラグイン
©2010 CloudBees, Inc. All Rights Reserved
8©2010 CloudBees, Inc. All Rights Reserved
Jenkins をカスタマイズする系の話:Intel• 大規模インスタンスの管理– 4000 人の開発者– 50000 ビルド / 日
• 継承と包含をやるプラグインを書いた– 継承:基底ジョブに穴をあけて派生ジョブ
で埋める– 包含:ビルダの設定などを外部化して参照
• オープンソース化されるらしい
©2010 CloudBees, Inc. All Rights Reserved
9©2010 CloudBees, Inc. All Rights Reserved
Jenkins をカスタマイズする系の話:Cisco• 社内で Jenkins as a Service を展開
(過去形)• コミットワークフローの自動化• Jenkins にワークフローエンジンをつけ
た
©2010 CloudBees, Inc. All Rights Reserved
10©2010 CloudBees, Inc. All Rights Reserved
プラットフォームとしての Jenkins
プラグインを組み合わせてやりたい事を実現
プラグインを書いてやりたい事を実現
Jenkins 上に新たなサブシステムを載せてやりたい事を実現
©2010 CloudBees, Inc. All Rights Reserved
11©2010 CloudBees, Inc. All Rights Reserved
面白いアイディア• 変更されたファイルから実行するテスト
を割り出す– コードカバレッジを利用
• Selenium スクリーンショットをピクセル比較– アルゴリズムには工夫の余地がありそう
©2010 CloudBees, Inc. All Rights Reserved
12©2010 CloudBees, Inc. All Rights Reserved
プラグイン開発トーク• 2つも• しかも多くの参加者• 共通テーマ– ドキュメントが少ない
• 何とかしたい
©2010 CloudBees, Inc. All Rights Reserved
13©2010 CloudBees, Inc. All Rights Reserved
余興
©2010 CloudBees, Inc. All Rights Reserved
14©2010 CloudBees, Inc. All Rights Reserved
余興
©2010 CloudBees, Inc. All Rights Reserved
15©2010 CloudBees, Inc. All Rights Reserved
来年はぜひこれも…
©2010 CloudBees, Inc. All Rights Reserved
16©2010 CloudBees, Inc. All Rights Reserved
資料など• スライド– http://bit.ly/THAqi5
©2010 CloudBees, Inc. All Rights Reserved
©2010 CloudBees, Inc. All Rights Reserved
Jenkow プラグインの紹介Kohsuke Kawaguchi / @kohsukekawa / [email protected]アーキテクト / CloudBees
©2010 CloudBees, Inc. All Rights Reserved
18©2010 CloudBees, Inc. All Rights Reserved
問題提起• ジョブ同士の連携• 複数のジョブの実行にロジックを追加す
る– ボトムアップ方式が現行の主流– 全体の見通しが悪い
• 専門のワークフロー言語をつかったら?– そこで BPMN 2.0– OMG 標準
©2010 CloudBees, Inc. All Rights Reserved
19©2010 CloudBees, Inc. All Rights Reserved
ワークフローの例• 開始・終了
• ちょっとしたプログラム
• 生身の人間の作業
• Jenkins のジョブを実行
©2010 CloudBees, Inc. All Rights Reserved
20©2010 CloudBees, Inc. All Rights Reserved
ワークフローの例• 並列分岐と合流
©2010 CloudBees, Inc. All Rights Reserved
21©2010 CloudBees, Inc. All Rights Reserved
ワークフローの例• 条件分岐と合流
©2010 CloudBees, Inc. All Rights Reserved
22©2010 CloudBees, Inc. All Rights Reserved
もっと難しい例• イベントによる分岐
©2010 CloudBees, Inc. All Rights Reserved
23©2010 CloudBees, Inc. All Rights Reserved
もっと難しい例• サブルーチン
©2010 CloudBees, Inc. All Rights Reserved
24©2010 CloudBees, Inc. All Rights Reserved
Jenkins での使用例• リリースワークフロー
©2010 CloudBees, Inc. All Rights Reserved
25©2010 CloudBees, Inc. All Rights Reserved
BPMN の利点• 標準化• 人間を含む作業の記述• グラフィカル– なのに曖昧でない
• ワークフロー編集ツールの存在
©2010 CloudBees, Inc. All Rights Reserved
26©2010 CloudBees, Inc. All Rights Reserved
モデル
Jenkins
Activiti Engine
GitサーバEclipse
ワークフロー定義
ワークフロー定義
DB
Activiti Explorer
省略化
©2010 CloudBees, Inc. All Rights Reserved
デモ
©2010 CloudBees, Inc. All Rights Reserved
28©2010 CloudBees, Inc. All Rights Reserved
デモのまとめ• GUI エディタによる編集• Git リポジトリによるワークフロー管理– 複数のサーバでワークフローを共有
• http://bit.ly/QQjYqY