samiadrici-cloud-finops-autoscaling

FinOps : automatiser la mise à l’échelle

FinOps : automatiser la mise à l’échelle 800 400 Samia Drici

Home >> Cloud Computing >> FinOps : automatiser la mise à l’échelle

La scalabilité ou élasticité d’un service désigne la capacité de l’application et de l’infrastructure à fonctionner de manière optimale, quel que soit le niveau de sollicitation.

La mise à l’échelle automatisée ou autoscaling est l’un des principes fondamentaux du cloud. Il permet d’augmenter automatiquement les ressources en cas de besoin et également de libérer celles qui ne sont plus nécessaires ou sous-utilisées. Cela permet ainsi d’optimiser les performances mais également les coûts.

L’approche scale-out

Le cloud et la scalabilité horizontale : le scale-out

Il existe deux approches de mise à l’échelle. L’approche scale-out consiste à ajouter des unités de manière horizontale à un ensemble de ressources. Par exemple, ajouter un serveur à un ensemble de serveurs dans un datacenter ou à un cluster. La plupart des applications Web adoptent le modèle scale-out, en distribuant leurs composants applicatifs, en répartissant et en fédérant leurs données, et en recourant aux architectures orientées services.

Cette approche s’oppose à l’approche scale-up, plus ancienne, qui consiste, elle, à augmenter la capacité du matériel ou des applications en ajoutant des ressources au système physique. Par exemple, ajouter plus de mémoire vive ou de puissance à un serveur, ou plus disques de stockage pour augmenter la mémoire d’un NAS. On parle dans ce second cas de scalabilité verticale. Cette stratégie se heurte à des limites physiques car les machines ne peuvent être améliorées que jusqu’à un certain point.

Sur le Cloud, l’obtention de nouvelles ressources pouvant se faire en quelques minutes et être automatisé, la scalabilité horizontale ou approche scale-out devient la référence. Elle permet le “pay as you grow” : vous n’augmentez vos coûts que lorsque vous avez besoin de plus de ressources. Attention, la notion d’élasticité doit impérativement être intégrée à l’architecture des applications cloud pour que ces dernières fonctionnent de façon optimisée.

Privilégiez les services managés

Le cycle de vie des services managés est toujours géré par le cloud provider, quel que soit le fournisseur. Résilience, mise à l’échelle automatique et opérations ne sont plus à votre charge. La scalabilité automatique des services managés est automatisée nativement et prend en charge de manière optimale les exigences de votre application. Pour les bases de données notamment, les services managés des cloud providers sont souvent dans la majeure partie des cas, la solution à privilégier.

CaaS : orchestrez vos conteneurs

Utilisez des microservices dans des conteneurs chaque fois que vous le pouvez.

L’architecture en microservices permet de développer, déployer et gérer chaque service hébergé dans un conteneur de façon indépendante, sans affecter le fonctionnement des autres services. Ainsi, les microservices vous permettent d’optimiser vos coûts en effectuant un scale-out ciblé de la zone fonctionnelle qui nécessite plus de puissance de traitement ou plus de bande passante réseau pour satisfaire la demande, sans pour autant effectuer un scale-out d’autres zones de l’application qui n’en ont pas besoin.

L’automatisation de la mise à l’échelle des conteneurs est gérée nativement par les orchestrateurs de conteneurs. Les cloud providers proposent tous une distribution de l’orchestrateur de conteneurs Kubernetes.

  • Sur GCP, GKE
  • Sur Azure, AKS
  • Sur AWS, AKS

IaaS : automatisez la mise à l’échelle de vos VM

Les applications hébergées sur des VM hors conteneurs doivent être scalables automatiquement

Si l’architecture de votre application n’est pas en microservices, ce sont les sur les VM que vous devrez effectuer un scale-out lorsque vous aurez besoin de plus de ressources. Vous l’aurez compris, en terme d’optimisation financière, cette solution est moins efficace que la précédente car moins ciblée. Toutefois l’automatisation de la scalabilité vous permettra de n’augmenter vos ressources qu’en cas de besoin et de les réduire à nouveau dès lors qu’elle ne sont plus nécessaires.

Sur GCP, c’est la fonctionnalité autoscaler des groupes d’instances gérés qui vous permet d’automatiser la mise à l’échelle de vos VM. Un groupe d’instances géré est un pool d’instances homogènes créées à partir d’un même modèle d’instance. Un autoscaler ajoute ou supprime des instances d’un groupe d’instances géré. Important : seuls les groupes d’instances gérés peuvent être utilisés avec l’autoscaler.

Sur Azure, c’est Virtual Machines Scale Sets qui vous permet d’automatiser la mise à l’échelle de vos instances. Elle est pilotée par les métriques collectées dans Azure Monitor (utilisation du processeur, utilisation de la mémoire, nombre de threads, longueur de la file d’attente, utilisation du disque…) et s’applique uniquement aux groupes de machines virtuelles identiques (scale sets). Spécifiez un nombre minimal et maximal d’instances à exécuter et ajoutez ou supprimez des machines virtuelles automatiquement en fonction d’un ensemble de règles.