Élasticité et évolutivité
Introduction
Questionner sur la différence entre l’élasticité et l’évolutivité implique souvent d’obtenir des réponses différentes d’une personne à l’autre, parce qu’il y a pas mal de confusions sur ce point.
L’évolutivité est la capacité à répondre à une demande plus forte et qui va le demeurer durablement. Le matériel sous-jacent est amélioré, ses performances sont augmentées, parce que la charge de travail a besoin de plus de puissance. Pour résumer, c’est une demande durable.
L’élasticité reprend une partie de la définition précédente mais la charge de travail ne demande pas durablement un besoin supplémentaire. La réponse matérielle est donnée pour les "besoins du moment" et presque instantanément (le presque instantanément sera expliqué plus loin dans ce chapitre). Les besoins du moment impliquent que cette adaptation se fait vers le haut mais aussi vers le bas. Une excellente façon de se souvenir de ce que représente l’élasticité, c’est de penser élastique. Prenons l’image d’un objet qui va s’adapter à la demande, qu’il soit nécessaire de le tendre ou au contraire de le détendre. Il...
Évolutivité
Lorsque les performances sont durablement insuffisantes, on parle d’évolutivité. Faire évoluer une ressource signifie lui donner plus de performances, donc plus de possibilités de calcul et plus de mémoire ou de stockage. Dans les chapitres et exercices précédents, les ressources créées ont une puissance définie à la création. La machine virtuelle est un modèle B2s d’une capacité de 2 processeurs et 4 Go de mémoire. La base de données a une puissance définie à 5 unités DTU.
Faire évoluer un service, c’est aussi modifier des options de départ pour répondre à un nouveau cas d’usage ou étendre l’usage existant.
Pour reprendre la machine virtuelle unitaire, c’est une opération simple et rapide. Elle est gérée dans le menu de la ressource, une nouvelle taille est sélectionnée et cette opération ne prend que quelques minutes. L’impact est faible à modéré puisqu’il s’agit simplement du redémarrage automatique de la machine qui change de modèle et étend ses performances.
C’est aussi le cas pour une base de données. Pourtant, il y a une différence puisque la base peut être étendue dans une même famille, mais également dans une famille différente. Comme il a été...
Élasticité
L’élasticité en elle-même n’est pas un problème. Dans la liste des avantages du Cloud, cette notion d’élasticité revient sans cesse. Ce n’est donc pas la partie technique qui est mise en avant mais la façon de décider ce qui doit être mis en place.
Quelles métriques et quelles informations sont exploitées pour répondre au mieux à l’accroissement temporaire de l’activité ? Ce qui est déployé, provisionné doit être utilisé.
Comme présenté en introduction, si la nouvelle ressource est disponible alors que le pic d’activité est en train de se réduire et que la demande de ressource n’est plus nécessaire, c’est qu’une mauvaise interprétation du besoin est faite depuis les métriques existantes. Cette remarque est valable dans les deux sens. Déprovisionner une ressource trop rapidement est contre-productif. Sur le schéma suivant, on observe deux courbes décalées dans le temps. La demande est satisfaite trop tard et les performances sont disponibles alors que la demande est en train de disparaître (il n’y a plus besoin de performances supplémentaires).
Exagéré mais finalement pas très loin d’une mauvaise mise en œuvre, ce décalage entre besoins et réponses rend l’élasticité peu efficace.
Courbes décalées, la demande n’est jamais couverte
Cette activité et ces courbes décalées sont exagérées car faites de brusques montées en charge suivies de brusques baisses de l’activité. Dans la pratique, tous les types de courbes ou presque sont possibles. Et il n’y a pas de réponse universelle pour satisfaire à ces besoins.
Il n’est pas inconcevable de devoir faire évoluer une ressource (étendre durablement ses performances et donc traiter cette ressource dans la rubrique évolutivité) si les courbes sont trop chaotiques et que l’élasticité n’offre pas une solution convenable.
Mettre en œuvre cette élasticité, c’est créer un équilibreur de charge et le placer devant un groupe de machines virtuelles...