The boring architecture
Comment passer à l’échelle avec un monolithe
120 Tech & Product
50 Developers
15 Product Owners
10 Engineering Managers
10 Project Managers
10 Devops
10 UX /UI
5 Data Analysts / Engineers
3 Security Experts
Vous connaissez tous
La partie émergée de l’iceberg
Aujourd’hui
70k docteurs + 3k/mois
Il y a 3 ans
3k docteurs + 300/mois
Croissance
de la croissance
70 000
docteurs
x2 en 2018
30 millions de
visites / mois
x2 en 2018
Une centaine
d’hôpitaux
x3 en 2018
+20% trafic tous les 2 mois
Base de données
17 000 req/sec
3 TB
Requêtes Web
> 30k utilisateurs simultanés
3 000 req/sec
95th perc < 250 ms
Single Page Application
Async Jobs
Resque Jobs
Web App
Architecture simple
Un unique repository
~100k LOC
Javascript
~150k LOC
Ruby
Primary
Single Page Application
Async Jobs
Resque Jobs
Web App
Load balancing
Secondary
Web App
30 workers
x18 VM
...
Autonomie
Développeur & Équipe
Combattre la complexité
D’abord optimiser, jusqu’à…
Build & Run
Boucles de feedback
courtes
“In God we trust, all others must bring data”
W. Edwards Deming
Court terme vs. long terme
Plan de capacité
> 6 mois : tout va bien
3-6 mois : on y pense
< 3 mois : on prend !
Fine tuning
New Relic
Détection automatique des dégradations
PG Explain analyze
Flamegraph Ruby
VS
2 ans et toujours en débat
à propos de notre recherche full-text
Débit (nombre de requêtes)
Tempsderéponse
Attention
OK
KO
2018 #Attention
2019 #Tout va bien
95th percentile < 250 ms
sans cache applicatif
Une stack front complexe
+
React RxJS
Pas simple de maîtriser
tout le système
Toujours sur le
pont
Parfois on s’approche très près du mur
Comment faire collaborer
tout le monde ?
Difficile d’avoir tout le monde capable de coder
partout
Extrême
Design Emergent
Fine tuning
Sur une architecture simple
Règles d’or
“Et si jamais on doit...”
“Peut-être qu’un jour...”
“C’est plus propre de...”
Respecter nos principes
Fermes sur notre façon d’avancer
pas sur notre destination
Au fait on recrute ;)
https://careers.doctolib.fr/engineering/
Merci

La Duck Conf - "The Boring Architecture"