SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
DEPLOY TO LOBI
@handlename
KAYAC Inc.
WHO AM I?
長田洸明(ながたひろあき)
@handlename
2010年新卒入社
Lobiのサーバーサイドエンジニア
INDEX
こんなことをはなします
Lobiとはなんぞや
デプロイの仕組みいまむかし
デプロイするときにやっていること
ABOUT LOBI
Lobiとはなんぞや
LOBI
https://lobi.co/
LOBI
サービスについて
チャットをメインコンテンツとしたSNS
2010年からサービス提供している
iOS/Android/Web版
DAU等は非公開/サーバー数十~百台規模
Amazon Web Service上で稼働
公開グループ数は50万弱
連携アプリは・・・
LOBI
運用・開発チームについて
チームメンバーは40名弱
サーバーサイドエンジニアは10名ほど
全てのサーバーサイドエンジニアにデプロイ権がある
毎日十数回のデプロイが発生
入社から日が浅いメンバー・外部パートナーは除く
細かくデプロイして確認範囲を小さくする方針
デプロイ作業を日常化する→仕組み化される
MEもデプロイしてる
HISTORY OF DEPLOY SYSTEM
デプロイの仕組みいまむかし
HISTORY
2010~git pull
2013~rsync
2015~stretcher
GIT PULL
$ git pull origin master
GIT PULL
git repo -> servers
2010年~
小規模では便利だった
本番サーバーでgit pullするだけ
いま何がデプロイされているのかが分かる
GIT PULL
しかし・・・
規模が大きくなるとつらい
巨大な.gitディレクトリ
新規ホストでcloneが終わらない
RSYNC
$ rsync -avn src server:/path/to/dst
RSYNC
deploy server -> servers
2013年~
git pullに耐えられなくなった頃に乗り換え
本番環境に必要なファイルだけrsync
余計なファイルがないのでディスクに余裕
新規ホストのセットアップもつらくない
のちにgnu parallelを使用
Archer使ってた
しかし・・・
更に規模が大きくなるとつらい
デプロイサーバーの帯域が埋まる
デプロイサーバーが死ぬと新規ホストが上がらない
STRETCHER
https://github.com/fujiwara/stretcher
STRETCHER
$ consul watch -type event -name deploy stretcher
2015年~
rsyncに耐えられなくなった頃に乗り換え
consul/serfのイベントを利用したデプロイツール
refs AWS CodeDeploy, mamiya
STRETCHER
daemontools serviceとして
exec setuidgid app 
consul watch  # consulで
-type event  # eventの発火を待つ
-name deploy  # 対象は"deploy"という名前のevent
stretcher # eventが発火したらstretcherを起動
STRETCHER
consul eventでmanifest.ymlのURIが送られる
stretcherはmanifest.ymlを見てデプロイ処理を実行
MANIFEST.YML
デプロイするべきtarballの場所
デプロイ先のパス
デプロイの前処理・後処理
デプロイ成功・失敗時の処理
MANIFEST.YML
src: s3://path/to/tarball
checksum: deea122cf66dd796ee46efb3cacd1e86d6a348af0a5cf5d61b88068f532917f6
dest: /path/to/dest
commands:
pre:
- ...(デプロイの前処理:クリーンアップとか)
post:
- ...(デプロイの後処理:アプリの再起動とか)
success:
- ...(成功時の処理)
failure:
- ...(失敗時の処理)
STRETCHER IN LOBI
manifest.ymlのテンプレートから生成
tarballはS3に保存
アプリの更新もプロビジョニングもstretcherで
前処理でデプロイ操作の通知
後処理でアプリケーションの再起動、など
プロビジョニングにはchefを使用
stretcherにする前はchef serverを使っていた
いまはstretcherでchef-soloを実行
ホスト一台で処理が完結する
AROUND DEPLOY
デプロイするときにやっていること
AROUND DEPLOY
Slack botでデプロイ前チェック・周知
Consul KV Dashboardに状態を記録
Google Calendarにデプロイ履歴を記録
etc.
SLACK BOT
SLACK BOT
nukoというbotがいる
CI通過していないと教えてくれる
花金デプロイしようとするとめっちゃ怒る
SLACK BOT
SLACK BOT
CONSUL KV DASHBOARD
https://github.com/fujiwara/consul-kv-dashboard
CONSUL KV DASHBOARD
各ホストのデプロイ状況を一覧
デプロイ処理に失敗したらアラート
CONSUL KV DASHBOARD
GOOGLE CALENDAR
GOOGLE CALENDAR
デプロイ作業時間を予定として記録
いつ誰が何をデプロイしたのかが分かる
GOOGLE CALENDAR
MORE
Rundeckからデプロイ実行
デプロイロック
一台だけデプロイ
Lambda functionのデプロイ
DBスキーマ変更適用
ユニコーンが出たら
etc.
THANK YOU!!
APPENDIX
ファイル更新もchef実行もstretcherで!Lobiをデプロイ
するときにやっていること- KAYAC engineers' blog
RedashとRundeckで安全・安心なサービス運用- KAYAC
engineers' blog
#10 Consulと連携するpull型デプロイツールstretcher -
KAYAC engineers' blog
LobiにおけるConsul活用事例- KAYAC engineers' blog

Weitere ähnliche Inhalte

Ähnlich wie Deploy to Lobi

オールアバウトの DevOpsと リリースフロー
オールアバウトのDevOpsとリリースフローオールアバウトのDevOpsとリリースフロー
オールアバウトの DevOpsと リリースフローKazuto Ohara
 
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れメディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れsugimoto1022
 
OpenStack環境構築支援について
OpenStack環境構築支援についてOpenStack環境構築支援について
OpenStack環境構築支援についてSatoshi Konno
 
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版真一 藤川
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座DIVE INTO CODE Corp.
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 
DevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることDevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることHiro Fukami
 
Nintendo Labo の子育て力
Nintendo Labo の子育て力Nintendo Labo の子育て力
Nintendo Labo の子育て力Masaru Shimbori
 
チームを改善していったら開発と営業が一緒になった件
チームを改善していったら開発と営業が一緒になった件チームを改善していったら開発と営業が一緒になった件
チームを改善していったら開発と営業が一緒になった件Tatsuya Sakai
 
Retty techcafe7 rettydevops
Retty techcafe7 rettydevopsRetty techcafe7 rettydevops
Retty techcafe7 rettydevopsSunggyu Rhie
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Norikazu Yura
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。Sho Yoshida
 
全てのWebディレクターに捧ぐ、 これだけは抑えて欲しい SEO内部要件基礎講座 (前編)
全てのWebディレクターに捧ぐ、これだけは抑えて欲しい SEO内部要件基礎講座(前編)全てのWebディレクターに捧ぐ、これだけは抑えて欲しい SEO内部要件基礎講座(前編)
全てのWebディレクターに捧ぐ、 これだけは抑えて欲しい SEO内部要件基礎講座 (前編)ナイル株式会社
 
#7はじめてのIT勉強会LT
#7はじめてのIT勉強会LT#7はじめてのIT勉強会LT
#7はじめてのIT勉強会LTChinatsu Ozawa
 
html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」robotstart
 
大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末LIFULL Co., Ltd.
 
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜Keita Kawamoto
 
ATTEND biz サービス資料
ATTEND biz サービス資料ATTEND biz サービス資料
ATTEND biz サービス資料bizATTEND
 

Ähnlich wie Deploy to Lobi (20)

オールアバウトの DevOpsと リリースフロー
オールアバウトのDevOpsとリリースフローオールアバウトのDevOpsとリリースフロー
オールアバウトの DevOpsと リリースフロー
 
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れメディアへの寄稿をやってみて〜きっかけと仕事の流れ
メディアへの寄稿をやってみて〜きっかけと仕事の流れ
 
OpenStack環境構築支援について
OpenStack環境構築支援についてOpenStack環境構築支援について
OpenStack環境構築支援について
 
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
【WCAN 2015 spring】ワクワクドリブンエンジニアリング_公開版
 
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
DevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていることDevOps 概要 - インフラ革命、今起きていること
DevOps 概要 - インフラ革命、今起きていること
 
Hadoop~Yahoo! JAPANの活用について~
Hadoop~Yahoo! JAPANの活用について~Hadoop~Yahoo! JAPANの活用について~
Hadoop~Yahoo! JAPANの活用について~
 
Nintendo Labo の子育て力
Nintendo Labo の子育て力Nintendo Labo の子育て力
Nintendo Labo の子育て力
 
チームを改善していったら開発と営業が一緒になった件
チームを改善していったら開発と営業が一緒になった件チームを改善していったら開発と営業が一緒になった件
チームを改善していったら開発と営業が一緒になった件
 
Retty techcafe7 rettydevops
Retty techcafe7 rettydevopsRetty techcafe7 rettydevops
Retty techcafe7 rettydevops
 
Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721Aws発表資料(dac) 20160721
Aws発表資料(dac) 20160721
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
 
全てのWebディレクターに捧ぐ、 これだけは抑えて欲しい SEO内部要件基礎講座 (前編)
全てのWebディレクターに捧ぐ、これだけは抑えて欲しい SEO内部要件基礎講座(前編)全てのWebディレクターに捧ぐ、これだけは抑えて欲しい SEO内部要件基礎講座(前編)
全てのWebディレクターに捧ぐ、 これだけは抑えて欲しい SEO内部要件基礎講座 (前編)
 
#7はじめてのIT勉強会LT
#7はじめてのIT勉強会LT#7はじめてのIT勉強会LT
#7はじめてのIT勉強会LT
 
html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」html5jロボット部 第3回勉強会「ロボット × ビジネス」
html5jロボット部 第3回勉強会「ロボット × ビジネス」
 
大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末大きめレガシープロジェクトのフロント行く末
大きめレガシープロジェクトのフロント行く末
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
 
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜
僕の視点で見たロリポップ!リブランディング〜開始からリリースまで〜
 
ATTEND biz サービス資料
ATTEND biz サービス資料ATTEND biz サービス資料
ATTEND biz サービス資料
 

Deploy to Lobi