On Github kuhess / presentation-webapp-archi
Par Quentin SuireINSA de Rouen, le 02/09/2015
Promo ASI 2011
Ingénieur full-stack chez Viadeo.com
| browser | <-http-> | web app |
architecture client-serveur classiqueLes utilisateurs sont heureux
Le site est disponible
L'entreprise ne perd pas d'argent
Le système peut évoluer
on voit venir :P on peut ajouter des fonctionnalités on peut "grandir"It won't scale if it's not designed to scale.
Even if it's designed to scale, there's going to be pain.
— John Engates, CTO de RackspaceSCHÉMA
Un seul barista, une seule machine => traitement synchroneSCHÉMA
3 baristas
2 chaises pour les clients qui attendent
Une machine qui peut faire 2 cafés à la fois
SCHÉMA
5 baristas
3 chaises pour les clients qui attendent
Une machine qui peut faire 4 cafés à la fois
=> scaling verticalPendant la journée, les effectifs et les machines sont surdimensionnés.
SCHÉMA
1 serveur qui prend les commandes et fait le service
[3 baristas + 1 machine à 2 cafés]
3 chaises pour les clients qui attendent
=> scaling horizontalSCHÉMA
1 ticket est attribué à chaque client
les baristas décident de faire du café ou des gaufres
1 machine à gaufres
1 serveur qui prend les commandes et fait le service
[3 baristas + 1 machine à 2 cafés] * 1 ou 2
plus efficace MAIS c'est compliqué
SCHÉMA
Pas de complexité développements rapides Peu de serveurs faibles coûtsSCHÉMA
Ajout d'un système de réplication
SCHÉMA
Un minimum de 2 serveurs applicatifs
Ajout d'un load balancer (reverse proxy)
SCHÉMA 2
SCHÉMA