Submit Search
Upload
チャットサービス運用の舞台裏
•
5 likes
•
2,022 views
Hiroaki Nagata
Follow
YAPC::Asia 2013 発表資料です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 43
Download now
Download to read offline
Recommended
Deploy to Lobi
Deploy to Lobi
Hiroaki Nagata
PHPで使うIPv6の実際
PHPで使うIPv6の実際
Tetsuji Koyama
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
Tetsuji Koyama
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
Shinji Enoki
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
iCRAFT Corp. (アイクラフト株式会社)
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
leverages_event
LibreOfficeサポートビジネスを1年やってみました
LibreOfficeサポートビジネスを1年やってみました
iCRAFT Corp. (アイクラフト株式会社)
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
Naruhiko Ogasawara
Recommended
Deploy to Lobi
Deploy to Lobi
Hiroaki Nagata
PHPで使うIPv6の実際
PHPで使うIPv6の実際
Tetsuji Koyama
PHPプログラミングのIPv6対応の実際
PHPプログラミングのIPv6対応の実際
Tetsuji Koyama
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
クラウド版も開発が進む LibreOfficeの最新動向と導入事例の紹介
Shinji Enoki
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
iCRAFT Corp. (アイクラフト株式会社)
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
【ITベンチャーを支えるテクノロジー】成長し続けるサービスを支える技術|ランサーズ株式会社
leverages_event
LibreOfficeサポートビジネスを1年やってみました
LibreOfficeサポートビジネスを1年やってみました
iCRAFT Corp. (アイクラフト株式会社)
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
What's LibreOffice Japanese Team / LibreOffice日本語チームってなんだろう?
Naruhiko Ogasawara
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
Hiroaki Nagata
Why Whales Sing: heavy spenders drive virality and retention
Why Whales Sing: heavy spenders drive virality and retention
Jussi Laakkonen
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
Kazuhito Miura
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
ドリコムのインフラCI
ドリコムのインフラCI
Go Sueyoshi (a.k.a sue445)
MySQLと正規形のはなし
MySQLと正規形のはなし
yoku0825
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
とあるイルカの近況報告
とあるイルカの近況報告
yoku0825
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
Kazuhito Miura
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
Kazuhito Miura
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
はじめての CircleCI
はじめての CircleCI
Yosuke Mizutani
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Minoru Yokomichi
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
関東Firefox OS勉強会6th「Firefox OS」
関東Firefox OS勉強会6th「Firefox OS」
Noritada Shimizu
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
More Related Content
Viewers also liked
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
Hiroaki Nagata
Why Whales Sing: heavy spenders drive virality and retention
Why Whales Sing: heavy spenders drive virality and retention
Jussi Laakkonen
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
Kazuhito Miura
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
ドリコムのインフラCI
ドリコムのインフラCI
Go Sueyoshi (a.k.a sue445)
MySQLと正規形のはなし
MySQLと正規形のはなし
yoku0825
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
とあるイルカの近況報告
とあるイルカの近況報告
yoku0825
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
Kazuhito Miura
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
Kazuhito Miura
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
はじめての CircleCI
はじめての CircleCI
Yosuke Mizutani
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Minoru Yokomichi
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Viewers also liked
(18)
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
キーボードをいじろう! @YAPC::Asia 2012 LT-THON
Why Whales Sing: heavy spenders drive virality and retention
Why Whales Sing: heavy spenders drive virality and retention
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
底から見上げるデブ(Dev) 〜俺と執事と自動化と〜
Jenkins with Docker
Jenkins with Docker
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
ドリコムのインフラCI
ドリコムのインフラCI
MySQLと正規形のはなし
MySQLと正規形のはなし
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
とあるイルカの近況報告
とあるイルカの近況報告
PHP7はなぜ速いのか
PHP7はなぜ速いのか
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
10年前「Microsoftの社員だと思って働け!」と教育されて嫌気がさして出てった人から見た「外の世界」の話 #JCCMVP
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
IoTって何が良いの? 〜言うてるオレもわからんわ〜 #kinoko_iot
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
はじめての CircleCI
はじめての CircleCI
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Similar to チャットサービス運用の舞台裏
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
関東Firefox OS勉強会6th「Firefox OS」
関東Firefox OS勉強会6th「Firefox OS」
Noritada Shimizu
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
SharePoint 2016 最新情報
SharePoint 2016 最新情報
Hirofumi Ota
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
Yahoo!デベロッパーネットワーク
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
健一 辰濱
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Yahoo!デベロッパーネットワーク
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Yuki Okada
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
Mixi api quick_start
Mixi api quick_start
Salesforce Developers Japan
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編
Monaca
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
Yahoo!デベロッパーネットワーク
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
Naohiro Fujie
多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
CData Software Japan
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
富士通クラウドテクノロジーズ株式会社
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
拓将 平林
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
recotech
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
Yutaka Terasawa
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
Similar to チャットサービス運用の舞台裏
(20)
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
関東Firefox OS勉強会6th「Firefox OS」
関東Firefox OS勉強会6th「Firefox OS」
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
SharePoint 2016 最新情報
SharePoint 2016 最新情報
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Mixi api quick_start
Mixi api quick_start
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
そうだApi公開しよう feat. 有志のエンジニア
そうだApi公開しよう feat. 有志のエンジニア
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
チャットサービス運用の舞台裏
1.
チャットサービス 運用の舞台裏
2.
自己紹介 ○ 長田洸明 (ながた・ひろあき) ○
KAYAC Inc. ○ サーバーサイドエンジニア ○ https://twitter.com/handlename ○ https://facebook.com/handlename ○ https://github.com/handlename
3.
INDEX ○ Lobiとは ○ 運用チーム ○
インフラ構成 ○ 開発フロー ○ デプロイ ○ IRC ○ リプレースの歴史
4.
Lobiとは
5.
Lobiとは
6.
Lobiとは ○ スマートフォン向けチャットサービス ○ API/SDKが公開されている ○
アプリに組み込んで使うことができる ○ アプリ専用のアカウント(サブアカウント) ○ 運営からのお知らせに使ったり ○ アプリ内のコミュニティに使ったり ○ チームチャットとして使ったり ○ #lobi@freenode
7.
規模
8.
規模 ○ APIリクエスト ○ 平均
550 req/sec ○ ピーク 2,000 req/sec ○ クエリ ○ 平均 6,500 qps ○ ピーク 18,000 qps
9.
運用チーム
10.
運用チーム ○ 専属チームは約20名 ○ 大半がエンジニア ○
サーバーサイドエンジニアが一番多い ○ 専属以外 ○ インフラチーム ○ CSチーム
11.
インフラ構成
12.
インフラ構成 ○ 自社データセンターとAWSを併用 ○ サービス拡大に伴いAWSへの全面移行を計画中
13.
インフラ構成 - サーバー
14.
開発フロー ○ カンバン方式 ○ コードレビュー ○
GitHub Flow ○ CI
15.
開発フロー - カンバン方式 ○
進捗をホワイトボードで管理 ○ スケジュール ○ 開発項目 ○ 数値目標
16.
開発フロー - カンバン方式
17.
開発フロー - コードレビュー ○
GithubのPull Requestでレビュー ○ ひとり以上のレビューを経なければmasterにマージできない ○ 開発とレビューとバランス ○ レビューがボトルネックにならないようにする ○ 巨大プルリク怖い
18.
開発フロー - GitHub
Flow ○ releaseブランチがないgitflow ○ developブランチは必要なときだけつくる ○ 完成していなくても(議論のために)PRをつくる ○ masterから作業ブランチを作成 ○ 短いスパン/細かい変更内容でリリース ○ 1日に数∼十数回デプロイ
19.
開発フロー - CI ○
おなじみのJenkins ○ EC2のスポットインスタンスを利用 ○ それなりにスペックがほしいけど安く抑えたい・・・ ○ テストの設定/結果はEBSに保存 ○ 再起動時にJenkinsのセットアップが完了する ○ Githubとの連携 ○ テスト実行中/成功/失敗をアイコン表示 ○ テストが通っていないPRはマージ時に警告が出る
20.
開発フロー - CI
21.
開発フロー - CI
22.
開発フロー - CI ○
並列実行して高速化 ○ App::Prove::Plugin::MySQLPool https://metacpan.org/module/ App::Prove::Plugin::MySQLPool ○ c1.xlargeインスタンスで10並列で実行 ○ 3500項目 / 所要時間約7分
23.
開発フロー - CI
24.
開発フロー - CI ○
カバレッジ85% ○ APIを叩くテストがメイン ○ APIを公開しているので、レスポンスが正しいことは必須 ○ モデルのテストは必要最小限 ○ テストがリファクタリングの妨げにならないようにする
25.
デプロイ
26.
デプロイ - git
pull ○ 各サーバー上でgit pull ○ 変更があるファイルに気づける(保険) ○ デプロイ前にチェック git status -s -uno
27.
デプロイ - parallel ○
parallelコマンドでデプロイ用のコマンドを実行 ○ デプロイ処理に手を加えるのが簡単 ○ {対象ホスト} で {ある処理} を並列実行 ○ よく使う処理はショートカットを用意
28.
IRCの活用 ○ botが簡単に作れる ○ 何度も発生する作業はbotにやらせる
29.
IRCの活用 - ログ検索 ○
GitHubのhubotを利用 ○ IRCから話しかけるとログを検索しに行ってくれる
30.
IRCの活用 - GitHubのissue展開 ○
プルリクエストを多用するのでissue番号でやりとりすることが多い ○ issue番号っぽいものをIRCに貼ると自動展開 ○ いちいちURLをコピーしなくていいので便利
31.
IRCの活用 - cronの結果表示 ○
メールでも結果は届くけど… ○ IRCならみんな見ているしその場で議論できる ○ 標準出力をfluentdに投げるスクリプト + 特定のタグをNoPasteに投げるfluent plugin
32.
リプレースの歴史 ○ 運用期間2年半 ○ 様々なリプレース
33.
リプレースの歴史 - CVS ○
SVN -> Git ○ git-svnを使っていたので移行コストは低かった ○ 初期は自社サーバーにリモートリポジトリを設置 ○ 現在はGitHub
34.
リプレースの歴史 - O/R
Mapper ○ DBIC -> Teng ○ コードが追えるモジュールを使いたかった… ○ 一時期はDBICとTengが共存
35.
リプレースの歴史 - O/R
Mapper
36.
リプレースの歴史 - WAF ○
Catalyst -> Ark + Amon2 ○ メインのアプリケーションはArk ○ 自社ソーシャルゲーム等で運用実績あり ○ 長らくGitHub止まりだったが・・・ ○ 運用用管理画面はAmon2 ○ 当初は小さなサービスだったので開発コストを掛けられなかった ○ シンプルなアプリケーションが書きやすい ○ モデル部分はメインアプリケーションと共有
37.
38.
リプレースの歴史 - WAF ○
Ark ○ 先々週ついにCPANに! https://metacpan.org/module/Ark
39.
リプレースの歴史 - インフラ ○
AWS -> データセンター -> AWS ○ 現在はAWSへの移行期間 ○ スケールが簡単 ○ APIが充実しているので自動化もできる
40.
リプレースの歴史 - サービス名 ○
Nakamap -> Lobi ○ デザインは現在のものが3つ目 ○ 仲間で使おう ○ 女子会で使おう ○ ゲームで使おう <- いまここ ○ ドメインも変わった ○ nakamap.com -> lobi.co ○ APIはどちらのドメインでも使える
41.
おわり ○ 鋭意スケールアップ中! ○ 鋭意ドキュメント整備中! ○
カヤックでは… ○ スケールアップに興味のあるエンジニアを募集しています! ○ ドキュメントを書くのが好きなエンジニアを募集しています! ○ ログ・データの解析が好きなエンジニアを募集しています!
42.
参考 - GitHub
Flow ○ Scott Chacon on the Interwebs http://scottchacon.com/2011/08/31/github- flow.html ○ 日本語訳 https://gist.github.com/Gab-km/3705015
43.
参考 - メイン&サブアカウント SDK導入アプリからサブアカウントを使うことができる。 Lobi本体アプリからはメインアカウントに関連付けているす べてのサブアカウントを使うことができる。 サブアカウントはメインアカウントに関連付けをしなくても SDK導入アプリから使うことができる。
Download now