狠狠撸

狠狠撸Share a Scribd company logo
株式会社nanapi 遠山 晃(@Vexus2)
nanapiにおける
継続的インテグレーション
Agenda
Introduction
Continuous Integration
ChatOps
radicate a Continuous Integration
Introduction
遠山 晃 / @vexus2
サーバサイド開発がメイン
継続的デプロイ、自動化、プラグイン開発が
得意分野
苍补苍补辫颈における継続的インテグレーション
Our Team
http://ignition.co/
Your everyday source for
inspiration and motivation
http://ignition.co/
Your everyday source for
inspiration and motivation
今日はnanapi.jpじゃな
くてIGNITIONのお話
Language
Ruby 2.1.2
Rails 4.1.4
!
(参考) Railsで新規にWebサービスを立ち上げる際にやったことまとめ
http://nanapi.co.jp/blog/2014/04/17/rails_development/
Environment
Agenda
ChatOps
radicate a Continuous Integration
Introduction
Continuous Integration
CI as a Service
GitHosting
Platform as a Service
Communication Tools
development
CI as a Service
GitHosting
Platform as a Service
Communication Tools
PUSH
development
CI as a Service
GitHosting
Platform as a Service
Communication Tools
PUSH
Trigger
development
CI as a Service
GitHosting
Platform as a Service
Communication Tools
PUSH
Trigger
development
Build
CI as a Service
GitHosting
Platform as a Service
Communication Tools
PUSH
Trigger
development
asset sync
Deploy
Build
CI as a Service
GitHosting
Platform as a Service
Communication Tools
PUSH
Trigger
development
asset sync
Deploy
Notification
Build
Build/Test Phase
苍补苍补辫颈における継続的インテグレーション
Travis CIだとスペックに難あり
Travis CI??? 2コア、メモリ3GB
Circle CI??? 8コア、メモリ16GB
Circle CIと比べてビルドが桁違いに遅い
SSH accessでCI環境内に入れる
ドハマり時の調査/デバッグが捗る
なぜCircle CIを使うか?
Auto Testing
Auto Testing
テストが落ちたら
SlackにMentionを付けて通知
余谈
?
Jenkinsの良いところ
拡張、カスタマイズが自由自在
Jenkinsの微妙なところ
オンプレミスなのでサーバ/サービスの維持が必要
各ジョブの設定が秘伝のタレ(=要Jenkins職人)にな
りがち
専属チームがメンテし続けるなら良いかも(個人的結論)
なぜJenkinsを使わないか
苍补苍补辫颈における継続的インテグレーション
http://wercker.com/
テストを実行する仮想環境(Box)が豊富
プライベートリポジトリもビルドできる
β版につき無料
1ビルド最大25分という上限
スモールサービスなら現状の最適解(個人的結論)
闲话休题
Deploy Phase
苍补苍补辫颈における継続的インテグレーション
自動デプロイ
基本的にはMasterブランチへのマージで	
自動デプロイが走る
手動デプロイ
必要に応じてHubot経由の手動デプロイ
Deploy Phase
どんな小さな対応でも	
リリース完了はチームで共有
Agenda
Introduction
Continuous Integration
ChatOps
radicate a Continuous Integration
苍补苍补辫颈における継続的インテグレーション
GitHubが提唱
Hubotを介した共通タスク周りなどのワー
クフローのこと
(参考) ChatOps at GitHub
https://speakerdeck.com/jnewland/chatops-at-github
ChatOpsとは?
nanapiでの使い方の	
一例紹介
大事なことは明示的に通知
大事なことは明示的に通知
大事なことは明示的に通知
Pull Requestやテスト失敗など	
見逃したら困る情報は強制通知
コンテキストをチームで共有
コンテキストをチームで共有
コンテキストをチームで共有
同じコンテキストを共有した上での会話	
チーム全員で同じ情報?状態を共有
うれしいことも共有
うれしいことも共有
うれしいことも共有
楽しいこと、めでたいことはみんなで共有
ネタ系
ネタ系
ネタ系
ネタ系
ネタ系
ネタ系
ネタ系
ネタ系
ネタ要素にも
手を抜かない
nanapi_bot
Publicリポジトリで育ててます	
https://github.com/nanapi/nanapi_bot
Agenda
Introduction
Continuous Integration
ChatOps
radicate a Continuous Integration
継続的インテグレーションを	
チームに根付かせる
片手間で導入する
のは無理
http://bit.ly/Xzpvvd
導入までの道のり
やることは意外と多い
どのツール/サービスを使う?予算は?
コード解析系は?テストはどうする?
デプロイパイプラインはどう構築する?
どのプロセスまでをどの程度まで自動化する?
通知方法はどうする?
通常業務の合間を縫って導入するのは無理
導入までの道のり
やることは意外と多い
どのツール/サービスを使う?予算は?
コード解析系は?テストはどうする?
デプロイパイプラインはどう構築する?
どのプロセスまでをどの程度まで自動化する?
通知方法はどうする?
通常業務の合間を縫って導入するのは無理
チーム内で
コンセンサスを得る
社内のエヴァンジェ
リストになる
http://bit.ly/1onjmaL
上司が説得出来ない / 納得しない
ツールを導入したけどみんなが使ってくれ
ない
結果すぐ使わなくなってしまった
「想定した使い方をみんなしてくれない。
うちのチームには向いていなかった」
新規ツール導入あるある
上司が説得出来ない / 納得しない
ツールを導入したけどみんなが使ってくれ
ない
結果すぐ使わなくなってしまった
「想定した使い方をみんなしてくれない。
うちのチームには向いていなかった」
新規ツール導入あるある
「明日から○○使うからみんな使ってね」
では絶対に根付かない
エヴァンジェリストになる
誰よりもそのツールを使い、	
社内に広げていく
現状に満足せず、	
常に改善し続ける
http://bit.ly/WY27aC
滨骋狈滨罢滨翱狈の场合
チーム内导入予定
チーム内导入予定
Pull Request
チーム内导入予定
Pull Request
Trigger
チーム内导入予定
Pull Request
Trigger
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Create
Staging
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Notification
Create
Staging
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Notification
Trigger
Create
Staging
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Notification
Trigger
Screenshot
Create
Staging
Test
チーム内导入予定
Pull Request
Trigger
Trigger
Notification
Trigger
Screenshot
Create
Staging
Test
※Teatro.ioのAPI開発完了待ち
継続的インテグレーションは
一日にして成らず
http://bit.ly/1lvjxkp
Thank you!

More Related Content

What's hot (16)

PDF
スマホアフ?リ開発者のためのWeb api開発入門の入門
Kenyu Miura
?
PPTX
Angular でもっとAPIファースト?もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
?
PDF
Agile Japan 2013 サテライト<長野>事例研究講演資料
株式会社ガリレオ(开発グループ)
?
PDF
Sansan androidチームが取り組む コードレビューを早くまわす工夫
furusin
?
PDF
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
?
PPTX
Zapier ppap-share
Kyouhei Kitagawa
?
PDF
SAP Inside Track 2018 LT資料「ABAPerが触ってきた SAP Cloud PlatformのABAP環境 」
MasashiOtsuka1
?
PPTX
办颈苍迟辞苍别アプリを箩补惫补蝉肠谤颈辫迟でいじってみよう
Kyouhei Kitagawa
?
PPTX
自社サービス办颈苍迟辞苍别をふんだんに活用したサイボウズの开発フロー
Yuki Okada
?
PPTX
マイクロサーヒ?ス化の障壁
Nyle Inc.(ナイル株式会社)
?
PDF
そうた?Api公開しよう feat. 有志のエンシ?ニア
recotech
?
PPTX
滨辞罢と业务システムをつなぐ驳搁笔颁/搁贰厂罢サービスの开発と运用
DeNA
?
PDF
Laravel Meetup Tokyo Vol.3 告知 LT
Kenichi Mukai
?
PDF
sitTokyo2021 DX ABAPerの最新スキルセットを考えてみた
YusukeHayashida
?
PPTX
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
?
PPTX
笔贬笔开発者が厂肠补濒补に入门して苦しんだ话
Nyle Inc.(ナイル株式会社)
?
スマホアフ?リ開発者のためのWeb api開発入門の入門
Kenyu Miura
?
Angular でもっとAPIファースト?もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
?
Agile Japan 2013 サテライト<長野>事例研究講演資料
株式会社ガリレオ(开発グループ)
?
Sansan androidチームが取り組む コードレビューを早くまわす工夫
furusin
?
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
?
Zapier ppap-share
Kyouhei Kitagawa
?
SAP Inside Track 2018 LT資料「ABAPerが触ってきた SAP Cloud PlatformのABAP環境 」
MasashiOtsuka1
?
办颈苍迟辞苍别アプリを箩补惫补蝉肠谤颈辫迟でいじってみよう
Kyouhei Kitagawa
?
自社サービス办颈苍迟辞苍别をふんだんに活用したサイボウズの开発フロー
Yuki Okada
?
マイクロサーヒ?ス化の障壁
Nyle Inc.(ナイル株式会社)
?
そうた?Api公開しよう feat. 有志のエンシ?ニア
recotech
?
滨辞罢と业务システムをつなぐ驳搁笔颁/搁贰厂罢サービスの开発と运用
DeNA
?
Laravel Meetup Tokyo Vol.3 告知 LT
Kenichi Mukai
?
sitTokyo2021 DX ABAPerの最新スキルセットを考えてみた
YusukeHayashida
?
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
?
笔贬笔开発者が厂肠补濒补に入门して苦しんだ话
Nyle Inc.(ナイル株式会社)
?

Viewers also liked (9)

PPTX
NECT Workshop 1-2 Technology Integration
NECTJ
?
PDF
顿辞肠办别谤と継続的インテグレーション
驰补丑辞辞!デベロッパーネットワーク
?
PDF
nanapi IGNITIONチームの開発フローとその構築
晃 遠山
?
PDF
Experience Design Out of Screen:これからのエクスペリエンスデザイナーの生きる道@UX TOKYO Jam
Akihiko Kodama
?
PDF
UX TOKYO Jam 2014 Closing Keynote
Atsushi HASEGAWA, Ph.D.
?
PDF
CIツールのまとめとSide CI - CIツール勉強会@福岡
Koichiro Sumi
?
PDF
GitHub + Circle CI で幸せになろう
Nobuhiro Ueda
?
PDF
Selenium, Appium, and Robots!
hugs
?
PDF
はじめての CircleCI
Yosuke Mizutani
?
NECT Workshop 1-2 Technology Integration
NECTJ
?
顿辞肠办别谤と継続的インテグレーション
驰补丑辞辞!デベロッパーネットワーク
?
nanapi IGNITIONチームの開発フローとその構築
晃 遠山
?
Experience Design Out of Screen:これからのエクスペリエンスデザイナーの生きる道@UX TOKYO Jam
Akihiko Kodama
?
UX TOKYO Jam 2014 Closing Keynote
Atsushi HASEGAWA, Ph.D.
?
CIツールのまとめとSide CI - CIツール勉強会@福岡
Koichiro Sumi
?
GitHub + Circle CI で幸せになろう
Nobuhiro Ueda
?
Selenium, Appium, and Robots!
hugs
?
はじめての CircleCI
Yosuke Mizutani
?
Ad

Similar to 苍补苍补辫颈における継続的インテグレーション (20)

PDF
骋颈迟贬耻产と罢谤补惫颈蝉颁滨て?回す社内ライフ?ラリの継続的インテク?レーション事例
Ryuji Egashira
?
PDF
ポスト闯别苍办颈苍蝉时代の颁滨戦略
GuildWorks
?
PDF
ポスト闯别苍办颈苍蝉时代の颁滨戦略
Hiroshi Maekawa
?
PDF
ドリコム闯别苍办颈苍蝉勉强会资料
Go Sueyoshi (a.k.a sue445)
?
PPTX
Cibc lecture imagire
Takashi Imagire
?
PDF
「継続的デリバリー」読书会 第3章 継続的デリバリー
Norikazu Hiraki
?
PPTX
CircleCIを勝手に紹介?宣伝 + おまけ [OSC Hokkaido 2015 LT]
OMEGA (@equal_001)
?
PDF
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
Masanori Satoh
?
PDF
Trac Plugin Developement with Jenkins
Takahisa Wada
?
PPTX
CircleCI
Kentaro Wada
?
PPTX
颁滨(継続的インテグレーション)
HIRA
?
PDF
CircleCI 2.0 でビルド時間を大幅に短縮する
Ryo Shibayama
?
PDF
闯别苍办颈苍蝉勉强会
勝信 今井
?
KEY
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Tomoaki Tamura
?
PDF
闯别苍办颈苍蝉で始める継続的デリバリーと実践の道程
Masanori Satoh
?
PPTX
搁别诲尘颈苍别导入しました(公开)
Hidekz Hara
?
PPTX
翱蝉蝉で作成するチーム开発环境
Tadahiro Ishisaka
?
PPTX
闯别苍办颈苍蝉を使った初めての継続的インテグレーション
dcubeio
?
PDF
【Agile Conference tokyo 2010】 Going Agile with Tool
智治 長沢
?
PDF
Redmine Applied for Large Scale
Rakuten Group, Inc.
?
骋颈迟贬耻产と罢谤补惫颈蝉颁滨て?回す社内ライフ?ラリの継続的インテク?レーション事例
Ryuji Egashira
?
ポスト闯别苍办颈苍蝉时代の颁滨戦略
GuildWorks
?
ポスト闯别苍办颈苍蝉时代の颁滨戦略
Hiroshi Maekawa
?
ドリコム闯别苍办颈苍蝉勉强会资料
Go Sueyoshi (a.k.a sue445)
?
Cibc lecture imagire
Takashi Imagire
?
「継続的デリバリー」読书会 第3章 継続的デリバリー
Norikazu Hiraki
?
CircleCIを勝手に紹介?宣伝 + おまけ [OSC Hokkaido 2015 LT]
OMEGA (@equal_001)
?
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
Masanori Satoh
?
Trac Plugin Developement with Jenkins
Takahisa Wada
?
CircleCI
Kentaro Wada
?
颁滨(継続的インテグレーション)
HIRA
?
CircleCI 2.0 でビルド時間を大幅に短縮する
Ryo Shibayama
?
闯别苍办颈苍蝉勉强会
勝信 今井
?
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Tomoaki Tamura
?
闯别苍办颈苍蝉で始める継続的デリバリーと実践の道程
Masanori Satoh
?
搁别诲尘颈苍别导入しました(公开)
Hidekz Hara
?
翱蝉蝉で作成するチーム开発环境
Tadahiro Ishisaka
?
闯别苍办颈苍蝉を使った初めての継続的インテグレーション
dcubeio
?
【Agile Conference tokyo 2010】 Going Agile with Tool
智治 長沢
?
Redmine Applied for Large Scale
Rakuten Group, Inc.
?
Ad

Recently uploaded (9)

PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
色について.pptx .
iPride Co., Ltd.
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?

苍补苍补辫颈における継続的インテグレーション