Submit Search
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
•
13 likes
•
20,180 views
ikikko
Follow
Seasar Conference 2015 https://event.seasarfoundation.org/sc2015/
Read less
Read more
1 of 37
Download now
Downloaded 21 times
More Related Content
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
1.
2015/09/26 Seasar Conference
2015 Tomonari NAKAMURA 継続的インテグレーションの過去・現在・そして未来 ∼ヌーラボの事例と共に考える∼ https://www.flickr.com/photos/24354425@N03/13148984463/
2.
アジェンダ •自己紹介 •ヌーラボにおけるCIの歴史 •過去 •現在 •未来
3.
自己紹介 •名前:中村知成 ( @ikikko
) •所属 • • ユーザ会 •推しメン:さっしー 月9にエキストラで 登場したみたい
5.
in ヌーラボ •プロジェクトマネージャ •アプリ寄りだけどインフラ面も •Jenkinsやビルド環境の整備
6.
アジェンダ •自己紹介 •ヌーラボにおけるCIの歴史 •過去 •現在 •未来
7.
CIに関する年表
8.
2009年 • cactusmanさんによるHudsonの紹介 http://www.slideshare.net/cactusman/hudsonoss
9.
2010年 •Hudson勉強会の発端
10.
2010年
11.
2011年 http://gihyo.jp/dev/clip/01/orangenews/vol61/0004
12.
•いくどかの勉強会・ユーザカンファレンス 2010 2015年
13.
CIに関する年表
14.
2012年 •CIサーバはあったけど、メンテが 追いついていなかった •ビルドに時間がかかる(1時間近く) • DBスキーマの変更などにより失敗する • テストがこけてても後回しにされて、ま とめて修正されがち
15.
2012年 •チームに参画と同時に仕切り直し • テストがこけたら即座に対応 • 新しいサーバを調達して、ビルド時間短縮 •
CI番長として、ビルドエラーが起きたら担当 者にpushする役割
16.
2013 2014年 •徐々に適用範囲を拡大していく • ステージ・ベータ環境への継続的デリバリ •
必要なタイミングでスレーブを自動起動 • ansible / serverspecでインフラ部分もCI 詳しくは http://www.slideshare.net/ ikikko/nulabaws
17.
2013 2014年 •徐々に適用範囲を拡大していく • ChatOpsを導入して、オペレーションの経 過や結果をより手軽に共有 詳しくは http://www.slideshare.net/ ikikko/devopschat-ops
18.
アジェンダ •自己紹介 •ヌーラボにおけるCIの歴史 •過去 •現在 •未来
19.
現在取り組んでいること •プルリクエストベースCI •ビルド環境のコード化
20.
プルリクエストベースCI •プルリクエストが追加 されて、コードレビュー がしやすくなった •レビューと合わせて、 CIでのビルド結果も判 断材料に含める https://nulab-inc.com/ja/blog/backlog/ backlog-pull-request/
21.
Jenkinsの設定∼ プルリクエスト用の 特別なブランチを指定
22.
プルリクエスト画面
23.
ビルド環境のコード化 1. プルリクエストベースCIの実践 2. ビルドに必要なスレーブ数増加 3.
各スレーブに対して毎回手動設 定は大変 4. ビルド環境をコード化・自動化
24.
ビルド環境のコード化
25.
ビルド環境のコード化
26.
•スレーブ起動時にインストール Jenkins EC2 Pluginの設定
27.
•Dockerコンテナ上でテスト実行 各ジョブごとの設定
28.
•Dockerfileの内容 各ジョブごとの設定
29.
アジェンダ •自己紹介 •ヌーラボにおけるCIの歴史 •過去 •現在 •未来
30.
CI as a
Serviceの普及 •Jenkinsを自前運用していくコスト が高い •設定の複雑化に伴って生まれた、 Jenkins職人の排除
31.
運用コストが高い •Jenkinsでもある程度は対応可能 •EC2 Pluginなどを活用して、必要なと きに手軽にスレーブ構築など •それすらも辛ければ、全部外部サー ビスに頼るという選択肢も
32.
設定の複雑化への対処 •設定のコード化 •Workflow Plugin •DotCi (
GitHub連携のプラグイン ) 画面上から設定するのではなく、.travis.yml や circle.yml のように、コードとして設定を記述する
33.
CIツールの振り返り
34.
ヌーラボでは •今のところ全移行はコストが高そう •がっつりフローを組んでる •自作プラグインを作って運用している • Dockernizeを進めていれば、移行す るときにも無駄にならないはず
35.
一般的には •SaaSも選択肢にはなってきている •適材適所で使い分け •ヌーラボでも、GitHubで公開している ライブラリはTravisを利用 Travisと社内Jenkinsの連携例 https://nulab-inc.com/ja/blog/backlog/ api-v2-functional-test/
36.
アジェンダ •自己紹介 •ヌーラボにおけるCIの歴史 •過去 •現在 •未来
37.
ご清聴ありがとうございました
Download