Il est facile de penser que servir un large public nécessite une salle de serveurs de la taille d’un entrepôt. Cependant, ce n’est pas toujours le cas. Si votre site est statique, une petite machine peut gérer des centaines de milliers de visiteurs. Imaginez un simple Celeron à 500 MHz exécutant Linux et Apache. Connectez-vous à une ligne T3 (45 millions de bits par seconde). Ce paramètre gère de très grandes quantités de trafic. Les FAI louent l’intégralité de l’installation pour moins de 1 000 $ par mois.
Mais voici le problème. Les sites les plus populaires ne sont pas petits. Ils heurtèrent rapidement le mur. Une case ne peut pas être agrandie indéfiniment.
“Si vous devez gérer des millions de visiteurs et du contenu dynamique, votre machine va tomber en panne.”
Des limites apparaissent lorsqu’un certain seuil est atteint. Premièrement, vous devrez peut-être prendre en charge des millions de visiteurs chaque jour. Un seul processeur a des limites. La seconde est une panne matérielle. Si l’un de vos serveurs tombe en panne, votre site deviendra sombre jusqu’à ce que vous le remplaciez par un nouveau et que vous le configuriez à nouveau. Troisièmement, les pages volumineuses ou complexes consomment rapidement des ressources. Quatrièmement, si la page doit changer dynamiquement pour chaque utilisateur, le serveur doit travailler plus dur. Enfin, le traitement en arrière-plan ajoute de la latence. La plupart des grands chantiers répondent à tous ces critères et nécessitent donc une infrastructure importante.
Les trois stratégies de mise à l’échelle les plus importantes
Si le budget le permet, les ingénieurs peuvent choisir trois itinéraires principaux pendant les heures de pointe.
- Achetez une énorme machine avec une puissance et une redondance illimitées.
- Répartissez la charge entre de nombreuses machines plus petites.
- Combinez les deux méthodes.
L’approche distribuée est la plus courante dans les grandes applications Web. Vous avez peut-être même vu cela en action sans vous en rendre compte. Si l’URL change légèrement à chaque fois que vous visitez et actualisez le site Web (par exemple « www1.xyz.com » et « www2.xyz.com »), c’est un indice. Ce site utilise une série d’ordinateurs indépendants. Tout le monde utilise un logiciel de serveur Web. Ils utilisent tous la même copie de page de site Web.
La vraie magie réside dans la façon dont les demandes entrantes sont distribuées. Cela peut se produire de deux manières principales.
Équilibrage de charge basé sur DNS
Le système de noms de domaine (DNS) traduit les noms lisibles par l’homme en adresses IP. Certaines configurations DNS utilisent une approche circulaire. Les serveurs DNS parcourent la liste des adresses IP disponibles à chaque fois qu’une demande est reçue.
Cela répartit naturellement la charge. Chaque serveur reçoit une partie du trafic. Ils ne se parlent pas de la charge. Fournissez uniquement du contenu statique ou pré-généré auquel ils ont accès.
Commutateur d’équilibrage de charge
Une approche plus avancée implique un équilibreur de charge. Tout le trafic réseau atteint d’abord le commutateur central. Cette machine fait office d’agent de la circulation. Transfère la demande vers un serveur disponible.
Le commutateur ne se contente pas de deviner. Vérifiez chaque serveur pour voir lequel est le moins occupé. Cela garantit une répartition équitable du travail. HowStuffWorks a adopté cette approche. L’équilibreur de charge de l’entreprise répartit le trafic entre trois serveurs Web différents. Si l’un d’eux échoue, les deux autres maintiendront le site en vie. Aucun temps d’arrêt pour l’utilisateur.
Cette configuration redondante présente des avantages évidents. La panne d’une machine ne fait pas planter l’ensemble du site. Vous pouvez également augmenter la capacité par étapes. Besoin de plus de puissance ? Ajoutez une autre boîte. C’est flexible.
Il y a un inconvénient. Ces machines distribuées s’appuient encore souvent sur des bases de données centralisées pour le traitement des transactions. À mesure que le trafic augmente, cette base de données est devenue un goulot d’étranglement.
Une énorme machine
Tout le monde ne distribue pas. TerraServer de Microsoft emprunte la voie de la « grande machine unique ».
TerraServer stocke des téraoctets d’images satellite. Il traite des millions de demandes pour ces données. il utilise un énorme matériel de classe entreprise. Prenez le Digital AlphaServer 8400 par exemple. Il dispose de huit processeurs 440 MHz 64 bits. Contient 10 Go de RAM vérifiée et corrigée.
Cela représente beaucoup de puissance dans un seul châssis. Cela évite la complexité de la coordination réseau entre plusieurs serveurs. Mais c’est cher. Si un AlphaServer tombe en panne, le service s’arrête.
Le choix dépend de votre modèle économique. Le contenu statique privilégie les configurations simples. Les transactions dynamiques exigent de la redondance. Les applications gourmandes en données peuvent nécessiter de la puissance brute.
Si vous souhaitez en savoir plus, il existe de nombreuses ressources. Le W3C fixe les normes. Microsoft a publié un livre blanc sur l’équilibrage de charge de Windows NT. IBM propose un livre rouge sur l’équilibrage des serveurs. Un article sur les serveurs Web collaboratifs distribués décrit cette théorie.
Mais la réalité fondamentale reste simple. Échelles de trafic. Limites matérielles. Les ingénieurs construisent un pont entre les deux. La façon dont vous le créez dépend de l’utilisation réelle de votre site Web.
