• Like
  • Save
  • Private Content
nanapiにおける継続的インテグレーション
 

nanapiにおける継続的インテグレーション

on

  • 383 views

nanapi勉強会 vol3 - 【福岡出張編】nanapiを支える技術

nanapi勉強会 vol3 - 【福岡出張編】nanapiを支える技術
http://nanapi.doorkeeper.jp/events/13586

Statistics

Views

Total Views
383
Views on SlideShare
375
Embed Views
8

Actions

Likes
3
Downloads
1
Comments
0

2 Embeds 8

https://twitter.com 7
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    nanapiにおける継続的インテグレーション nanapiにおける継続的インテグレーション Presentation Transcript

    • 株式会社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
    • IGNITIONの場合
    • チーム内導入予定
    • チーム内導入予定 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!