Slide 1

Slide 1 text

© DMM.com マイクロサービス・モジュラモノリス化による システム負債の解消プロジェクト オンラインサロン事業部 塚原 諒

Slide 2

Slide 2 text

© DMM.com 自己紹介 2 塚原 諒 2022/04中途でDMM.com入社 所属: オンラインサロン事業部アーキテクトチーム Twitter: @trrrrrys GitHub: trrrrrys

Slide 3

Slide 3 text

© DMM.com 話すこと 3 ● 現状のシステム的課題 ● マイクロサービス・モジュラモノリス化プロジェクトについての紹介 ● これまでやってきたこと ● 現在取り組んでいること

Slide 4

Slide 4 text

© DMM.com 現状のシステム的課題 4

Slide 5

Slide 5 text

© DMM.com 現状のシステム的課題 5 データベースが分かれていて、アカウント情 報が各々のDBに存在するため 都度データを同期する必要があったり片方 にあって片方にデータがない等フローが複 雑になっている その影響が様々な箇所に及ぶため、リード タイムが増大し、機能開発の速度を大幅に 低下させている

Slide 6

Slide 6 text

© DMM.com マイクロサービス・モジュラモノリス化プロジェクトについての紹介 6

Slide 7

Slide 7 text

© DMM.com 「neon」プロジェクト 7

Slide 8

Slide 8 text

© DMM.com 「neon」プロジェクト 8 適切な単位でサービスを分割し疎結合化することで、 スケーラビリティの向上やリードタイムの短縮を図る 完全なマイクロサービスではなく、 基本的には主要なサービスをモジュラモノリスとして 扱っていて、一部をマイクロサービスとする クライアントからはBFFを介して利用する

Slide 9

Slide 9 text

© DMM.com 「neon」プロジェクト 9

Slide 10

Slide 10 text

© DMM.com これまでやってきたこと 10 各システムに分散されているデータを新 DBに 統一するために awsのMSK(Managed Streaming for Apache Kafka) の Debezium Connector を利用して、 管理画面・専用のコミュニティサービス DBの 変更を検知し Lambdaで加工して新しいDBに データを同期 管理画面/専用コミュニティのデータを新DBへ同期

Slide 11

Slide 11 text

© DMM.com これまでやってきたこと 11 クライアントからneonサービスを利用するため のAPIGatewayを構築 GraphQLを採用しているため、クライアント側 で柔軟にデータを取得 API Gateway 構築

Slide 12

Slide 12 text

© DMM.com 12 認可基盤の作成 サービス間の認可のために SpiceDBという OSSを利用して認可基盤を構築した SpiceDBは、GoogleがZanzibarと呼ばれる認可システムを発表して以来、 その設計思想を元に開発されたもので 今回の要件として柔軟な権限設定を行いたかったため、 zanzibarベース(ReBAC)のシステムを選択した (Auth0FGAや ory/keto も検討候補に上がっていた ) これまでやってきたこと

Slide 13

Slide 13 text

© DMM.com 現在取り組んでいること 13 開発している neon 基盤を用いて サロンオーナー/DMM管理者が利用する管理画面をフロントエンド /バックエンド含めて刷新している 既存管理画面 新管理画面(仮)

Slide 14

Slide 14 text

© DMM.com まとめ 14 ・システム的負債を解消するためにマイクロサービス +モジュラモノリスで開発を行なっている ・組織の状況に合わせたアーキテクチャを設計することが大切 ・5年10年後も通用するアーキテクチャにしていきたい

Slide 15

Slide 15 text

© DMM ご静聴ありがとうございました 15