Vertical et Horizontal Scaling : quelle stratégie choisir ?

5 min
90
0
0
Publié le


Dans le domaine de l’IT, la capacité à s'adapter et à évoluer en fonction des demandes changeantes est un impératif absolu. Que ce soit une petite start-up en croissance rapide ou une grande entreprise gérant des milliers de demandes par seconde, la capacité d’une infrastructure à s'adapter et à évoluer est fondamentale pour maintenir un niveau de performance optimal. Cette adaptation, souvent désignée par le terme « scaling », peut faire la différence entre une application fluide et une qui est constamment en panne ou ralentie par des problèmes de performance.

Le vertical scaling

Le vertical scaling, aussi appelé « scaling up », consiste à augmenter la capacité d'un seul système en ajoutant davantage de ressources à la machine existante. Cela peut impliquer l'ajout de mémoire (RAM), l'augmentation de l'espace de stockage, l'amélioration de la capacité du processeur (CPU), ou tout autre élément qui augmente la puissance de traitement globale de l’unité considérée. 

Avantages et inconvénients du vertical scaling

Parmi les avantages du vertical scaling, citons la simplicité de sa mise en œuvre. Comme il ne nécessite pas d'ajouter de nouvelles machines, il n'y a pas besoin de reconfigurer le réseau ni de mettre en place une logique complexe de load balancing. 

Pour autant, le vertical scaling a ses limites. D'une part, il existe une limite physique à la quantité de ressources qu’il est possible d’ajouter à une seule machine. De plus, à mesure que les ressources augmentent, le coût de ces ressources tend à augmenter de manière exponentielle. Enfin, avec le vertical scaling, si la machine unique tombe en panne, l'ensemble du service peut être interrompu, ce qui pose un risque important en termes de disponibilité et de résilience.

Exemples pratiques de vertical scaling

Un exemple de vertical scaling pourrait être une base de données sur un serveur qui a commencé à ralentir en raison d'une charge croissante. Pour résoudre ce problème, on pourrait imaginer augmenter la RAM du serveur pour permettre à la BDD de gérer plus de requêtes simultanées. Un autre exemple pourrait être un serveur web qui peine à gérer le trafic entrant. Dans ce cas, vous pourriez ajouter des cœurs de CPU supplémentaires pour augmenter la capacité de traitement du serveur.

L'Horizontal Scaling

L'horizontal scaling, également appelé « scaling out », implique l'ajout de plus de machines à un pool de ressources existant pour distribuer efficacement le workload. Au lieu d'augmenter la capacité d'une seule machine, comme dans le vertical scaling, l'horizontal scaling répartit la charge sur plusieurs machines, chaque machine traitant une partie de la charge totale. 

Avantages et inconvénients de l'horizontal scaling

L'un des principaux avantages de l'horizontal scaling est sa capacité à fournir une haute disponibilité. Puisque la charge est répartie sur plusieurs machines, si l'une d'elles tombe en panne, les autres peuvent prendre le relais et continuer à traiter les demandes. De plus, l'horizontal scaling peut souvent être réalisé en ajoutant des machines moins coûteuses, plutôt que d'investir dans du matériel haut de gamme comme pour le vertical scaling.

Cependant, l'horizontal scaling présente des défis en termes de complexité de gestion et de coordination entre les machines. Par ailleurs, il nécessite des technologies supplémentaires pour la répartition de la charge et la synchronisation des données. De plus, toutes les applications ne sont pas conçues pour tirer parti de l'horizontal scaling, en particulier celles qui nécessitent une cohérence stricte des données.

Exemples pratiques de horizontal scaling

Un exemple d’horizontal scaling pourrait être une application web populaire qui reçoit un nombre croissant de demandes. Pour gérer cette charge croissante, on pourrait ajouter davantage de serveurs au cluster, chacun traitant une partie des demandes entrantes. Dans un autre scénario, il serait possible d’utiliser l'horizontal scaling pour gérer des pics de charge temporaires, par exemple en ajoutant des serveurs supplémentaires à un cluster de calcul lors d'une opération de traitement intensif.

Comparaison entre le vertical et l'horizontal scaling

En pratique, le choix entre le vertical et l'horizontal scaling dépend de plusieurs facteurs :

  • Coût. Le vertical scaling nécessite d’avoir recours à du matériel onéreux. Quant à lui, l'horizontal scaling nécessite une plus grande quantité de matériel moins coûteux, mais les coûts de gestion et de maintenance afférents peuvent s'additionner.

  • Performance. Le vertical scaling améliore les performances pour les applications qui ne sont pas conçues pour être distribuées sur plusieurs systèmes. En revanche, pour les applications à forte charge ou les applications qui doivent être hautement disponibles, l'horizontal scaling offre de meilleures performances.

  • Maintenance. Le vertical scaling peut s’avérer plus simple à mettre en œuvre et à maintenir, car il ne nécessite pas la gestion de multiples systèmes. L'horizontal scaling, en revanche, nécessite souvent une gestion plus complexe et des outils spécialisés pour la répartition de la charge et la synchronisation des données.

  • Disponibilité et résilience. Ici, l'horizontal scaling autorise une meilleure disponibilité et résilience, car la panne d'une seule machine n'affecte pas l'ensemble du service. À contrario, si la machine unique tombe en panne, cela entraîne une interruption du service avec le vertical scaling.

Crédit image : Cockroach Labs

Utilisation hybride du vertical et de l'horizontal scaling

Dans de nombreux cas, une approche combinée de vertical et d'horizontal scaling se révèle être la meilleure solution. 

Prenons l'exemple d'un e-commerce qui doit gérer un volume croissant de transactions. Initialement, il pourrait augmenter la capacité de ses serveurs (vertical scaling) pour gérer l'augmentation du trafic. Cependant, à mesure que l'entreprise grandit, elle pourrait atteindre les limites du vertical scaling. À ce stade, l'entreprise pourrait commencer à ajouter plus de serveurs et à répartir la charge entre eux (horizontal scaling) pour continuer à gérer le volume croissant de transactions. Cette approche hybride permettrait à l'entreprise de scaler tout en maintenant des performances élevées et une disponibilité élevée, eu égard aux transactions croissantes.

On le voit, que ce soit le vertical scaling ou l'horizontal scaling, chaque approche présente des avantages uniques et des défis spécifiques. Le vertical scaling, par son approche directe et simple, peut souvent être un bon point de départ, surtout pour les petites entreprises ou pour les applications qui ne sont pas conçues pour être distribuées. Cependant, à mesure que les exigences de charge et de disponibilité augmentent, l'horizontal scaling peut offrir une voie plus flexible et résiliente pour l'évolutivité.


Romain Frutos, rédacteur passionné par l’IT et les nouvelles technologies !

Inscription à la newsletter

Si vous êtes passioné.e d'IT, vous allez adorer notre newsletter

Politique de confidentialité

Boostez vos projets IT

Les meilleures missions et offres d’emploi sont chez Free-Work

Continuez votre lecture autour des sujets :

Commentaire

Dans la même catégorie

Au service des talents IT

Free-Work est une plateforme qui s'adresse à tous les professionnels des métiers de l'informatique.

Ses contenus et son jobboard IT sont mis à disposition 100% gratuitement pour les indépendants et les salariés du secteur.

Free-workers
Ressources
A propos
Espace recruteurs
2024 © Free-Work / AGSI SAS
Suivez-nous