More Related Content
Similar to チャットサービス運用の舞台裏 (20)
チャットサービス運用の舞台裏
- 2. 自己紹介
○ 長田洸明 (ながた・ひろあき)
○ KAYAC Inc.
○ サーバーサイドエンジニア
○ https://twitter.com/handlename
○ https://facebook.com/handlename
○ https://github.com/handlename
- 8. 規模
○ APIリクエスト
○ 平均 550 req/sec
○ ピーク 2,000 req/sec
○ クエリ
○ 平均 6,500 qps
○ ピーク 18,000 qps
- 17. 開発フロー - コードレビュー
○ GithubのPull Requestでレビュー
○ ひとり以上のレビューを経なければmasterにマージできない
○ 開発とレビューとバランス
○ レビューがボトルネックにならないようにする
○ 巨大プルリク怖い
- 18. 開発フロー - GitHub Flow
○ releaseブランチがないgitflow
○ developブランチは必要なときだけつくる
○ 完成していなくても(議論のために)PRをつくる
○ masterから作業ブランチを作成
○ 短いスパン/細かい変更内容でリリース
○ 1日に数∼十数回デプロイ
- 19. 開発フロー - CI
○ おなじみのJenkins
○ EC2のスポットインスタンスを利用
○ それなりにスペックがほしいけど安く抑えたい・・・
○ テストの設定/結果はEBSに保存
○ 再起動時にJenkinsのセットアップが完了する
○ Githubとの連携
○ テスト実行中/成功/失敗をアイコン表示
○ テストが通っていないPRはマージ時に警告が出る
- 22. 開発フロー - CI
○ 並列実行して高速化
○ App::Prove::Plugin::MySQLPool
https://metacpan.org/module/
App::Prove::Plugin::MySQLPool
○ c1.xlargeインスタンスで10並列で実行
○ 3500項目 / 所要時間約7分
- 24. 開発フロー - CI
○ カバレッジ85%
○ APIを叩くテストがメイン
○ APIを公開しているので、レスポンスが正しいことは必須
○ モデルのテストは必要最小限
○ テストがリファクタリングの妨げにならないようにする
- 26. デプロイ - git pull
○ 各サーバー上でgit pull
○ 変更があるファイルに気づける(保険)
○ デプロイ前にチェック
git status -s -uno
- 27. デプロイ - parallel
○ parallelコマンドでデプロイ用のコマンドを実行
○ デプロイ処理に手を加えるのが簡単
○ {対象ホスト} で {ある処理} を並列実行
○ よく使う処理はショートカットを用意
- 31. IRCの活用 - cronの結果表示
○ メールでも結果は届くけど…
○ IRCならみんな見ているしその場で議論できる
○ 標準出力をfluentdに投げるスクリプト
+
特定のタグをNoPasteに投げるfluent plugin
- 33. リプレースの歴史 - CVS
○ SVN -> Git
○ git-svnを使っていたので移行コストは低かった
○ 初期は自社サーバーにリモートリポジトリを設置
○ 現在はGitHub
- 34. リプレースの歴史 - O/R Mapper
○ DBIC -> Teng
○ コードが追えるモジュールを使いたかった…
○ 一時期はDBICとTengが共存
- 36. リプレースの歴史 - WAF
○ Catalyst -> Ark + Amon2
○ メインのアプリケーションはArk
○ 自社ソーシャルゲーム等で運用実績あり
○ 長らくGitHub止まりだったが・・・
○ 運用用管理画面はAmon2
○ 当初は小さなサービスだったので開発コストを掛けられなかった
○ シンプルなアプリケーションが書きやすい
○ モデル部分はメインアプリケーションと共有
- 39. リプレースの歴史 - インフラ
○ AWS -> データセンター -> AWS
○ 現在はAWSへの移行期間
○ スケールが簡単
○ APIが充実しているので自動化もできる
- 40. リプレースの歴史 - サービス名
○ Nakamap -> Lobi
○ デザインは現在のものが3つ目
○ 仲間で使おう
○ 女子会で使おう
○ ゲームで使おう <- いまここ
○ ドメインも変わった
○ nakamap.com -> lobi.co
○ APIはどちらのドメインでも使える
- 42. 参考 - GitHub Flow
○ Scott Chacon on the Interwebs
http://scottchacon.com/2011/08/31/github-
flow.html
○ 日本語訳
https://gist.github.com/Gab-km/3705015