アソビューのシステムアーキテクチャ
アソビューのシステムアーキテクチャ
最終更新日 投稿日
アーキテクチャの工夫ポイント
アーキテクチャ選択の背景や意図
基本となるアーキテクチャとして、システム横断でのデータ再利用や迅速な開発のための「集約」と、負荷分散や権限分離などの「分割」を使い分ける戦略を採用しています。
- モノレポ
全ソースを単一リポジトリに集約、独立して開発するため各サービスのパッケージ分割やCI/CDを分離 - モジュラモノリス+マイクロサービス
コア機能をモジュラモノリスに集約、既存システムや一部マイクロサービスとして切り出し開発効率と独立性を維持 - マルチテナントシングルクラスター
単一のEKSクラスターで全ステムを集約、モジュラモノリスの起動モードやマイクロサービスにより、水平スケールや可用性分離を実現 - マルチテナントDBの垂直、水平スケール
マルチテナントDBでデータを集約、Amazon Aurora Serverless v2による垂直スケールやカスタムエンドポイントを用いた読み込みDBの可用性分離、Google Cloud Spannerを利用した書き込みDBの水平スケール - 同期/非同期通信
Protocol Buffersでスキーマ定義。同期通信はgRPC、非同期イベントは単一イベントバスに集約、分散システム間での連携 - データ基盤
分散されたデータをBigQueryに集約し、分析や機械学習へ活用
現在のアーキテクチャの課題と今後の改善予定
様々な課題は残っていますが、代表的なものは以下です。
- マルチテナントにおけるノイジーネイバー
サービス性質上、特定テナントにトラフィックや負荷が集中するノイジーネイバー問題があります。これに対し、動的なトラフィック制御やテナントのハイブリッドモデル化などスケーラビリティと開発効率の両立を実現する必要があります。 - システム統廃合と拡張性
ここで紹介した以外にも様々なシステムを扱っているため、統廃合を行い開発生産性や拡張性を加速させていくことが重要です。また、販売商品を拡張していく上で、I/Fやサービスレベルが様々な外部システムと柔軟かつ安定した連携、プラットフォーム外の機能をサードパーティとして追加できるカスタマイズ性を実現するアーキテクチャも求められています。
◆執筆:兼平大資 アソビュー株式会社 技術戦略部 部長 / VPoT @disc99_
【サービス公式サイト】
https://www.asoview.com/








