コロプラが大切にしているポリシーと新技術導入後の構成について
「クイズRPG 魔法使いと黒猫のウィズ」「白猫プロジェクト」「ディズニー ツムツムランド」「バクレツモンスター」など数々のヒットゲームアプリを輩出しているコロプラ。その組織構成は、ゲーム事業を担うプロデューサー・ディレクター・プランナーが所属する「エンターテインメント本部」「白猫黒猫本部」と、エンジニアが所属する「エンジニアリング本部」、デザイナーが所属する「アート本部」に分かれており、インフラエンジニアはこれらとは別の組織に在籍しているという。この中で廣本氏がマネジメントしているのは、エンジニアリング本部のサーバーサイドだ。
「2年ほど前に今の機能別組織に変更しました。事業部制の頃は、各事業にエンジニアやデザイナーがひもづいて所属していましたが、ノウハウの共有が薄くなったり、人の流動性が下がってきたりしたからです」(廣本氏)
コロプラにはエンジニアリングの観点で3つの特徴があるという。1つ目は「これまでに出したものと近いゲームはあまり開発しない」。いろいろなユーザーに遊んでもらいたい思いがあり、似たゲームの開発はあえて行わない。エンジニアからすれば、ゲームのコア部分に関して使い回せるものが少ない分、大変さがある。
2つ目は「基本的にサーバーのメンテナンスはしない」。メンテナンスをすれば少なからずユーザーが確実に減る事実に基づき、できる限りメンテナンスはしないといったポリシーがある。
3つ目は「他のプラットフォームに移行できなくなるようなマネージドサービスは使わない」。これまで、マネージドサービスではチューニングポイントが限られてしまうため、使わないという選択をしてきた。
そんなコロプラの新しい技術について、何から何へ移行したのか、それぞれメリットとデメリットを挙げながら見ていった。
PHPのZend FrameworkからLaravelへの移行
- メリット:ライブラリの最適化・不要機能の棚卸し・トレンドな機能が利用できる。
- デメリット:フレームワークを並行することになり、過去タイトルとの二重管理が始まってしまった。
MySQL on VMからGoogle Cloud Spannerへの移行
- メリット:スケールアウトorダウン時のオペレーションが簡単で、大幅にオペレーションコストを削減できた。基本的にメンテナンスがないので高い可用性を得ることができた。
- デメリット:Spannerを採用した事例が少ないので、ノウハウがない。ローカルエミュレータがないため、ローカル開発もインターネット越しでSpannerに接続する必要があり、遅くなる。 Spannerは無料枠がないのでローカル開発もお金がかかる。これから改善していくと思うが、負荷が上がったときの細かいメトリクスがあまり見られないものも多く、問題発生時の理由がわかりにくい。
VMからGoogle Kubernetes Engine(+Spinnaker)への移行
- メリット:オートヒール/オートスケールという非常に便利な機能がある。アプリケーションサーバーの増減のオペレーションが楽。
- デメリット:もともとSCPでファイルを転送していたものが、イメージのコピーという形に変わるので、デプロイにかかる時間が増加した。
新技術で動いているのは直近でリリースされた2タイトルのみであり、新技術導入以前のタイトルは元の構成で動いているというが、新技術になってからの構成は以下の図の通りだ。