28
©2010 CloudBees, Inc. All Rights Reserved ©2010 CloudBees, Inc. All Rights Reserved Jenkins User Conference @ SF Kohsuke Kawaguchi / @kohsukekawa / [email protected] アアアアアア / CloudBees

第六回Jenkins勉強会

Embed Size (px)

DESCRIPTION

第六回の

Citation preview

Page 1: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

©2010 CloudBees, Inc. All Rights Reserved

Jenkins User Conference @ SFKohsuke Kawaguchi / @kohsukekawa / [email protected]アーキテクト / CloudBees

Page 2: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

2©2010 CloudBees, Inc. All Rights Reserved

スポンサーにあの会社が

Page 3: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

3©2010 CloudBees, Inc. All Rights Reserved

来年はあの会社にも !

Page 4: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

4©2010 CloudBees, Inc. All Rights Reserved

Jenkins をカスタマイズする系の話: Salesforce

• 昔:モノリシックなシステム– 200K のテスト、延べ 3000 時間分を 6 時間

で並列実行– 独自開発した CI サーバ

• 今:モジュール化に伴いモジュール別にJenkins を立てる方向へ– うまくいけば独自開発の CI サーバを捨てら

れるかも?– Jenkins のインストールを自動化した

Page 5: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

5©2010 CloudBees, Inc. All Rights Reserved

こんな感じで質問に答えると…

Page 6: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

6©2010 CloudBees, Inc. All Rights Reserved

こんな感じで自分の Jenkins が

Page 7: 第六回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 プラグイン

Page 8: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

8©2010 CloudBees, Inc. All Rights Reserved

Jenkins をカスタマイズする系の話:Intel• 大規模インスタンスの管理– 4000 人の開発者– 50000 ビルド / 日

• 継承と包含をやるプラグインを書いた– 継承:基底ジョブに穴をあけて派生ジョブ

で埋める– 包含:ビルダの設定などを外部化して参照

• オープンソース化されるらしい

Page 9: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

9©2010 CloudBees, Inc. All Rights Reserved

Jenkins をカスタマイズする系の話:Cisco• 社内で Jenkins as a Service を展開

(過去形)• コミットワークフローの自動化• Jenkins にワークフローエンジンをつけ

Page 10: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

10©2010 CloudBees, Inc. All Rights Reserved

プラットフォームとしての Jenkins

プラグインを組み合わせてやりたい事を実現

プラグインを書いてやりたい事を実現

Jenkins 上に新たなサブシステムを載せてやりたい事を実現

Page 11: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

11©2010 CloudBees, Inc. All Rights Reserved

面白いアイディア• 変更されたファイルから実行するテスト

を割り出す– コードカバレッジを利用

• Selenium スクリーンショットをピクセル比較– アルゴリズムには工夫の余地がありそう

Page 12: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

12©2010 CloudBees, Inc. All Rights Reserved

プラグイン開発トーク• 2つも• しかも多くの参加者• 共通テーマ– ドキュメントが少ない

• 何とかしたい

Page 13: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

13©2010 CloudBees, Inc. All Rights Reserved

余興

Page 14: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

14©2010 CloudBees, Inc. All Rights Reserved

余興

Page 15: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

15©2010 CloudBees, Inc. All Rights Reserved

来年はぜひこれも…

Page 16: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

16©2010 CloudBees, Inc. All Rights Reserved

資料など• スライド– http://bit.ly/THAqi5

Page 17: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

©2010 CloudBees, Inc. All Rights Reserved

Jenkow プラグインの紹介Kohsuke Kawaguchi / @kohsukekawa / [email protected]アーキテクト / CloudBees

Page 18: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

18©2010 CloudBees, Inc. All Rights Reserved

問題提起• ジョブ同士の連携• 複数のジョブの実行にロジックを追加す

る– ボトムアップ方式が現行の主流– 全体の見通しが悪い

• 専門のワークフロー言語をつかったら?– そこで BPMN 2.0– OMG 標準

Page 19: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

19©2010 CloudBees, Inc. All Rights Reserved

ワークフローの例• 開始・終了

• ちょっとしたプログラム

• 生身の人間の作業

• Jenkins のジョブを実行

Page 20: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

20©2010 CloudBees, Inc. All Rights Reserved

ワークフローの例• 並列分岐と合流

Page 21: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

21©2010 CloudBees, Inc. All Rights Reserved

ワークフローの例• 条件分岐と合流

Page 22: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

22©2010 CloudBees, Inc. All Rights Reserved

もっと難しい例• イベントによる分岐

Page 23: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

23©2010 CloudBees, Inc. All Rights Reserved

もっと難しい例• サブルーチン

Page 24: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

24©2010 CloudBees, Inc. All Rights Reserved

Jenkins での使用例• リリースワークフロー

Page 25: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

25©2010 CloudBees, Inc. All Rights Reserved

BPMN の利点• 標準化• 人間を含む作業の記述• グラフィカル– なのに曖昧でない

• ワークフロー編集ツールの存在

Page 26: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

26©2010 CloudBees, Inc. All Rights Reserved

モデル

Jenkins

Activiti Engine

GitサーバEclipse

ワークフロー定義

ワークフロー定義

DB

Activiti Explorer

省略化

Page 27: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

デモ

Page 28: 第六回Jenkins勉強会

©2010 CloudBees, Inc. All Rights Reserved

28©2010 CloudBees, Inc. All Rights Reserved

デモのまとめ• GUI エディタによる編集• Git リポジトリによるワークフロー管理– 複数のサーバでワークフローを共有

• http://bit.ly/QQjYqY