https://dmm.connpass.com/event/284374/ 「価値提供スピードを上げるための技術的負債への向き合い方」の発表資料です。
© DMM.comマイクロサービス・モジュラモノリス化によるシステム負債の解消プロジェクトオンラインサロン事業部 塚原 諒
View Slide
© DMM.com自己紹介2塚原 諒2022/04中途でDMM.com入社所属: オンラインサロン事業部アーキテクトチームTwitter: @trrrrrysGitHub: trrrrrys
© DMM.com話すこと3● 現状のシステム的課題● マイクロサービス・モジュラモノリス化プロジェクトについての紹介● これまでやってきたこと● 現在取り組んでいること
© DMM.com現状のシステム的課題4
© DMM.com現状のシステム的課題5データベースが分かれていて、アカウント情報が各々のDBに存在するため都度データを同期する必要があったり片方にあって片方にデータがない等フローが複雑になっているその影響が様々な箇所に及ぶため、リードタイムが増大し、機能開発の速度を大幅に低下させている
© DMM.comマイクロサービス・モジュラモノリス化プロジェクトについての紹介6
© DMM.com「neon」プロジェクト7
© DMM.com「neon」プロジェクト8適切な単位でサービスを分割し疎結合化することで、スケーラビリティの向上やリードタイムの短縮を図る完全なマイクロサービスではなく、基本的には主要なサービスをモジュラモノリスとして扱っていて、一部をマイクロサービスとするクライアントからはBFFを介して利用する
© DMM.com「neon」プロジェクト9
© DMM.comこれまでやってきたこと10各システムに分散されているデータを新 DBに統一するためにawsのMSK(Managed Streaming for ApacheKafka) の Debezium Connector を利用して、管理画面・専用のコミュニティサービス DBの変更を検知し Lambdaで加工して新しいDBにデータを同期管理画面/専用コミュニティのデータを新DBへ同期
© DMM.comこれまでやってきたこと11クライアントからneonサービスを利用するためのAPIGatewayを構築GraphQLを採用しているため、クライアント側で柔軟にデータを取得API Gateway 構築
© DMM.com 12認可基盤の作成サービス間の認可のために SpiceDBという OSSを利用して認可基盤を構築したSpiceDBは、GoogleがZanzibarと呼ばれる認可システムを発表して以来、その設計思想を元に開発されたもので今回の要件として柔軟な権限設定を行いたかったため、zanzibarベース(ReBAC)のシステムを選択した(Auth0FGAや ory/keto も検討候補に上がっていた )これまでやってきたこと
© DMM.com現在取り組んでいること13開発している neon 基盤を用いてサロンオーナー/DMM管理者が利用する管理画面をフロントエンド /バックエンド含めて刷新している既存管理画面 新管理画面(仮)
© DMM.comまとめ14・システム的負債を解消するためにマイクロサービス +モジュラモノリスで開発を行なっている・組織の状況に合わせたアーキテクチャを設計することが大切・5年10年後も通用するアーキテクチャにしていきたい
© DMMご静聴ありがとうございました15