L'évolutivité du cloud est la capacité d'un système de cloud computing à augmenter ou à diminuer ses ressources, telles que la puissance de calcul, le stockage et la bande passante réseau, pour répondre à l'évolution de la demande. Il s'agit d'un avantage clé du cloud, car il permet aux entreprises de gérer les augmentations ou les diminutions de charges de travail, sans avoir à repenser l'ensemble de leur infrastructure. Vous pouvez ainsi facilement ajuster vos ressources à mesure que votre entreprise se développe ou que le trafic vers votre application change, et ne payer que ce que vous utilisez.
Bien que les termes "évolutivité" et "élasticité" soient souvent utilisés de manière interchangeable, ils désignent des concepts différents. Les deux termes se rapportent à la capacité d'un système à gérer les variations de la demande, mais ils le font de différentes manières.
L'évolutivité est la capacité d'un système à gérer une charge de travail croissante en ajoutant des ressources au fil du temps. Il s'agit souvent d'une approche planifiée à long terme pour répondre à une demande accrue. Par exemple, une entreprise peut prévoir d'augmenter ses ressources de base de données en prévision d'une grande campagne marketing qui attirera davantage d'utilisateurs. Il s'agit de la capacité d'un système à s'étendre pour répondre à la croissance future.
L'élasticité est la capacité d'un système à ajuster automatiquement et rapidement les ressources en temps réel, en réponse à des changements immédiats de la demande. Imaginez un élastique qui s'étire et se rétracte. Par exemple, un site d'e-commerce peut être conçu pour ajouter automatiquement des serveurs afin de gérer un pic de trafic soudain lors d'un événement comme le Black Friday, puis réduire le nombre de serveurs lorsque le trafic diminue. L'élasticité consiste à ajuster de façon dynamique et à la demande les ressources pour répondre à la demande actuelle, ce qui peut contribuer à optimiser les coûts et les performances.
L'évolutivité du cloud se présente principalement sous deux formes : le scaling vertical et le scaling horizontal. L'approche appropriée dépend de l'architecture de l'application et de la nature de la charge de travail.
Le scaling vertical, également appelé "scaling à la hausse" ou "scaling à la baisse", consiste à ajouter ou à supprimer des ressources sur un seul serveur ou une seule machine. C'est comme si vous mettiez à niveau un ordinateur en lui ajoutant un processeur plus rapide ou plus de RAM. L'objectif est de rendre une machine plus puissante.
Fonctionnement du scaling vertical
Vous pouvez effectuer un scaling vertical en augmentant la capacité d'une machine virtuelle (VM) existante. Par exemple, si votre application s'exécute sur une VM avec un certain nombre de cœurs de processeur et une certaine quantité de mémoire, vous pouvez effectuer un scaling à la hausse en choisissant simplement une VM plus grande avec davantage de ressources. De même, vous pouvez effectuer un scaling à la baisse en passant à une VM plus petite.
Le scaling horizontal, également appelé "scaling horizontal" ou "scaling vertical", consiste à augmenter le nombre de machines ou de nœuds dans un système afin de répartir la charge de travail plus efficacement. C'est comme ajouter des ordinateurs à un réseau pour partager le travail. L'objectif est d'accroître la capacité en utilisant plusieurs machines au lieu de rendre une seule machine plus puissante.
Fonctionnement du scaling horizontal
Le scaling horizontal consiste à exécuter votre application sur plusieurs VM. Un équilibreur de charge répartit ensuite le trafic entrant entre ces machines. À mesure que la demande augmente, vous pouvez ajouter automatiquement ou manuellement des VM au groupe. Lorsque la demande diminue, vous pouvez les supprimer.
Le choix entre le scaling vertical et horizontal dépend de l'architecture de votre application et de vos besoins métier.
Caractéristique | Scaling vertical | Scaling horizontal |
Complexité | Plus simple, car il n'implique qu'une seule machine. | Plus complexe, car il nécessite de gérer plusieurs nœuds et un équilibreur de charge. |
Temps d'arrêt | Peut entraîner une brève interruption de service lors d'une mise à niveau. | Généralement, il n'y a pas de temps d'arrêt, car les nouvelles machines sont ajoutées sans perturber les machines existantes. |
Limite d'évolutivité | Limité par la capacité physique d'une seule machine. | Quasi illimité, car vous pouvez ajouter autant de machines que nécessaire. |
Tolérance aux pannes | Présente un point de défaillance unique : si la machine tombe en panne, l'application n'est plus disponible. | Haute tolérance aux pannes : si une machine tombe en panne, les autres peuvent continuer à fonctionner. |
Caractéristique
Scaling vertical
Scaling horizontal
Complexité
Plus simple, car il n'implique qu'une seule machine.
Plus complexe, car il nécessite de gérer plusieurs nœuds et un équilibreur de charge.
Temps d'arrêt
Peut entraîner une brève interruption de service lors d'une mise à niveau.
Généralement, il n'y a pas de temps d'arrêt, car les nouvelles machines sont ajoutées sans perturber les machines existantes.
Limite d'évolutivité
Limité par la capacité physique d'une seule machine.
Quasi illimité, car vous pouvez ajouter autant de machines que nécessaire.
Tolérance aux pannes
Présente un point de défaillance unique : si la machine tombe en panne, l'application n'est plus disponible.
Haute tolérance aux pannes : si une machine tombe en panne, les autres peuvent continuer à fonctionner.
Pour une amélioration initiale des performances, le scaling vertical peut être la méthode la plus efficace. À mesure que votre application se développe et nécessite une plus grande disponibilité, il peut être plus approprié de passer au scaling horizontal. Une approche hybride, parfois appelée "scaling diagonal", combine également les deux méthodes.
Si de nombreux fournisseurs proposent des fonctionnalités de scaling standards, Google Cloud fournit un ensemble d'outils différenciés et flexibles conçus pour répondre aux besoins évolutifs des applications modernes. Des prédictions basées sur le machine learning aux fonctionnalités hybrides uniques, ces offres peuvent vous aider à optimiser plus efficacement vos performances et vos coûts.
L'autoscaling traditionnel est réactif : il ajoute des ressources uniquement après que la demande a déjà augmenté, ce qui peut parfois entraîner de brèves dégradations des performances. L'autoscaling prédictif de Compute Engine résout ce problème en s'appuyant sur le machine learning pour anticiper la charge future à partir des données historiques. Il peut faire évoluer votre infrastructure en amont des pics de trafic prévus afin que vos applications soient prêtes à répondre aux besoins des utilisateurs dès que la demande se présente.
La plupart des fournisseurs de services cloud vous obligent à choisir parmi des "tailles de t-shirt" prédéfinies pour vos machines virtuelles, ce qui vous amène souvent à payer pour des ressources dont vous n'avez pas besoin. Google Cloud propose des types de machines personnalisés, qui vous permettent d'adapter le nombre exact de processeurs virtuels et la quantité de mémoire à vos charges de travail. Ce contrôle précis vous permet de faire évoluer votre infrastructure verticalement de manière efficace, en adaptant les ressources à la tâche plutôt que l'inverse.
Pour les organisations dotées d'une infrastructure sur site, la gestion des pics de trafic soudains peut s'avérer difficile. L'utilisation temporaire du cloud vous permet de transférer facilement le trafic excédentaire vers le cloud public lorsque votre centre de données privé atteint sa capacité maximale. Les solutions hybrides et multicloud de Google Cloud, telles que GKE Enterprise, offrent la cohérence et la flexibilité nécessaires pour gérer les charges de travail dans différents environnements. Vous pouvez ainsi évoluer indéfiniment, sans abandonner vos investissements existants.
Cloud Run vous permet d'exécuter des applications conteneurisées sans avoir à gérer l'infrastructure sous-jacente. L'une de ses principales caractéristiques est sa capacité à effectuer un scaling à zéro instance. Cela signifie que si aucun trafic n'est enregistré, vous n'utilisez aucune ressource et ne payez rien. Lorsque le trafic revient, Cloud Run peut passer de zéro à des milliers d'instances presque instantanément. C'est donc la solution idéale pour les applications dont les schémas de trafic sont très variables ou imprévisibles.
L'évolutivité ne consiste pas seulement à ajouter des serveurs, mais aussi à y acheminer le trafic de manière efficace. Google Cloud Load Balancing utilise une seule adresse IP anycast mondiale pour répartir le trafic entre vos ressources dans le monde entier. Cela vous permet de faire évoluer votre application à l'échelle mondiale sans configurations DNS complexes ni fragmentation régionale, et de vous assurer que les utilisateurs sont toujours redirigés vers l'instance opérationnelle la plus proche avec de la capacité disponible.
L'évolutivité du cloud peut offrir plusieurs avantages importants qu'il est difficile d'obtenir avec une infrastructure sur site traditionnelle.
Rentabilité
Vous pouvez potentiellement éviter de surprovisionner les ressources et de payer les coûts élevés liés à la maintenance du matériel inactif. Grâce à l'évolutivité du cloud, vous ne payez que les ressources que vous utilisez, ce qui transforme les coûts fixes en coûts variables.
Performances et disponibilité améliorées
En ajustant les ressources de manière dynamique, vos applications peuvent plus facilement maintenir des performances élevées, même en cas de forte demande. Vous évitez ainsi les ralentissements et les interruptions de service qui peuvent frustrer les utilisateurs.
Gérer une demande imprévisible
L'évolutivité vous aide à gérer les pics de trafic inattendus, comme ceux qui résultent d'un post viral sur les réseaux sociaux, sans avoir à ajouter manuellement du matériel.
Agilité de l'entreprise
La capacité à évoluer rapidement vous aide à innover et à répondre plus vite aux changements du marché. Vous pouvez déployer de nouvelles fonctionnalités ou applications sans attendre que l'infrastructure soit configurée.
Google Cloud propose une gamme de services conçus pour vous aider à créer des applications hautement évolutives. Beaucoup de ces services intègrent des fonctionnalités d'autoscaling, ce qui vous évite d'avoir à gérer l'infrastructure sous-jacente.



Commencez à créer des applications sur Google Cloud avec 300 $ de crédits et plus de 20 produits toujours sans frais.