Lobiチームインフラ担当の長田です。
今年は弊社で運用しているLobiというサービスについて、 サーバーサイドエンジニアの視点から、月いちくらいのペースで紹介していきます。
今回は「Lobiとはなんぞや?」というところを書こうと思います。
サービスの概要
Lobiはゲームを中心としたコミュニティサービスです。
2010年のサービス開始当初はナカマップという位置情報を絡めたチャットサービスでした。 2013年にスマホゲームに特化するとともにLobiという名前に改名し、様々な機能追加の末に今に至ります。
様々な機能とは・・・
- グループチャット
- スマホゲームのプレイ動画録画・投稿・閲覧(Rec SDK)
- マルチプラットフォームなスコアランキング(Ranking SDK)
- スマホアプリへのグループチャット機能提供(Chat SDK)
- ゲームに特化したプロフィール
- ゲームのレビュー投稿・閲覧
- 募集機能(マルチプレイ、ギルド等)
- 広告入稿・配信
- etc.
裏側で使っているもの
- インフラ
- Amazon Web Service (AWS)
- 言語
- Perl
- Go
- Javascript
- ミドルウェア
- nginx (openresty)
- HAProxy
- MHA
- データストア
- MySQL
- AWS ElastiCache (Redis)
- AWS Redshift
- memcached
- mongodb
- その他ツール
- chef
- consul
- packer
- fluentd
- jenkins
- stretcher
簡易年表
- 2010.12: 「ナカマップ」としてサービス開始
- 2011.04: AndroidのPush通知をC2DMから独自の方式に変更
- 2011.02: なぜかクウェートで人気に
- 2011.06: 女子向けアプリに方向転換
- 2011.09: AWSから自社DCに移行
- 2012.06: Chat SDK提供開始
- 2012.11: ORMをDBICからTengに変更
- 2013.05: 「Lobi」に改名。スマホゲームに特化したチャットサービスへ
- 2013.10: Ranking SDK提供開始
- 2013.10: チャットへの「ぐー・ぶー」機能リリース
- 2013.11: デプロイ方法をarcher(git clone)からrsyncに変更
- 2013.11: 自社DCからAWSに移行
- 2014.01: Rec SDK提供開始
- 2014.08: AndroidのPush通知を独自方式からGCMに変更
- 2015.04: デプロイ方法をrsyncからstretcherに変更
- 2015.04: SNS機能を強化
- 2015.06: 負荷増加に伴いMySQLを水平分割
- 2015.12: マルチプレイマッチング機能リリース
技術的なトピック
- stretcherを用いたデプロイ
- チャットのストリーミングAPI
- MySQLのシャーディング(水平分割)
- MySQLのフェイルオーバー
- iOSとAndroidのPush通知
- プレイ動画の録画・変換・配信
- web.lobi.co(w/AngularJS)のSEO
- fluentdとNorikraを用いたログ集約・解析
- AWS CloudSearchを用いたユーザー・グループの検索
- AWS EC2上でのAutoscaling
すでに記事になっているものもあります。
ここに挙がっていないトピックについて紹介することがあるかもしれませんし、 挙がっていても取り上げない場合もあるかもしれません。 その辺りはご容赦ください。
次回は「stretcherを用いたデプロイ」について紹介します。