https://tssr.nolan.ovh by Flo.
#30/01/2025

Une infra. web solide pour un frontend web

Cet article est basé sur la video de Cocadmin - Comment faire une infra prête pour la prod.

/!\ Attention, j'ai pu me tromper dans la compréhension et cet article peut contenir des erreurs.

Une infra de base

...
Une infrastructure de base pour un serveur web.

On constate un ralentissement du serveur web. On peut effectuer un scaling verticale en augmentant la puissance du serveur. Mais cela peut vite avoir un coût élevé.

On peut mettre en place un scaling horizontale, en ajoutant plusieurs serveurs web via un Load Balancer.

Ajouter un Load Balancer

...
Un load balancer permet de repartir la charge sur plusieurs serveurs.

Le load balancer peut via différents algorithme (ex: Round Robin) répartir au mieux la charge. Par exemple, si un serveur web est plus lent que d'autres, lui envoyer moins requêtes à traiter.

On détecte une autre problématique "Single Point of Failure", ici si le Load Balancer plante, le service n'est plus disponible.

Ajouter du DNS

...
Le DNS permet d'utiliser plusieurs Load Balancer.

Le DNS (Domain Name System) permet d'attribuer des IP aux Load Balancer, on peut ainsi répartir les requêtes utilisateurs sur divers Load Balancer.

Les applications disponibles sur les serveurs web sont dite stateless, elles ne dépendent pas l'une de l'autre.

Contrairement, à la DB qui elle est stateful, les données sont "synchronisées". Ce qui complexifie le scaling.

Le Sharding

Dans le cas de base de données No Sql, on peut ajouter plusieurs serveurs de base de données.

Pour des base de données SQL, on va utiliser une base de données principale (master) pour l'écriture. Et mettre en place, plusieurs serveurs de base de données en mode lecture seule.
C'est efficace, car en général, pour un service web, les requêtes d'écritures sont peux nombreuses comparées aux requêtes de lecture.

...
Le sharding.