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
Slicing up a monolithic application Why and how?
Search
Olivier Dolbeau
October 02, 2015
Programming
0
780
Slicing up a monolithic application Why and how?
Talk given with Benjamin Fraud (@bench1ps) at Paris Web 2015
Olivier Dolbeau
October 02, 2015
Tweet
Share
More Decks by Olivier Dolbeau
See All by Olivier Dolbeau
Throw new \Exception(); Oui, mais laquelle ?
odolbeau
0
74
Jane & Webby
odolbeau
0
310
Translating a monolingual application
odolbeau
2
460
DX: Developer eXperience
odolbeau
0
54
DX: Developer eXperience
odolbeau
0
450
EasyAdminBundle introduction
odolbeau
0
150
REX API Platform
odolbeau
0
1.2k
Features flags at BlaBlaCar
odolbeau
4
930
25+ million members in 22 countries, how to scale with Symfony2
odolbeau
1
430
Other Decks in Programming
See All in Programming
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
2.3k
Progressive Web Apps für Desktop und Mobile mit Angular (Hands-on)
christianliebel
PRO
0
110
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
420
Tuning GraphQL on Rails
pyama86
2
1.2k
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
260
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
10
1.7k
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
230
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
510
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
280
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4.2k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
4
380
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Why Our Code Smells
bkeepers
PRO
334
57k
Unsuck your backbone
ammeep
668
57k
Building Applications with DynamoDB
mza
90
6.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
GraphQLとの向き合い方2022年版
quramy
43
13k
How STYLIGHT went responsive
nonsquared
95
5.2k
Typedesign – Prime Four
hannesfritz
39
2.4k
Transcript
Slicing up a monolithic application Why and how?
None
None
None
Slicing up a monolithic application Why and how?
What is a monolithic application?
“It does everything, even coffee” - Every developer ever
Website
Mobile apps
So big!
406 187 NLOC There are “only” 268 041 NLOC for
symfony/symfony
29 582 Commits There are “only” 15 506 commits for
symfony/symfony There are “only” 10 228 commits for joyent/node There are “only” 9 266 commits for twbs/bootstrap There are 44 809 commits for rails/rails (but it’s ruby… #troll)
75 contributors There are 1 193 contributors for symfony/symfony
20 minutes to deploy the application
“Everything should be made as simple as possible but not
simpler” Albert Einstein
None
➚ Pragmatism “Just get it done, ok?” - God
➚ Processes - “Let’s sync!” - “No way man” -
A developer and an ops, on a friday evening
➚ Learning “It must be somewhere in that file” -
A struggling mentor
➘ Conflicts “I’ve been rebasing for years, kill me now”
- A Git enthusiast
➘ Time consuming “The script has been frozen for 30
minutes, should I worry?” - A worried developer
➘ Maintenance “It works, but I can’t figure out why”
- Both of us
➘ Lack of expertise “I’ve only been there for 3
years for God’s sake!” - A senior developer
➘ Side effects “The website is broken” - A user
on Twitter
With minor change comes major bugs.
With minor change comes major bugs. Olivier, based on its
personal experience.
Objectifs BlaBlaCar today.
countries NEW IN 2015 India Mexico Hungary Romania Serbia Croatia
19
Exponential growth 20 million members in April 2015
What are micro- services?
Users Ratings Notifications Moderation Trips
Objectives - Going worldwide - Fast growing community
BlaBlaCar is deploying multiple datacenters.
We need to localize our data.
Different needs mean different storage.
There are only two hard things in Computer Science: cache
invalidation and naming things. Phil Carlton
The gateway
Business Data
- How to make it easier for everyone to work
together? - How to avoid conflicts? - How to foster expertise?
- Micro-startups - Independant teams - Focus on a specific
domain - Multi-skills - Limited lifespan Team work
None
- Easy to understand - Fast to test, fast to
deploy - Framework - Open-source - No more conflicts
- Long to bootstrap - Specific projects to handle configuration
- Increases ops complexity
None
Micro services are not a silver bullet!
Migrate from monolithic to micro services can be a pain.
t is worth it if you need it!
• Micro services are not a silver bullet! • Migrate
from monolithic to micro services is a pain. • It is worth it if you need it! Benjamin Fraud @bench1ps Olivier Dolbeau @odolbeau