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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kyosuke Awata
July 22, 2023
Programming
2.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービスではなくモジュラモノリスを採用した理由
モジュラモノリス徹底解剖〜実践者から学ぶLunch LT〜 の登壇資料
https://findy.connpass.com/event/289311/
Kyosuke Awata
July 22, 2023
More Decks by Kyosuke Awata
See All by Kyosuke Awata
AI時代を生き抜くために〜1年間のFAST実践で学んだ、自律分散型組織の可能性と難しさ〜 / Surviving the AI Era: Lessons in a Decentralized Autonomous Organization with FAST
wooootack
0
1.9k
FAST導入1年間のふりかえり〜現実を直視し、さらなる進化を求めて〜 / Review of the first year of FAST implementation
wooootack
1
5.3k
FASTと向き合うことで見えた、大規模アジャイルの難しさと楽しさ / FAST Taught Me Large-Scale Agile Hardships and Fun
wooootack
2
4.1k
(新URLに移行しました)FASTと向き合うことで見えた、大規模アジャイルの難しさと楽しさ
wooootack
0
1.5k
チーム全員で品質課題の改善のために取り組んだことを振り返る / Quality improvement team reflection
wooootack
4
4.4k
無理せずに みんなで作ろう 発信文化
wooootack
3
4.7k
雰囲気でSWRを使ったらハマった話
wooootack
0
74
RustでREST_APIを開発した話.pdf
wooootack
0
280
Other Decks in Programming
See All in Programming
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
620
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.7k
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
670
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
230
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
さぁV100、メモリをお食べ・・・
nilpe
0
140
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
330
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
The browser strikes back
jonoalderson
0
1.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Fireside Chat
paigeccino
42
3.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
What's in a price? How to price your products and services
michaelherold
247
13k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Code Review Best Practice
trishagee
74
20k
Transcript
マイクロサービスではなく モジュラモノリスを選んだ理由 ~選ばれたのは、モジュラモノリスでした~
名前 粟田 恭介(@wooootack) 経歴 2019年に異業種からエンジニアに転職し、 2021年にプラハに入社。 仕事内容 フルサイクルエンジニアとしてプロダクト開発全般に従事。 約1年前からチームリーダーとして、マネジメントにも挑戦中。 趣味
車(写真は愛車)、アイドルヲタク(歴長め)、ぷよテト(テトリス勢) 自己紹介
(2022年6⽉にジョイン) アガルートアカデミー 新規サービス等 開発⽀援 ・・・ オンライン資格予備校 運営会社 グループ会社 教育事業の⼀つ アガルートアカデミーについて
技術負債が溜まり続けた既存システム • リリースから約8年、技術負債が溜まり続けていた • テストやドキュメントがなく、全てを知るのは当時の開発者だけ • そしてシステムを直せない結果生まれた、大量の「運用回避」 新機能を別システムとして作り 既存システムから新システムに少しずつ移行
マイクロサービスでやろうよ!
マイクロサービスを侮っていた そう簡単に作れるものではない • サービス間で整合性担保するの、こんな難しいの? • インフラエンジニアいないけど、サービスごとに環境用意できるか? • 経験者いないけど、気合で乗り切れるのか? 社外の経験者に話を伺ってみたが、厳しい意見がほとんど •
デプロイ待ちが発生しているくらい肥大化してないなら、メリットが少ない • 共通処理専門チームやインフラ専門チームが存在していないと手が足りない • おそらく今の状態だと、マイクロサービスが負債になる
やっぱりモノリス、、、?
モノリスで内部品質を高く保つことは難しい • 雑に書くとすぐに大きな泥団子になってしまう • 内部品質を高く保つには、ある程度の設計スキルが必要 • 将来的にマイクロサービスに移行しづらい 将来性が少し心配
第3の選択肢:モジュラモノリス
泥団子化を防ぎやすい シナリオ層 データベース モジュールB モジュールC モジュールA
マイクロサービスへの布石になる サービス境界を探ることができる • モジュール境界はサービス境界に比べて戻しやすい 先にDBを分割することも可能 • モジュールごとにDBを用意しても良い • モジュール間の整合性担保がサービス間の整合性担保に化けるかも?
今日のまとめ
私たちがマイクロサービスを選ばなかった理由 負債になってしまう可能性が高いと判断した • インフラや共通処理の専門チームを用意できる組織の規模ではなかった チームの規模やサービス特性的にも過剰と判断した • チームの規模が大きすぎてデプロイ待ちが起きるよう状況ではなかった • そこまで柔軟なスケールアップが必要ではなかった
私たちがモジュラモノリスを選んだ理由 大きな泥団子状態になるのを防ぎたかった • モジュールという強い概念を持ち込むことで、仮に泥団子になってしまっても、モ ジュール内にその影響をとどめられる マイクロサービスに移行する可能性はゼロではない • サービス境界の見極めや、先にDBを分割するなど、布石にできる
唯一絶対の答えはない 置かれた状況から自分たちにとって最適な選択を導き出す • 組織の規模や文化 • サービスの特性 • エンジニアの技術力 • リリースまでの期間
• など
We are Hiring 株式会社プラハの応募はこちらから ぜひ⼀緒に、ものづくりを楽しみましょう! 頭の中にしかないアイデアを形にしていく「ものづくり」はすごく楽しいことです。 しかし学ぶべきことも数多くあり、難しい局⾯に⽴ち向かうことも多々あることでしょう。 そんな時、⼀緒に切磋琢磨できる仲間が集まっていれば、どんな挑戦にも楽しく挑めるのではないでしょうか。 そのような素晴らしい環境で「ものづくり」をしたいと感じてくれた⽅がいましたら、ぜひお声がけください! 株式会社アガルートテクノロジーズの応募はこちらから
https://tech.agaroot.co.jp/#recruit https://www.praha-inc.com/recruit