SlideShare a Scribd company logo
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

More Related Content

PDF
チャットサービス運用の舞台裏
PDF
PHPで使うIPv6の実際
PDF
PHPプログラミングのIPv6対応の実際
PDF
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
PDF
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
PDF
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
PDF
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
PDF
LibreOfficeサポートビジネスを1年やってみました
チャットサービス運用の舞台裏
PHPで使うIPv6の実際
PHPプログラミングのIPv6対応の実際
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
LibreOfficeサポートビジネスを1年やってみました

Similar to Deploy to Lobi (20)

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

Deploy to Lobi