58
[Confidential] © 2013 Actcat, Inc. 1 CIサービスを3ジャンルに分けて考察。 Test and Delivery, Everything, Specialization β

CIツールのまとめとSide CI - CIツール勉強会@福岡

Embed Size (px)

Citation preview

Page 1: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 1

CIサービスを3ジャンルに分けて考察。 Test and Delivery, Everything, Specialization

β

Page 2: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

CIサービス 3ジャンル

1.  Build,(Test(and(Delivery("  テスト(&(デプロイ専用CI(

"  =>(今回は主にココをまとめました(

2.  Everything("  継続的インテグレーション全てに使える(

3.  Specialization("  一部に特化したCI(

(テスト(&(デプロイ専用を除く) 6

Page 3: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 7

BUILD, TEST AND DELIVERY

Page 4: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery

! ソフトウェアのビルド・テスト・デプロイに特化したCI(SaaS(/(Software(

! CircleCI,(TravisCI,(Wercker,(Drone.ioなど(

! Jenkinsは元々はBuild専用だったが、その名の通り執事のごとく、何でもこなしてくれるようになったので、JenkinsはEverythingジャンルの長にジャンル分け

8

Page 5: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery

ビルド・テスト・デプロイ向けCIを今回の勉強会にあたって(

総まとめしてみました!

9

Page 6: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 10

Page 7: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 11

Page 8: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 12

Page 9: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 13

Page 10: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 14

Page 11: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery

中略

15

Page 12: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 16

Page 13: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery

中略

17

Page 14: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 18

Page 15: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery

続きはwebで!(

http://sideci.hatenablog.com/

entry/2015/03/13/144948

19

Page 16: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery 調査結果

! SaaS型CIサービス(13個(

" CircleCIをはじめ「いわゆるCI系SaaS」(

! OSSのCIツール(7個(

" Drone.io含む(Travis含まず)(

! SaaS型 特化型CIサービス(5個(

" iOS,(Android専用など 20

Page 17: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery TOP10

1.  TravisCI(2.  CODESHIP(

3.  JenkinsCI(4.  CircleCI(5.  Wercker(

6.  Shippable(7.  Drone.io(

8.  TeamCity(

9.  Buildkite(10. MagunumCI

21

Leanstack.ioというサイトによる人気順(

Page 18: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Build, Test and Delivery Pickup

1.  TravisCI(2.  CODESHIP(

3.  JenkinsCI(4.  CircleCI(5.  Wercker(

6.  Shippable(7.  Drone.io(

8.  TeamCity(

9.  Buildkite(10. MagunumCI

22

5個をピックアップ(

Page 19: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

ユーザ数最大、OSS系CIの長、最古参 TravisCI

23

Page 20: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

TravisCIの特徴

! OSSのソフトウェアが半端ない数がTravisCI.orgでBuildされている(

! OSSを軸に発展したため、複数のプログラミング言語のバージョンでBuildするなど、他のCIサービスにはない多機能性(

! バックエンドはLXCではなくVM(

" LXCなどない時代から存在しているため(

" Objective1CのBuildのみMac(OS(X

24

Page 21: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

料金はちょっとお高め

25

Page 22: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

CODESHIP

26

Page 23: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

CODESHIPの特徴

! GitHub,(BitBucketの両対応(

! Build,(Test,(Delivery,(Notification(

" 割りと普通?CIの一般的な感じ(

" SSHでログインしてBuildログを見るなど可(

! パラレル稼働で高速なBuild・Testが可能 27

Page 24: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

料金 無料プランあり。有料は$49/month~

28

Page 25: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

CircleCI

29

Page 26: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

CircleCIの特徴

! GitHubのみ対応(

" BitBucketはサポートしない(

! Build,(Test,(Delivery,(Notification(

" 割りと普通?CIの一般的な感じ(

" SSHでログインしてBuildログを見るなど可(

! パラレル稼働で高速なBuild・Testが可能 ! 内部はLXC。DockerをLXC上で動かすことも可

30

Page 27: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

料金 無料プランあり。有料は$49/month~

31

Page 28: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

人気第五位? Wercker

32

Page 29: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Werckerの特徴

! GitHub,(BitBucketの両対応(

! Build,(Test,(Delivery,(Notification(

" 割りと普通?CIの一般的な感じ(

! Step,(Boxという物をユーザ間で共有しあえるのが最も大きな特徴(

" 「HipChatに通知するStep」などがユーザによって公開されている

33

Page 30: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

料金 ベータ期間中は完全無料と太っ腹

34

Page 31: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

人気第六位? Shippable

35

Page 32: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Shippableの特徴

! GitHub,(BitBucketの両対応(

! Build,(Test,(Delivery,(Notification(

" 割りと普通?CIの一般的な感じ(

" 当初はCircleCIより4倍早い、といたことがLPに記載されていたが、今は記載されていない(

36

Page 33: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

料金 無料プランあり。有料プランも”年額” $12

37

Page 34: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

PaaS(for(Testingは(

CircleCI一択でしょ(

(

僕はキメ顔でそう言った 38

Page 35: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

だってCircleCIが一番金持ち何だもん! と、思ってたら、いつの間にかShippable...

39

0(

2000000(

4000000(

6000000(

8000000(

10000000(

12000000(

CircleCI(

CODESHIP(

Shippable(

Drone.io(

Wercker(

12億円(

調達済

Page 36: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

まじめにユースケース別おすすめ 1/2

! テストがたくさんある・時間がかかる(

" テストのパラレル実行に力を入れているCircleCIがおすすめ。お金さえ払えばどんどん早くなる(

! Docker(Containerをデプロイしたりなどの最先端構成(

" CircleCIが現状最も多機能。CircleCIが無理なら他も無理?(

" (TravisCIを除いて)CI系サービスの初期から真面目にビジネス・開発しているため先行(

40

Page 37: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

まじめにユースケース別おすすめ 2/2

! BitBucket使ってます(/(無料で使いたい(

" Shippableがおすすめ。無料プランもあるし、年額プランも格安(

! CIをオレ色に染めて広めていきたい(

" WerckerのStepやBoxを作って公開していくのがおすすめ。利用料も無料(

! TravisCI以外ではBuild出来ないプロジェクト(

" TravisCIしかないよね!Or(Jenkins 41

Page 38: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 42

EVERYTHING

Page 39: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

なんでも出来る系CIは Jenkins 最強 他の追従を許さない歴史の積み重ね

! Jenkinsをホスティングして使いましょ!(

! さくらのVPSでもAWSでもどこでもOK(ローカルサーバでもOK(

! JenkinsをEnterprise(useでホスティングならCloudBeesをご利用下さい(

" 使ったこと無いので、誰かレポ教えてください!Consumer向けはたぶん無いです

43

Page 40: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Jenkins x etc = CI

! Jenkinsを使った継続的デリバリソフトウェアが結構ありました(

! Jenkins単体でも十分デリバリ出来ますが、設定が面倒だったりする場合にいいかも?(ブログにてリンク紹介)(

! SideCIもJenkinsを使ってテスト&デリバリ用のDocker(ImageのBuildやdeployを行ってます

44

Page 41: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 45

SPECIALIZATION

Page 42: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Specialization

! テストだけがCIじゃない!(

! ソフトウェアを改善する継続的な取り組みのためのソフト、サービスはたくさん(

" Vaddyさんも広義ではCIツールかなと(

" 私たちのSideCIもCIツール(

" RubyだとHoundCIとかも

46

Page 43: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 47

SIDECI

Page 44: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

What is SideCI?

Integration:((

Open(Source(Software(( (+(Docker(( ( (+(GitHub((

>(

Automated(Code(Review(

and((Test(and(Delivery(

48

Page 45: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

How does it works?

49

hook

Page 46: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 50

コードを共有のファイル置き場、(

GitHub に保存すると(

Page 47: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 51

ソース(

コード 解析

SideCIが自動で������解析を開始(

今回の変更により発生した問題点を検出(

Page 48: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 52

SideCI管理画面上で解析結果を確認。(

新たに発生した問題や、継続中の問題を確認可能(

Page 49: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 53

問題のあるコード、箇所、内容、修正方法等を(

SideCI上で一括確認。(例:(Brakemanの実行結果(

Page 50: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

! 問題が検出されたコード(

" User.first(:conditions(=>(“(username(=(#{params[:username]}’”))(

! コードに含まれる問題(

" SQLインジェクション攻撃が可能(

! 表示される解説(

" インジェクション攻撃は脅威度第1位((オープンWebアプリケーションセキュリティプロジェクト2010)(

" データの流出や削除、書き換えが可能(

" 解決策の掲示(Before1>After例)(

54

Page 51: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 55

GitHub上にSideCIがインラインコメント(

プログラムとコラボした開発が出来る(

Page 52: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 56

様々なツールをワンクリックで開発フローに導入、(

継続的にコードを改善していける(

Page 53: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Jenkinsなどを使っている方に朗報!

57

Test(and(Deployの結果画面はこんな感じ(

Page 54: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 58

GitHub上でテストステータスを確認出来るので、(

安心してマージ出来ます(

Page 55: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Features / OpenSourceSoftwares

! Automated(Code(Review(

" RailsBestPractice,(Bundler(outdated,(Brakeman,(Rubocop,(reek(

" PHP_CodeSniffer(" JSHint,(CoffeeLint(

! Test(and(Delivery(" Rspec,(Capistrano,(shell(

59

Page 56: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

Our Customers

GitHub(+(Railsな開発体制のプロジェクトで(

ご利用頂いております(

(

! Active(50(Projects(per(week(

! Over(1000(Comments(per(week(

60

Page 57: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc.

1クリックで ソフトウェア開発を より早くより��品質に

61

Page 58: CIツールのまとめとSide CI - CIツール勉強会@福岡

[Confidential] © 2013 Actcat, Inc. 62

https://www.sideci.com/(