こんばんは、ACS 事業部の埜下です。
KubeCon + CloudNativeCon Europe 2023 の 2 日目、ゲームソフトウェア開発会社の Activision による Vitess を採用した事例の紹介です。
課題
Activision ではデータベースのセットアップの複雑さが課題になっていました。
サービスチームは自分たちでデータベースを運用するため、データベースの専門家を必要としていました。 100 個以上のシャードを含むデータベース クラスタ構築に 2 日以上かかっていたそうで、開発スピードにも影響したそうです。
次世代 DB の選定
そこで Activision は次世代 DB として以下の要件を挙げました。
- SQL クエリ互換
- アプリケーションの変更が最小限で済む
- バックエンドで MySQL が動作する
- Kubernetes ネイティブ
- Kubernetes オペレータが提供される
これらの要件を満たすものを比較して、Vitess を採用したそうです。
Vitess は CNCF の Graduated プロジェクトの 1 つで、シャーディングによって水平スケーリングが可能な MySQL 互換の DB です。
大規模サービスに導入するまで
小規模なサービスで PoC をおこない、プラットフォームの統合、シャード拡張やリカバリといった各種試験はスムーズに進み、コミュニティとも良好な関係を築くことができたそうです。
その後、Acitision 内でも Vitess の関心が高まり、大規模サービスでも Vitess を採用する流れになりました。
しかし、データベースが大規模だったため 50% 以上のテストが失敗したそうです。
また、外部キー制約が完全にはサポートされていなかったり、REPLACE INTO
ステートメントがサポートされていない等の課題もあったそうです。
テストの問題は Vitess のコミュニティと協力することで解決し、非互換性についても回避策が見つかったようです。
本番稼働を想定した障害シナリオでは、登壇者曰く「データベースに本当に酷いことをした」にも関わらず、魔法のようにデータベースを復旧できたそうです。
Vitess の効果としては、Vitess チームが提供する標準ツールによってシャードの拡張/統合ができるようになり、GitOps によりデータベースをセットアップできるようになったそうです。
おわりに
Activision の Vitess 採用事例を紹介しました。
新技術を導入するには十分な検証も必要ですが、OSS の場合はコニュニティとの繋がりも大事だということが分かる事例でしたね。