Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Slicing up a monolithic application Why and how?
Olivier Dolbeau
October 02, 2015
Programming
0
570
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
Jane & Webby
odolbeau
0
230
Translating a monolingual application
odolbeau
2
330
DX: Developer eXperience
odolbeau
0
43
DX: Developer eXperience
odolbeau
0
320
EasyAdminBundle introduction
odolbeau
0
100
REX API Platform
odolbeau
0
820
Features flags at BlaBlaCar
odolbeau
4
750
25+ million members in 22 countries, how to scale with Symfony2
odolbeau
1
330
Be gentle with your prod!
odolbeau
1
480
Other Decks in Programming
See All in Programming
ペパカレで入社した私が感じた2つのギャップと向き合い方
kosuke_ito
0
290
ipa-medit: Memory search and patch tool for IPA without Jailbreaking/ipa-medit-bh2022-europe
tkmru
0
130
xarray-Datatree: Hierarchical Data Structures for Multi-Model Science
tomnicholas
0
220
和暦を正しく扱うための暦の話
nagise
10
6.5k
Excelの助けを借りて楽にシナリオを作ろう
rpa_niiyama
0
310
新卒でサービス立ち上げから Hasuraを使って3年経った振り返り
yutorin
0
230
Most Valuable Bug(?) ~インシデント未遂から得た学び~
tatsumiakahori
0
150
Prácticas de Seguridad en Kubernetes
pablokbs
0
130
Listかもしれない
irof
1
280
Rust、何もわからない...#6発表資料
ryu19
0
130
コンピュータビジョンセミナー2 / computer_vision_seminar_libSGM
fixstars
0
320
Glance App Widgetでウィジェットを作ろう / MoT TechTalk #15
mot_techtalk
0
130
Featured
See All Featured
Atom: Resistance is Futile
akmur
256
24k
Side Projects
sachag
451
37k
Visualization
eitanlees
128
12k
Design by the Numbers
sachag
271
18k
A Tale of Four Properties
chriscoyier
149
21k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
What's in a price? How to price your products and services
michaelherold
233
9.7k
Thoughts on Productivity
jonyablonski
49
2.7k
Docker and Python
trallard
30
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
6
4.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
38
3.6k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
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