devsumi2015 で参加してきたセッションのメモ、最後は任天堂さんと hatena さんの Miiverse の開発四方山的な話をきいてきたメモです。
これはセッション開始前から資料が公開(devsumi-2015-Miiverse // Speaker Deck)されていて、そちらをすでに読んだ方が多いのではないかな、と思いますが、一応せっかくとったメモなので公開しておきます。
では以降がメモです。
20-C-5 世界に展開できるウェブサービスのつくり方
- 資料は事前に公開されている
- Miiverse の話
- なぜ世界に展開するのか?
- なぜ世界展開の話なのか?
- Miiverse のアクティブユーザは
- JP, US, EU で 1:1:1
- 単純にサービスが日本以外の地域にもマッチしてる
- 品質が国によらず均等
- 世界展開に必要なこと
- インフラ構築・運用
- 多言語対応
- 企画運営
- Miiverse とは?
- Mii を通じてゲームを話題の中心としたコミュニケーションサービス
- 手書き
- ゲームのスクリーンショット
- マルチデバイス
- WiiU, 3DS, PC, SP
- ウェブベースの実装
- HTML5 + CSS3 + JS
- ネイティブアプリ + ブラウザアプリ
- 3DS でぬるぬるうごかすための魔改造をいろいろやってる
- 開発体制
- はてな京都オフィスで Hatena と任天堂が一緒に開発
- 開発体制
- JP
- US
- EU
- Mii を通じてゲームを話題の中心としたコミュニケーションサービス
- 世界に展開できるインフラ構築
- AWS を使った 3 リージョン構成
- 直近のリージョンにアクセスするようになっている
- レスポンスへの配慮
- リージョン間は VPN で結んでいる
- 管理障害対応をシンプルにするために
- Proxy + App server + DB server
- App server は各デバイスごとに用意
- code base はすべて同一
- DB はリージョンで分かれているがデータはどこの国のものをみれる
- 各リージョンに独立したマスタ DB
- Cross-Replication
- 同期的な処理をリージョン内で完結させている
- App server は各デバイスごとに用意
- リージョンとデバイスのルーティング
- リージョンとデバイスごとに異なるエンドポイント
- サブシステム構成
- マイクロサービス
- 基板となる処理を分離
- REST API
- 3つのサブシステム
- タイムライン
- 共感
- 通知
- すべてのリージョンに
- マイクロサービス
- Mackerel によるサーバ管理を行っている
- AutoScale もやってる
- 約 20% のコスト削減
- リソースの状況によってサーバ数を自動で増減
- マルチリージョンで障害監視
- 24/7 の監視体制
- 実機での定期確認 (3 リージョン)
- アラート監視
- 24/7 の監視体制
- 多言語対応の運用
- 内部的にはメッセージ識別子 (messageid) が言語によって展開される
- ユーザに見える部分
- UTF-8
- MySQL: UTF8MB4
- 5.5.3 以降で利用可能
- 絵文字に対応するため
- 翻訳作業をどこでやるか?
- Hatena::Translator
- 多言語対応の注意点
- 複数形に気をつける
- 画像に気をつける
- 文字を含めずに CSS と背景画像で対処
- 文言の長さに気をつける
- 長い文言で崩れないようなデザインに気を使う
- 男性名詞、女性名詞に気をつける
- 名詞の性によって文言が変わります (格変化)
- Cache に気をつける (Miiverse はユーザごと)
- Server 側
- 言語やその他の違い
- Client 側
- 言語変更されるとズレる
- Server 側
- 時差に気をつける (Miiverse はユーザごと)
- 日時は UTC で保存
- TZ は機械的に決定できない
- 日付表記の違いに気をつける
- 数値表記の違いに気をつける
- 検索エンジンに気をつける
- Index された言語でレスポンス
- サービスによって適宜
- etc, etc.......
- 地域に合わせた企画運営
- 現地のことは現地の人に聞く/任せる
- サービスの使われ方
- 法律による制約が地域によって異なる
- 成人の定義が異なる
- 成年指定タイトル
- Eraser Button Law (U.S, CA)
- 成人の定義が異なる
- 事務局方式で対応している
- ガイドラインの統一
- 利用ガイドライン
- 監視ポリシー
- 運営レポートの共有
- ガイドラインの統一
- 現地のことは現地の人に聞く/任せる
資料
その他資料
あわせて読まれたい
- #devsumiC 積ん読状態のドメイン駆動設計をちゃんと読むきっかけづくりに「ドメイン駆動設計再入門」に参加してきました
- #devsumiC 「IT アーキテクトの役割と責任」は大変エモしろかった
- 「HBase は素晴らしい!言うならばそれは SKVS !」という台詞に最後は全て喰われていた HBase 徹底入門刊行記念セミナーで著者の方々のサインをもらってきた #hbase_ca
- 帰ってきたネ申プレゼン! #dbts2014 で @nippondanji 氏の「あなたが知らないリレーショナルモデル」と #meet_wow してきた。
- Cloudera World Tokyo 2014 の LT セッションで聞いてきたメモ #cwt2014