Submit Search
nanapiにおける継続的インテグレーション
•
42 likes
•
11,689 views
晃 遠山
Follow
nanapi勉強会 vol3 - 【福岡出張編】nanapiを支える技術 http://nanapi.doorkeeper.jp/events/13586
Read less
Read more
1 of 77
Download now
Downloaded 38 times
More Related Content
nanapiにおける継続的インテグレーション
1.
株式会社nanapi 遠山 晃(@Vexus2) nanapiにおける 継続的インテグレーション
2.
Agenda Introduction Continuous Integration ChatOps radicate a
Continuous Integration
3.
Introduction 遠山 晃 /
@vexus2 サーバサイド開発がメイン 継続的デプロイ、自動化、プラグイン開発が 得意分野
5.
Our Team
6.
http://ignition.co/ Your everyday source
for inspiration and motivation
7.
http://ignition.co/ Your everyday source
for inspiration and motivation 今日はnanapi.jpじゃな くてIGNITIONのお話
8.
Language Ruby 2.1.2 Rails 4.1.4 ! (参考)
Railsで新規にWebサービスを立ち上げる際にやったことまとめ http://nanapi.co.jp/blog/2014/04/17/rails_development/ Environment
9.
Agenda ChatOps radicate a Continuous
Integration Introduction Continuous Integration
10.
CI as a
Service GitHosting Platform as a Service Communication Tools development
11.
CI as a
Service GitHosting Platform as a Service Communication Tools PUSH development
12.
CI as a
Service GitHosting Platform as a Service Communication Tools PUSH Trigger development
13.
CI as a
Service GitHosting Platform as a Service Communication Tools PUSH Trigger development Build
14.
CI as a
Service GitHosting Platform as a Service Communication Tools PUSH Trigger development asset sync Deploy Build
15.
CI as a
Service GitHosting Platform as a Service Communication Tools PUSH Trigger development asset sync Deploy Notification Build
16.
Build/Test Phase
18.
Travis CIだとスペックに難あり Travis CI・・・
2コア、メモリ3GB Circle CI・・・ 8コア、メモリ16GB Circle CIと比べてビルドが桁違いに遅い SSH accessでCI環境内に入れる ドハマり時の調査/デバッグが捗る なぜCircle CIを使うか?
19.
Auto Testing
20.
Auto Testing
21.
テストが落ちたら SlackにMentionを付けて通知
22.
余談
23.
?
24.
Jenkinsの良いところ 拡張、カスタマイズが自由自在 Jenkinsの微妙なところ オンプレミスなのでサーバ/サービスの維持が必要 各ジョブの設定が秘伝のタレ(=要Jenkins職人)にな りがち 専属チームがメンテし続けるなら良いかも(個人的結論) なぜJenkinsを使わないか
26.
http://wercker.com/ テストを実行する仮想環境(Box)が豊富 プライベートリポジトリもビルドできる β版につき無料 1ビルド最大25分という上限 スモールサービスなら現状の最適解(個人的結論)
27.
閑話休題
28.
Deploy Phase
30.
自動デプロイ 基本的にはMasterブランチへのマージで 自動デプロイが走る
31.
手動デプロイ 必要に応じてHubot経由の手動デプロイ
32.
Deploy Phase どんな小さな対応でも リリース完了はチームで共有
33.
Agenda Introduction Continuous Integration ChatOps radicate a
Continuous Integration
35.
GitHubが提唱 Hubotを介した共通タスク周りなどのワー クフローのこと (参考) ChatOps at
GitHub https://speakerdeck.com/jnewland/chatops-at-github ChatOpsとは?
36.
nanapiでの使い方の 一例紹介
37.
大事なことは明示的に通知
38.
大事なことは明示的に通知
39.
大事なことは明示的に通知 Pull Requestやテスト失敗など 見逃したら困る情報は強制通知
40.
コンテキストをチームで共有
41.
コンテキストをチームで共有
42.
コンテキストをチームで共有 同じコンテキストを共有した上での会話 チーム全員で同じ情報・状態を共有
43.
うれしいことも共有
44.
うれしいことも共有
45.
うれしいことも共有 楽しいこと、めでたいことはみんなで共有
46.
ネタ系
47.
ネタ系
48.
ネタ系
49.
ネタ系
50.
ネタ系
51.
ネタ系
52.
ネタ系
53.
ネタ系 ネタ要素にも 手を抜かない
54.
nanapi_bot Publicリポジトリで育ててます https://github.com/nanapi/nanapi_bot
55.
Agenda Introduction Continuous Integration ChatOps radicate a
Continuous Integration
56.
継続的インテグレーションを チームに根付かせる
57.
片手間で導入する のは無理 http://bit.ly/Xzpvvd
58.
導入までの道のり やることは意外と多い どのツール/サービスを使う?予算は? コード解析系は?テストはどうする? デプロイパイプラインはどう構築する? どのプロセスまでをどの程度まで自動化する? 通知方法はどうする? 通常業務の合間を縫って導入するのは無理
59.
導入までの道のり やることは意外と多い どのツール/サービスを使う?予算は? コード解析系は?テストはどうする? デプロイパイプラインはどう構築する? どのプロセスまでをどの程度まで自動化する? 通知方法はどうする? 通常業務の合間を縫って導入するのは無理 チーム内で コンセンサスを得る
60.
社内のエヴァンジェ リストになる http://bit.ly/1onjmaL
61.
上司が説得出来ない / 納得しない ツールを導入したけどみんなが使ってくれ ない 結果すぐ使わなくなってしまった 「想定した使い方をみんなしてくれない。 うちのチームには向いていなかった」 新規ツール導入あるある
62.
上司が説得出来ない / 納得しない ツールを導入したけどみんなが使ってくれ ない 結果すぐ使わなくなってしまった 「想定した使い方をみんなしてくれない。 うちのチームには向いていなかった」 新規ツール導入あるある 「明日から○○使うからみんな使ってね」 では絶対に根付かない
63.
エヴァンジェリストになる 誰よりもそのツールを使い、 社内に広げていく
64.
現状に満足せず、 常に改善し続ける http://bit.ly/WY27aC
65.
IGNITIONの場合
66.
チーム内導入予定
67.
チーム内導入予定 Pull Request
68.
チーム内導入予定 Pull Request Trigger
69.
チーム内導入予定 Pull Request Trigger Test
70.
チーム内導入予定 Pull Request Trigger Trigger Test
71.
チーム内導入予定 Pull Request Trigger Trigger Create Staging Test
72.
チーム内導入予定 Pull Request Trigger Trigger Notification Create Staging Test
73.
チーム内導入予定 Pull Request Trigger Trigger Notification Trigger Create Staging Test
74.
チーム内導入予定 Pull Request Trigger Trigger Notification Trigger Screenshot Create Staging Test
75.
チーム内導入予定 Pull Request Trigger Trigger Notification Trigger Screenshot Create Staging Test ※Teatro.ioのAPI開発完了待ち
76.
継続的インテグレーションは 一日にして成らず http://bit.ly/1lvjxkp
77.
Thank you!
Download