Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイクロサービス・モジュラモノリス化によるシステム負債の解消プロジェクト
Search
Ryo Tsukahara
June 08, 2023
Technology
0
730
マイクロサービス・モジュラモノリス化によるシステム負債の解消プロジェクト
https://dmm.connpass.com/event/284374/
「価値提供スピードを上げるための技術的負債への向き合い方」の発表資料です。
Ryo Tsukahara
June 08, 2023
Tweet
Share
More Decks by Ryo Tsukahara
See All by Ryo Tsukahara
モジュラモノリスのモジュール間通信の話
trrrrrys
4
3.4k
Other Decks in Technology
See All in Technology
"プロポーザルってなんか怖そう"という境界を超えてみた@TSUDOI by giftee Tech #1
shilo113
0
200
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
310
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
240
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
400
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
310
Railsの話をしよう
yahonda
0
160
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
150
WEBサービスを成り立たせるAWSサービス
takano0131
1
170
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
80k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
230
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
110
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
Embracing the Ebb and Flow
colly
88
4.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
GitHub's CSS Performance
jonrohan
1032
470k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Transcript
© DMM.com マイクロサービス・モジュラモノリス化による システム負債の解消プロジェクト オンラインサロン事業部 塚原 諒
© DMM.com 自己紹介 2 塚原 諒 2022/04中途でDMM.com入社 所属: オンラインサロン事業部アーキテクトチーム Twitter:
@trrrrrys GitHub: 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
Apache Kafka) の 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