Le vertical scaling consiste à ajouter des ressources pour étendre les capacités d’un serveur ou d’une infrastructure informatique. Découvrez tout ce que vous devez savoir à ce sujet.
Qu'est-ce que la scalability ou extensibilité ?
La scalability ou extensibilité désigne le nombre de requêtes qu’une application peut prend en charge. Lorsque l’application atteint sa limite, les ressources hardwares sont épuisées et la capacité maximale est atteinte.
Le scaling de ressources permet d’éviter les temps d’indisponibilité et de réduire la latence. Il est possible d’étendre les ressources en ajustant la bande passante réseau, les besoins en puissance de calcul et en mémoire, ou la capacité de stokage des disques durs.
Le concept de scaling est très utilisé dans l’industrie du Data Center, puisqu’il est au cœur des systèmes de gestion de Data Center (DMS). Il permet d’étendre la capacité en fonction des besoins.
Il existe plusieurs approches pour le scaling. On distingue principalement le scaling horizontal du scaling vertical. Dans les deux cas, il s’agit d’ajouter des ressources à l’infrastructure informatique.
La principale différence est que le scaling horizontal ajoute des ressources à l’infrastructure machine, tandis que le scaling vertical ajoute de la puissance à l’infrastructure existante en augmentant le CPU et la RAM des machines existantes.
Qu'est-ce que le scaling vertical ?
Le scaling vertical consiste à ajouter de la puissance de calcul à une infrastructure existante, sans la modifier. Il n’est donc pas nécessaire de modifier le bassin de code d’une application, puisqu’il sera simplement exécuté sur des machines dotées de meilleures caractéristiques.
Le scaling up permet d’accroître la capacité d’une machine unique, et d’accroître ses performances. L’avantage du scaling vertical est qu’il permet aux données de rester sur un nœud unique, et de répartir la charge entre les ressources CPU et RAM.
Le but du scaling vertical est d’ajouter des ressources de CPU, de RAM et de mémoire à un noeud unique pour faire face à un workload en augmentation. Cette méthode permet d’accroître la capacité matérielle ou logicielle existante.
Toutefois, il est important de noter que l’augmentation de capacité d’un serveur est limitée. Sur le Cloud, le scaling vertical consiste à ajouter un serveur ou à remplacer un serveur par un autre plus puissant.
Dans le cas d’un Data Center, le scaling vertical consiste à ajouter des ressources à un nœud unique. Il est possible de modifier la taille d’instance, d’acheter des appareils plus puissants et de remplacer les anciens.
Le scaling vertical est couramment utilisé par les petites et moyennes entreprises. Pour cause, il permet une extension relativement rapide en comparaison avec le scaling horizontal. En revanche, cette approche présente un risque de « downtime » et de panne.
Il est important d’approvisionner correctement les ressources pour éviter ces effets négatifs. Un autre inconvénient du scaling vertical est un coût élevé.
Qu'est-ce que le scaling horizontal ?
Le scaling horizontal consiste à ajouter davantage d’instances de machines, sans améliorer les caractéristiques des machines déjà en place. Le scaling out consiste à partager la puissance de traitement et l’équilibre des charges entre de multiples machines.
Plutôt que d’ajouter des ressources de manière verticale, il s’agit donc d’ajouter davantage de machines. De cette manière, il est possible d’augmenter la puissance et la capacité sans ajouter de ressources aux machines existantes.
L’augmentation de ressources est donc moins limitée qu’avec le scaling vertical. Les experts DevOps privilégient souvent le scaling horizontal, car il est plus simple de l’automatiser de façon dynamique en fonction de la charge pour atteindre des performances optimales.
Comment choisir entre scaling vertical et horizontal ?
Le scaling horizontal et le scaling vertical présentent leurs avantages respectifs. Toutefois, une stratégie de scaling peut alterner entre vertical et horizontal de façon dynamique, en fonction des besoins.
Dans le domaine des Data Centers, de nombreux administrateurs combinent le scaling horizontal et vertical, ou adoptent une stratégie hybride. Cette approche offre plus de flexibilité.
Si vous devez choisir entre scaling vertical et horizontal, prenez le temps de comparer les avantages et les inconvénients de chaque approche afin de discerner la plus adaptée à vos besoins.
Qu'est-ce que l'auto-scaling Cloud ?
L’auto-scaling est une approche automatisée du scaling. Elle permet d’augmenter ou de réduire les ressources de calcul, mémoire et networking en fonction des besoins.
Il s’agit d’une pratique essentielle du Cloud Computing, puisque cette technologie permet aux utilisateurs de ne payer que ce qu’ils utilisent. L’élasticité des ressources est donc au coeur de ce modèle.
L’utilisateur définit un type d’instance virtuelle avec une capacité spécifique, et des attributs de performances prédéfinies. C’est la configuration de lancement.
Une politique d’auto-scaling permet de définir les contraintes de capacité, pour ajouter davantage de ressources en cas de pics de trafic. L’utilisateur peut spécifier la capacité maximale.
L’auto-scaling apporte de nombreux avantages tels que la réduction des coûts, l’automatisation, un niveau de performance stable, une meilleure tolérance aux erreurs, et une disponibilité de service accrue.
Tous les principaux vendeurs de Cloud public proposent des services d’auto-scaling. Par exemple, Amazon Web Services propose les services AWS Auto Scaling et Amazon EC2 Auto Scaling.
De son côté, le Google Compute Engine (GCE) offre des capacités d’auto-scaling pour les utilisateurs de machines virtuelles sur la Google Cloud Platfom. On retrouve aussi le module cluster-autoscaler sur IBM Cloud, et le service Azure AutoScale sur Microsoft Azure.
Comment devenir expert en scaling vertical ?
Pour maîtriser toutes les subtilités du scaling vertical, sur site ou sur le Cloud, vous pouvez choisir les formations DataScientest. À travers nos programmes, vous deviendrez un expert du Cloud Computing et du Machine Learning.
Nos formations permettent d’acquérir toutes les compétences requises pour exercer les métiers de la Data Science : Data Analyst, Data Engineer, Data Scientist, Ingénieur ML…
Une approche innovante de Blended Learning allie apprentissage à distance sur une plateforme coachée, et masterclass collectives. Nos parcours peuvent être effectués en BootCamp ou en Formation Continue.
Vous pouvez financer votre formation DataScientest par le biais du Compte Personnel de Formation ou de l’AIF via Pôle Emploi. N’attendez plus et découvrez tous nos programmes !
Vous savez tout sur le scaling vertical. Découvrez tout ce que vous devez savoir sur le Cloud Computing et sur le DevOps.