Comment les géants du Web (Instagram, Twitter, etc...) font l'exploit de supporter + d'1 million d'utilisateurs/jour tout en opérant de façon optimale ?
Je t'explique comment scaler une application Web de 0 à plusieurs millions d'utilisateurs
THREAD (Avancé) ⬇️
Je t'explique comment scaler une application Web de 0 à plusieurs millions d'utilisateurs
THREAD (Avancé) ⬇️
Mais que se passerait t-il si le site connaissait un succes fulgurant avec un nombre d'utilisateurs augmentant de façon exponentielle ?
=> Le serveur sera "débordé" car incapable de gérer toutes les connexions (donc fortes latences, voir indisponibilité totale du site web)
=> Le serveur sera "débordé" car incapable de gérer toutes les connexions (donc fortes latences, voir indisponibilité totale du site web)
2 solutions:
1. Augmenter la puissance de calcul du serveur (= scaling vertical) en ajoutant de la RAM ou en augmentant la puissance du CPU.
+: Simple
-: Impossible augmenter la puissance indéfiniment (plafond). Système non résilient en cas de panne (= single point of failure)
1. Augmenter la puissance de calcul du serveur (= scaling vertical) en ajoutant de la RAM ou en augmentant la puissance du CPU.
+: Simple
-: Impossible augmenter la puissance indéfiniment (plafond). Système non résilient en cas de panne (= single point of failure)
2. Ajouter plus de serveurs au pool de serveurs existant (= scaling horizontal)
+: Permet de scaler à l'infini en fonction de ses besoins. Système plus tolérant aux pannes
-: Plus complexe à implémenter et à gérer (synchro, gestion de l'infra...)
+: Permet de scaler à l'infini en fonction de ses besoins. Système plus tolérant aux pannes
-: Plus complexe à implémenter et à gérer (synchro, gestion de l'infra...)
Si le serveur 1 tombe, le trafic est redirigé vers le serveur 2. Cela permettra au système de fonctionner normalement.
Si le trafic augmente, on peut ajouter de nouveaux serveurs au pool en fonction des besoins, et le load balancer gèrera les redirections automatiquement
Si le trafic augmente, on peut ajouter de nouveaux serveurs au pool en fonction des besoins, et le load balancer gèrera les redirections automatiquement
Qui dit + d'utilisateurs dit + de trafic en base de données: Si le serveur de base de données tombe, toutes nos données sont perdues. Comment palier à ce problème ?
Enfin, on peut ajouter des composants pour:
- Monitorer les logs du système afin d'identifier les pannes/erreurs
- Monitorer certaines métriques (CPU, RAM, nb de users quotidiens...) pour avoir une vision sur la santé du système
- Monitorer les logs du système afin d'identifier les pannes/erreurs
- Monitorer certaines métriques (CPU, RAM, nb de users quotidiens...) pour avoir une vision sur la santé du système
Sources:
- System Design Interview (Alex XU)
- Designing data intensive applications (Martin Kleppman)
- System Design Interview (Alex XU)
- Designing data intensive applications (Martin Kleppman)
N'oublie pas de retweet + like ce thread pour que ça puisse aider le maximum de personnes !
Follow moi: @CoderNoLimit pour ne rien rater. Si tu as la moindre question, mets-la en commentaire ou contacte-moi directement en DM 😃
Follow moi: @CoderNoLimit pour ne rien rater. Si tu as la moindre question, mets-la en commentaire ou contacte-moi directement en DM 😃
Si la programmation t’intéresse, abonne-toi à ma chaine. Il y a le meilleur contenu du Youtube Game francophone sur la programmation et je compte publier du très lourd:
youtube.com
youtube.com
جاري تحميل الاقتراحات...