More Related Content
PPTX
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜 PPTX
Azure Arc Enabled Serverの活用 PDF
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21 PDF
Windows Server Container and Windows Subsystem for Linux PDF
Java EE から Quarkus による開発への移行について PPTX
IIJ GIOアカデミー / ハイブリッドクラウド(基礎編) PDF
【VMware】jp developer-summit_2012_final_for_print PDF
17-D-1 Azure開発の極意 ~2011年版~ What's hot
PDF
話題のNode-REDでIoTアプリを作ってみよう PPTX
【検証してみた】いま話題のVMware on IBM Cloud SoftLayer 配布版 PDF
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~ PPTX
IBM Bluemix Node-REDを使って簡単アプリ作成を体験する PDF
Java によるクラウドネイティブ の実現に向けて PDF
Windows Server 2019 で Container を使ってみる PDF
Azure Stack HCI OS で HCI を構築してみた!(手順付) PPTX
20160115nodered design patterns PDF
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境 PDF
サポートスペシャリストが語るXenDesktop / XenApp環境での最速トラブルシューティング PDF
Tech Dojo 02/09 IBM Japan CSM PPTX
PPTX
PDF
【XPagesDy】A-2_コムチュア_20131106_公開用 PDF
DevOpsに求められる様々な技術とその連携の学習方法 PDF
PPTX
N211 sc12 sp1概要_osamut_公開版 PPTX
【JJUG LT 大会】Zulu Open JDK PPTX
Relationship betweenddd and mvc PDF
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01 Viewers also liked
PDF
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012> PPTX
PDF
PDF
KEY
KEY
デブサミ2012 appinventorユーザー会 PDF
10 years devsumi agile and the future PDF
PDF
PDF
実践Android Developer Testing PDF
PDF
PDF
KEY
PDF
PDF
PDF
PDF
PDF
PPT
CouchDB JP Developers Dummit LT Similar to Developer summit continuous deliveryとjenkins
PPTX
Jenkins+Gitによる検証済みマージ(30分版) PDF
PDF
PDF
Trac Plugin Developement with Jenkins PDF
PDF
PDF
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話 PPTX
PPTX
Jenkins User Conference 東京 2015 PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介 PDF
PDF
PDF
DevOps on Azure Kubernetes PDF
Azure DevOps - ALGYAN Oct 2022.pdf PDF
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入 PDF
PDF
雲の上の継続的デリバリー - Cloudforce Japan 2012 PPTX
PDF
More from Kohsuke Kawaguchi
PPTX
PPTX
PPTX
PPTX
Creating a Developer Community PPTX
Large scale automation with jenkins PPTX
How we made jenkins community PPTX
JavaOne 2014: Next Step in Automation: Elastic Build Environment PPTX
Workflow, container, and beyond PPTX
On sharing ideas & sharing code PPTX
Jenkins user conference 2011 PPTX
Jenkins user conference 東京 ODP
PPTX
PPTX
Jenkins User Conference 2013: Literate, multi-branch, mobile and more PPTX
Jenkins State of union 2013 PPTX
PPTX
Jenkins User Conference 2012 San Francisco PPTX
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発 PPTX
PPTX
Jenkins User Conference 2013 Palo Alto: Keynote Recently uploaded
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと... PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2 PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1 Developer summit continuous deliveryとjenkins
- 1.
- 2.
川口耕介って誰?
• Jenkinsクリエイター&プロジェクトリー
ド
• アーキテクト @ CloudBees
• その前は…
– RELAX
– JAXB, JAX-WS, JAXP等 @ Sun
Microsystems
– GlassFish v3のモジュールレイヤの一部など
– FreeTrain
©2010 CloudBees, Inc. All Rights 2
Reserved
- 3.
jenkins-ci.org
• JavaによるCIサーバ/OSS
• 7年位やっている
• 使うのが簡単
• プラグインによる機能拡張
– 現在 450+
• 世界中で広く普及
– インストールベース: 31K+
©2010 CloudBees, Inc. All Rights 3
Reserved
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
クラウド・仮想計算機
• VMWare, Xen,KVM, …
• EC2, Rackspace
• 見かけのマシン数はどんどん増える
• シングルシステムイメージの恩恵は受け
られない
©2010 CloudBees, Inc. All Rights 9
Reserved
- 10.
聖徳太子も七台まで
©2010 CloudBees, Inc. All Rights 10
Reserved
- 11.
- 12.
クラウド・仮想計算機
• VMは計算機をスライスするだけではな
い
• プロビジョニングのリアルタイム化・自
動化
– テンポラリ計算機
• テスト実行毎に独立したクローンを用意
– QAからプロダクションに再配備の必要なし
©2010 CloudBees, Inc. All Rights 12
Reserved
- 13.
デプロイメントモデルへの影響
ロードバラン
サ
App v7
Building Cloud Tools for NetFlix: http://www.slideshare.net/joesondow/building-cloudtoolsfornetflix-9419504
©2010 CloudBees, Inc. All Rights 13
Reserved
- 14.
デプロイメントモデルへの影響
ロードバラン
サ
App v7 App v8
©2010 CloudBees, Inc. All Rights 14
Reserved
- 15.
デプロイメントモデルへの影響
ロードバラン
サ
App v7 App v8
©2010 CloudBees, Inc. All Rights 15
Reserved
- 16.
デプロイメントモデルへの影響
ロードバラン
サ
App v7 App v8
©2010 CloudBees, Inc. All Rights 16
Reserved
- 17.
デプロイメントモデルへの影響
ロードバラン
サ
App v7 App v8
©2010 CloudBees, Inc. All Rights 17
Reserved
- 18.
デプロイメントモデルへの影響
ロードバラン
サ
App v7
©2010 CloudBees, Inc. All Rights 18
Reserved
- 19.
- 20.
- 21.
あらゆる階層でテストの並列実行
• 複数スレッドで
–拙作 parallel-junit
– TestNGとか
• 複数プロセスで
– 拙作 Maven JUnit plugin
– Maven Surefire
• 複数マシンで
– マトリックスプロジェクト
©2010 CloudBees, Inc. All Rights 21
Reserved
- 22.
クラウド・仮想計算機:再び
• 自動化への更なる拍車
–EC2 → RightScale
– Chef, Puppet
• ミドルウェア・ツールなどのインストー
ルも非対話的に
– 複雑な自動化がより簡単になる
©2010 CloudBees, Inc. All Rights 22
Reserved
- 23.
開発ツールの自動化の進展
• 非対話的ビルド
–Visual Studio → MSBuild
• 実行結果を機械可読にする
– CVS → Subversion
– テストレポート
• 今や対話モードonlyなど考えられない
©2010 CloudBees, Inc. All Rights 23
Reserved
- 24.
開発ツールの自動化は今後も続く
• インストールの自動化
• 実行経過の機械可読化
– 構造化・多層化
[INFO] ------------------------------------------------------------------------
[INFO] Building Test harness for Jenkins and plugins 1.406-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ jenkins-test-harness ---
[INFO] Deleting /home/kohsuke/ws/jenkins/jenkins/test/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.0:enforce (default) @ jenkins-test-harness ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.0:display-info (default) @ jenkins-test-harness ---
[INFO] Maven Version: 3.0.1
[INFO] JDK Version: 1.6.0_20 normalized as: 1.6.0-20
[INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: 2.6.32-31-generic
[INFO]
[INFO] --- maven-remote-resources-plugin:1.0:process (default) @ jenkins-test-harness ---
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ jenkins-test-harness ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 12 resources
[INFO]
[INFO] --- gmaven-plugin:1.0-rc-5-patch-2:execute (preset-packager) @ jenkins-test-harness ---
[INFO]
[INFO] --- maven-stapler-plugin:1.15:apt-compile (default-apt-compile) @ jenkins-test-harness ---
[INFO] Compiling 46 source files to /home/kohsuke/ws/jenkins/jenkins/test/target/classes
Note: Generating org/jvnet/hudson/test/ExtractChangeLogParser/FileInZip.javadoc
Note: Generating org/jvnet/hudson/test/ExtractChangeLogParser/ExtractChangeLogEntry.javadoc
Note: Generating org/jvnet/hudson/test/ClosureExecuterAction/doIndex.stapler
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
©2010 CloudBees, Inc. All Rights 24
Reserved
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
開発環境をとりまく大きな流れ
• 過剰ともいえる計算能力
–物理的制約・コストモデルから並列化へ
• 色々な人のおかげで自動化が簡単に
– 計算機群、計算機、OS、ミドルウェア、ツー
ル
– クラウドで、VMで、SaaSで
• 執事が必要
– 多くのサービスと潤沢な計算機を指揮する執
事が
©2010 CloudBees, Inc. All Rights 30
Reserved
- 31.
- 32.
- 33.
- 34.
CIのジレンマ
• CIでローカルの仕事がサーバに移った?
–コミットをしないとJenkinsにテストしても
らえない
– でもコミットが壊れていたらみんなに迷惑
が掛かる
– サーバでテストしたいのにローカルでテス
トする羽目に
©2010 CloudBees, Inc. All Rights 34
Reserved
- 35.
- 36.
- 37.
- 38.
利点
• 間違いをしても他人に影響しない
–気軽にコミットできる
• テストはサーバで走る
– 大規模なテストや環境依存のテストも
• テストは非同期に走る
– 満足する変更をしたら、すぐ次の作業へ
– テスト実行待ち時間なし
©2010 CloudBees, Inc. All Rights 38
Reserved
- 39.
- 40.
- 41.
- 42.
要するに…
ビルドができた
ら
どこかで動かそ
う というこ
と
©2010 CloudBees, Inc. All Rights 42
Reserved
- 43.
デプロイされる前に検証
• コンパイルが通った ≠デプロイしてもよ
い
• そこでパイプライン
– 徐々に大掛かりなテストを実行
– 失敗したらそこでストップ
– ふるいに掛けて無駄なテストをしない
Unit
Build Int. Test Staging UAT
Test
©2010 CloudBees, Inc. All Rights 43
Reserved
- 44.
- 45.
流れ
時間
ビルド ビルド ビルド ビルド ビルド ビルド
結合テスト 結合テスト 結合テスト
デプロ
デプロイ
イ
©2010 CloudBees, Inc. All Rights 45
Reserved
- 46.
- 47.
- 48.
昇進モデルの利点
• 非同期
–並列処理・リトライ可能性
• 枝分かれしたりと柔軟な形
• 安定的
– 昇進条件の詳細の調整が簡単
– チームとチームの境界はデータなので
• トリガの呪縛からの解放
– 契機になるイベントは何でもよい
©2010 CloudBees, Inc. All Rights 48
Reserved
- 49.
追跡可能性 (traceability)
©2010 CloudBees, Inc. All Rights
©2010 CloudBees, Inc. All Rights Reserved
Reserved
- 50.
- 51.
機械による追跡可能性
• システム間に散在する情報を機械で追跡
– Dev: コミットID
– QA: バグID
– QA: テストの実行記録
– Op: デプロイの記録、現在実行中のバージョ
ン
©2010 CloudBees, Inc. All Rights
©2010 CloudBees, Inc. All Reserved
51
- 52.
- 53.
追跡可能性とパイプライン
時間
1a5d a820 83ad 2f03 02d9 ecda
ビルド ビルド ビルド ビルド ビルド ビルド
1a5d 83ad 2f03
結合テスト 結合テスト 結合テスト
1a5d 2f03
デプロ
デプロイ
イ
©2010 CloudBees, Inc. All Rights 53
Reserved
- 54.
- 55.
- 56.
余談:分散バイナリリポジトリ
• 「コミットと共有の分離」 @分散VCS
• 同じ事がバイナリについても言える
– Maven snapshotをパイプライン的に使う?
– リリースが先か、検証が先か
• 歴史は繰り返す
©2010 CloudBees, Inc. All Rights 56
Reserved
- 57.
自動化による相乗効果
©2010 CloudBees, Inc. All Rights 57
Reserved
- 58.
三種の神器 →新・三種の神器
• ビルドスクリプト • デプロイスクリプト
• バージョン管理 • XaaS
• 自動化されたテスト • クラウド
相乗効果が個々の投資を正当化する
©2010 CloudBees, Inc. All Rights 58
Reserved
- 59.
まとめ
• 計算能力は湯水のように使える ようになる
– とにかく横に並べる
• ソフトウェア開発でも計算能力の新しい
活用の仕方が求められている
• 色々な技術の流れが後押ししている
– クラウド、仮想計算機、分散VCS、自動化
• Jenkinsはこういうニーズを吸収していく
©2010 CloudBees, Inc. All Rights 59
Reserved
- 60.
- 61.
- 62.
計算能力の向上
• 今時のXeon: 1MBL2 cache
– PC-98シリーズ: メインメモリ 640KB
• “Your cell phone has more computing
power than NASA back in 1969”
• PlayStation today has more computing
power than military super computer of
1997
©2010 CloudBees, Inc. All Rights 62
Reserved
- 63.
- 64.
SaaSの台頭
©2010 CloudBees, Inc. All Rights 64
Reserved
- 65.
- 66.
- 67.
水平並列化
• Rackspace 56,000
• 1&1 Internet 70,000
• Facebook 70,000
• Google 1,000,000 (?)
• Microsoft, Amazon,
Yahoo, IBM, …
©2010 CloudBees, Inc. All Rights 67
Reserved
- 68.
- 69.
- 70.
更に一歩進めて
• 長く借りておく
$jenkins dist-fork-lease -l linux –n node1
…
$ jenkins dist-fork –n node1 ./doSomething.sh
…
$ jenkins dist-fork –n node1 ./doMore.sh
• 後片付けはJenkinsに任せる
©2010 CloudBees, Inc. All Rights 70
Reserved
- 71.
- 72.
更に一歩進めて
• Groovyスクリプトにしたり
defjpool = new Jenkins().pool;
[1..10].eachParallel {
jpool.allocateSlave {
// この部分はスレーブ上で実行される
}
}
©2010 CloudBees, Inc. All Rights 72
Reserved
- 73.
あらゆる階層でテストの並列実行
• 複数スレッドで
–拙作 parallel-junit
– TestNGとか
• 複数プロセスで
– 拙作 Maven JUnit plugin
– Maven Surefire
• 複数マシンで
– マトリックスプロジェクト
©2010 CloudBees, Inc. All Rights 73
Reserved
- 74.
- 75.
Selenium?
• Auto pointerのようなもの
• 仮想ディスプレイじゃなくヘッドレスで
• プロセスに埋め込んで
• プロクシ偽装でなくデータにアクセス
• コンソールのリダイレクト
• レイアウトの機械可読化
• Fault injection
©2010 CloudBees, Inc. All Rights 75
Reserved
- 76.
- 77.
分散VCS ♥
• コミットと共有の概念が分離している
– Subversion = 全員と共有 or 誰とも共有しな
い
– これを利用して明示的にブランチ操作をし
なくても検証済みマージができてしまう
• 開発の動機は違うがCIには相性が良い
– 分散・並列の時代にあっている
©2010 CloudBees, Inc. All Rights 77
Reserved
- 78.
Editor's Notes
- #5 風呂敷を広げて、どうしてCIが一過性のブームではなくて本質的なものなのかを説明したい。
- #7 10000もスレッドがあったら今までの使い方では使い切れないしかも値段は安くなっている。性能比ではなおさら。
- #8 付加価値の高い商売をしないと
- #10 「計算機の活用」という大きな流れの現れの一つ
- #13 (ゴミ箱)VMのスナップショット・フォークデバッグするために横によけておく
- #21 スローテストの問題とか
- #24 自動化の流れは開発ツールでも。
- #33 各種のサービスをソフトウェア開発に組み込んでいくためには絶好のプラットフォームになっている
- #35 さっき散々サーバを使いこなすことが重要だという話をした。<<スライド>>それはCIが無価値だということではないが、もっと活用できるポテンシャルがあるのにいかせていない
- #44 ふるいにかけて無駄なテストを走らせない
- #59 三種の神器:この組み合わせからvalueを引き出すツールを書いていきたい