10年間の運用で積み重なる課題
株式会社Cygamesが開発・運営する王道スマホRPG「グランブルーファンタジー(グラブル)」は、2024年3月10日でサービス開始より10周年を迎える人気ゲームで、2024年2月15日時点で登録者が3600万人を突破するなど今なお数多くのユーザーによってプレイされている。しかし、この人気の裏では長年に渡る運用の過程でさまざまな課題が積み重なっていた。
「グラブルはアプリ審査が不要なブラウザ向けゲームのため、機能追加やイベント、キャンペーンなどのアップデートを高頻度で行うことが可能となっています。そのため毎月10回以上、数万行に及ぶソースコードの変更を伴うアップデートを長年続けてきました。そのアップデート頻度を維持するため、本来は開発時に構造から修正すべき実装についても、追加開発では大きく構造を変えず、影響範囲を小さくするように開発を行ってきました。このような開発スキームの影響でコードの多重化や可読性の低下、技術負債の蓄積、属人性の増加といったさまざまな課題が蓄積されていました」(伊藤氏)
その結果、機能追加のたびに複雑な仕様やソースコードと格闘しなければならなくなっていた。さらにはソースコードの複雑化により、メンテナンスが初期実装者に偏ることで、属人化の問題も顕在化してきた。また、ソースコードのみならず機能追加によるデータアクセスも増加し、データベースやキャッシュサーバーに掛かる負荷も次第に高まっていた。
こうした運用面での課題に加え、技術面においてもさまざまな課題が持ち上がっていた。例えばコードは初期のアーキテクチャが手続き型で実装されていた事に加え、長年の運用により密結合な状態になっており、拡張性やメンテナンス性が低い状態になっていた。データについても一元的に管理できておらずデータアクセスも最適化されていなかった。データアクセスが増えデータベースやキャッシュサーバーの負荷も増加する一方で、WEBサーバーの負荷も増加を続けていた。
長年の運用の末にソースコードにして300万行、テーブル数が3万超、アクセス数が秒間28万という巨大サービスに成長した今、それらの課題に直面し、アーキテクチャの限界や老朽化を感じていた。その結果「度重なる拡張によって初期のシステムが老朽化していると考え、グラブルの次の10年を支えていくために、ゲーム業界でも最大規模の100万行を超えるシステムの再構築にチャレンジすることになりました」(伊藤氏)