Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Slicing up a monolithic application Why and how?
Search
Olivier Dolbeau
October 02, 2015
Programming
950
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slicing up a monolithic application Why and how?
Talk given with Benjamin Fraud (@bench1ps) at Paris Web 2015
Olivier Dolbeau
October 02, 2015
More Decks by Olivier Dolbeau
See All by Olivier Dolbeau
Throw new \Exception(); Oui, mais laquelle ?
odolbeau
1
350
Jane & Webby
odolbeau
0
540
Translating a monolingual application
odolbeau
2
710
DX: Developer eXperience
odolbeau
1
140
DX: Developer eXperience
odolbeau
1
600
EasyAdminBundle introduction
odolbeau
0
270
REX API Platform
odolbeau
0
1.4k
Features flags at BlaBlaCar
odolbeau
5
1.2k
25+ million members in 22 countries, how to scale with Symfony2
odolbeau
2
690
Other Decks in Programming
See All in Programming
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.7k
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
phperだってパンチカードでコーディングしたい
o0h
PRO
0
280
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
580
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
速習iPhone Duo対応
yuukiw00w
2
980
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
golang-bob.pdf
iwatsukayura
0
120
Domain-Driven Transformation
hschwentner
2
2.3k
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
580
The SEO identity crisis: Don't let AI make you average
varn
0
590
Site-Speed That Sticks
csswizardry
13
1.6k
Navigating Team Friction
lara
192
16k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Chasing Engaging Ingredients in Design
codingconduct
0
350
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Git: the NoSQL Database
bkeepers
PRO
433
67k
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