L'un des avantages du Cloud, c'est l'élasticité, à savoir la capacité à disposer rapidement de ressources supplémentaires ou à les libérer.
Avec
Windows Azure, si en effet l'allocation ou la libération d'instance de machine virtuelle est rapide (de l'ordre d'un quinzaine de minutes), il n'en demeure pas moins que c'est une opération manuelle. Un comble pour le Cloud où l'automatisation est ultra-présente !
Il n'existe donc pas de fonctionnalité ou de service fourni par Microsoft pour adapter automatiquement le nombre d'instances (role Windows Azure) en fonction de la charge, contrairement à la plateforme
Amazon EC2 par exemple (même s'il s'agit de IaaS, la problématique reste la même) où la fonction d'autoscaling est fournie avec la
plateforme (avec des coûts supplémentaires évidemment).
Rappelons le principe de l'autoscaling :
- L'application hébergée dans le Cloud subit une charge, variable, prévisible ou non...
- La charge est évaluée selon un certain nombre de critères à définir : %CPU, Nombre d'IO, Mémoire restante, Nombre de messages en attente dans la file...
- Les règles prenant en compte les critères et leurs seuils sont également à définir pour déterminer les actions de redimensionnement (à la hausse ou à la baisse)
- Le service d'autoscaling collecte, surveille les critères de charge puis exécute automatiquement le redimensionnement en fonction de l'exécution des règles définies.
Dans GAE (Google App Engine), le service Google de collecte s'appelle
CloudWatch.
Et dans l'univers Windows Azure, des éditeurs-tiers proposent différentes solutions :
Et depuis récemment, vous pouvez vous appuyez sur le nouveau composant
Windows Azure Integration Pack - Autoscaling Application Block (WASABi) disponible sur CodePlex et réalisé par l'équipe Microsoft de
Patterns & Practices, qui s'occupe de l'
Entreprise Library.
La documentation de
WASABi se télécharge directement
ici (102 pages !), mais vous préférerez peut-être aborder juste l'essentiel dans
ce post de Michael Collier.
Notez enfin que quelque soit la solution que vous envisagez, vous disposez en standard d'un quota de
20 coeurs d'instance par souscription Windows Azure, limite qui peut être agrandie sur appel et justification auprès du support Microsoft.