人気モバイル ゲームの本番運用を支える Container Engine
2016年7月15日金曜日
* この投稿は米国時間 7 月 7 日、Google Cloud Platform の APAC Sales Engineer である Shao-horng Yong によって投稿されたもの(投稿はこちら)の抄訳です。
Rayark は 2011 年設立のモバイル ゲーム開発会社です。同社がこれまでにリリースしたタイトルのいくつかは数百万ダウンロードを記録しており、受賞歴もあります。最新作の VOEZ は 7 月にリリースされ、Google Container Engine(GKE)で本番運用されています。
Rayark がコンテナを使って VOEZ を開発することを選択したのは、このゲームを複数のクラウド間でポータブルにしたいと考えたからです。ゲーム ビジネスの世界では、ローカルのゲーム パブリッシャーがゲームを複数のインフラにホスティングし、ネットワーク レイテンシの改善や地域ニーズへのきめ細かな対応を図るのが一般的です。
コンテナのポータブル アーキテクチャと Kubernetes のおかげで、異なるインフラが使用されているクラウドでも VOEZ を簡単にレプリケートできます。さらに、コンテナはリソースの効率的な利用も可能にします。またコンテナは、OS がすでに稼働していることから、仮想マシンよりはるかに高速に、バースト処理のためにスケーリングできます。
リリースから 2 週間で VOEZ のダウンロード数は早くも 200 万に達しました。しかし、Rayark で CTO を務める Alvin Chung 氏は、一貫して「成功の保証は一切ない」という認識に立ち、慎重に事を運んできました。
実際、ユーザーの 86 % はパフォーマンスの問題を理由にアプリの削除やアンインストールを行うという調査結果もあります。
Chung 氏も、プロジェクトが軌道に乗るまでは、「Container Engine の採用は適切な選択か」「バックエンド インフラはスケーリングするか」「コンテナ技術は期待どおりに機能するか」「Google Cloud Platform はマーケティングや営業トークのとおりにアフターサービスを提供するか」に関して確信が持てませんでした。
こうした Chung 氏の不安は、ベータ テストを経てクリアになっていきました。ベータ テストでは招待された 1 万人のファンが VOEZ をダウンロードしましたが、フロントエンドの HTTPS Load Balancer はウォームアップなしでシームレスにスケーリングしました。ただし、Rayark が大規模なロード テストを行ったところ、潜在的なボトルネックも見つかりました。
そこで、Cloud Platform のソリューション アーキテクト チームは、DNS Pods を使った Container Engine のスケーリング、Redis のシャーディング、Python に関連する HTTPS 接続のリセットの追跡を行うようアドバイスしました。
こうした問題が解決されると、アプリケーションはスムーズにスケーリングするようになりました。フロントエンドのロード バランシングは毎晩 9 時過ぎに負荷がピークに達し、ピーク負荷は上昇の一途をたどっています。これに対してバックエンド インフラストラクチャは、CPU 使用量が 35 % 未満で推移しています。
振り返ってみると、VOEZ の成功は以下のような大原則の実践に支えられています。
- 時間をかけて高品質のソフトウェアを作る
- 強力な開発チームを編成する
- 比較的新しい技術を使うことも含めて、負荷の処理方法を模索する
- 先を見据えて大きく考える。コンテナのようなオープンソース技術を使用すれば、ポータビリティが確保され、ベンダーロックインの回避につながる
- 大規模テストを行い、予想外の事象をできるだけ早く発生させる
- Google のパートナーと営業エンジニア チームによるオンサイト サポートと本番インフラストラクチャのモニタリングを利用する
Rayark にとって、Container Engine による VOEZ のホスティングは大成功でした。次の 200 万ダウンロードが楽しみです。
- Posted Shao-horng Yong, Google Cloud Platform, APAC Sales Engineer
0 件のコメント :
コメントを投稿