Submit Search
ポストJenkins時代のCI戦略
•
48 likes
•
17,225 views
Hiroshi Maekawa
Follow
VSハッカソン倶楽部 CI勉強会で発表した資料となります。 https://vshtc.doorkeeper.jp/events/26853
Read less
Read more
1 of 41
Download now
Downloaded 46 times
More Related Content
ポストJenkins時代のCI戦略
1.
ポストJenkins時代の 自動化戦略 Posaune @ Guildworks 2015/07/11(土)
CI勉強会 #vshtc 1
2.
自己紹介 • 前川博志 aka
@Posaune • ギルドワークス株式会社で働いています • 勝手にALMエンジニアを名乗ってます • Microsoft MVP for Visual Studio ALM 2015/07/11(土) CI勉強会 #vshtc 2
3.
ギルドワークス • 現在7名の小さな会社 • 設立一年ちょっとのベンチャー企業 •
ソフトウェアの超上流での見立てから開発、果ては現場改善 までやってます • モットーは「正しいものを正しくつくる!」 2015/07/11(土) CI勉強会 #vshtc 3
4.
諸々お知らせ! from ギルドワークス 2015/07/11(土) CI勉強会
#vshtc 4
5.
Blog やってます! http://blog.guildworks.jp/ 2015/07/11(土) CI勉強会
#vshtc 5
6.
カンファレンス、 やります! 2015/07/11(土) CI勉強会 #vshtc
6
7.
2015/07/11(土) CI勉強会 #vshtc
7
8.
お悩み・相談募集中 • 現場が同しようもないから何とかしたい・・・ • アイデアを形にできない・・・ •
お気軽にご相談を! http://guildworks.jp/about/work/ 2015/07/11(土) CI勉強会 #vshtc 8
9.
お知らせ終わり。 2015/07/11(土) CI勉強会 #vshtc
9
10.
本日のAgenda • Jenkins一択時代の終焉 • ポストJenkins時代のCI •
ギルドワークスのCI事情 2015/07/11(土) CI勉強会 #vshtc 10
11.
Jenkins一択時代の終焉 2015/07/11(土) CI勉強会 #vshtc
11
12.
Jenkinsのもたらしたもの • 職人さん!ビルドお願いしやす! Jenkinsさんがビルドしといてくれたの使おう • 自動ビルドとかわからないこわい Jenkinsさんならなんとかなる! •
この作業めんどいー。 それJenkinsでできませんか? 2015/07/11(土) CI勉強会 #vshtc 12
13.
Jenkins後の世界 • 自動ビルドの「キャズム」超え • CIを当たり前に 2015/07/11(土)
CI勉強会 #vshtc 13
14.
Jenkins後の世界 • 自動ビルドの「キャズム」超え • CIを当たり前に •
Jenkins職人 2015/07/11(土) CI勉強会 #vshtc 14
15.
Jenkinsの"職人化" • あなたのところのJenkins、みんなメンテできますか? • どんなプラグインが入っているか、管理できてますか? •
新しいJobを追加するとき、誰がやっても同じようなJobを作 ってくれますか? • Jenkinsサーバが煙をあげていても、あなたは有給をとれます か? 2015/07/11(土) CI勉強会 #vshtc 15
16.
Jenkinsがボトルネックに • 高度に専門化されたシェル +
手作業 高度に専門化されたJenkinsジョブ • 結局トラブル時にはJenkins職人が呼ばれる • Jenkinsサーバでエラーが起こると色々終わる • 10年継ぎ足し続けたJenkinsジョブ、ってゾッとしない? 2015/07/11(土) CI勉強会 #vshtc 16
17.
Jenkins以外の選択肢 • ビルドツール・ビルドサポートツールの進化により、 Jenkinsのジョブ相当の物は簡単にスクリプトで書けるよう になった • ローカルのVMが流行るかと思ったらもうそこは
クラウドと コンテナの世界 だった。 2015/07/11(土) CI勉強会 #vshtc 17
18.
Jenkins以外の選択肢 • なら、クラウド上に単純な定形作業だけをしてくれる、ビル ドサーバ群があればいいんじゃね? • そう、
CI as a Service や!! 2015/07/11(土) CI勉強会 #vshtc 18
19.
ポストJenkins時代のCI 2015/07/11(土) CI勉強会 #vshtc
19
20.
CI as a
Service • 文字通り、サービスとしてCI(ビルド)を提供している • Travis CI • Circle CI • drone.io • Wercker • Visual Studio Online 2015/07/11(土) CI勉強会 #vshtc 20
21.
CI as a
Service • だいたい以下のことを行う • あたらしいVMを起動 • VMの環境セットアップ(yum install) • ビルド・テスト環境のセットアップ(bundle install) • ビルド・テスト(rake build ) • 別の環境にデプロイメント(git push heroku master) 2015/07/11(土) CI勉強会 #vshtc 21
22.
設定はこんな感じに machine: environment: XCODE_SCHEME: SwiftLesson test: override:| - mkdir
-p $CIRCLE_TEST_REPORTS/xctest - Xctool -project SwiftLesson.xcodeproj -scheme SwiftLesson -sdk iphonesimulator -reporter junit:$CIRCLE_TEST_REPORTS/xctest/test-result.xml clean test (Circle CIの例) 2015/07/11(土) CI勉強会 #vshtc 22
23.
CI as a
Service のメリット • サーバを用意せずに始められる • 使い捨てのクリーンな環境が保証される • CIサービス上の設定項目はそんなに無いので職人かを防げる • 無料枠がリッチなサービスが多い • 最初の導入ステップが簡単 • 他のサービスとの連携が簡単で、リモート開発との相性◎ 2015/07/11(土) CI勉強会 #vshtc 23
24.
デモ: CircleCIでビルド してみよう! 2015/07/11(土) CI勉強会
#vshtc 24
25.
CI as a
Service のデメリット • 凝ったことをやり始めるとシェル地獄に陥る • gradleやYeoman, rakeなどのビルドツールの活用必須 • 大規模に走らせ始めるとランニングコストがかかる • サービスが止まった時に焦る • ローカルでも動くスクリプトをサービス上でも叩く、とか しとかないと困る 2015/07/11(土) CI勉強会 #vshtc 25
26.
Jenkinsへの影響 • Jenkins自体も、プラグインの固まり方式以外の手段を取り始 めている Jenkins Workflow
Plugin def flow node('master') { git url: 'https://
[email protected]
/hogehoge/workflow-test.git' flow = load 'groovy/flow.groovy' flow.builds() } 2015/07/11(土) CI勉強会 #vshtc 26
27.
ギルドワークスのCI事情 2015/07/11(土) CI勉強会 #vshtc
27
28.
使っているCI Service • Circle
CI • Wercker CI 2015/07/11(土) CI勉強会 #vshtc 28
29.
2015/07/11(土) CI勉強会 #vshtc
29
30.
Why Circle CI? •
Privateの無料利用枠で結構行ける • Linux環境のみならず、iOSのビルドもできる • チャットで結構素早くレスポンスが帰ってくるので安心 • 環境追随もそこそこ速い 2015/07/11(土) CI勉強会 #vshtc 30
31.
Circle CIを用いたiOSビルドパイプライン 2015/07/11(土) CI勉強会
#vshtc 31
32.
2015/07/11(土) CI勉強会 #vshtc
32
33.
Why Wercker CI? •
そこそこ長期間サービス提供しているのに完全無償 • ビルドコンテナの柔軟性が非常に高い 2015/07/11(土) CI勉強会 #vshtc 33
34.
Wercker CIの活用どころ • 他のCIサービスでよく困ること •
yum install texlive-latex おせえええええ!! • gem install nokogiri おせえええええ!! • 環境構築に時間が掛かる • werckerなら困らない 2015/07/11(土) CI勉強会 #vshtc 34
35.
WerckerCIのビルドコンテナ • 背後でdocker or
Vagrant LXCをぶん回しているっぽい • コンテナのビルド結果を定義できる • コンテナそのものをビルドして保存しておいてくれる • 保存したコンテナを自由に使える 2015/07/11(土) CI勉強会 #vshtc 35
36.
ギルドワークスでの活用例 • 書籍自動ビルドサービス • PDFのビルド環境は結構大変、かつ標準コンテナではできな いこと •
calibreなどの、マニアックでそこそこ導入に時間がかかるソ フトウェア入のコンテナを作った • https://github.com/posaunehm/calibre-jp-box 2015/07/11(土) CI勉強会 #vshtc 36
37.
これからのCI 2015/07/11(土) CI勉強会 #vshtc
37
38.
世は正に大CI時代 2015/07/11(土) CI勉強会 #vshtc
38
39.
変えられない潮流 • コンテナ式のDisposableな環境でのビルド・テスト • あるいは、ビルドしたコンテナをそのままクラウドへ •
「ちゃんと動いたものをそのまま本番へ」 2015/07/11(土) CI勉強会 #vshtc 39
40.
それでもビルドは回っている • 「ビルドすること」は目的でなく手段 • ユーザの価値にならないと意味無いですよねー •
世の潮流を見ながら、自分自身の環境にあったビルド環境を 考えましょう • 言うても自家Jenkinsの要望はまだまだ強い 2015/07/11(土) CI勉強会 #vshtc 40
41.
Enjoy, Continuous Integration!! 2015/07/11(土)
CI勉強会 #vshtc 41
Download