Virtualiser même un serveur unique
Je trouve très courant, dans les conversations portant sur la virtualisation, que le concept de consolidation – qui, dans le contexte de la virtualisation de serveurs, désigne le fait de placer plusieurs charges de travail autrefois physiques sur une seule machine physique, la séparation étant assurée par les barrières des machines virtuelles – soit traité comme le principe central et la fonctionnalité fondamentale de la virtualisation. Sans aucun doute, la consolidation des charges de travail représente une formidable opportunité avec la virtualisation, mais il est extrêmement important de ne pas confondre la valeur de la virtualisation et la valeur de la consolidation. J'ai trop souvent constaté que la consolidation est perçue comme la valeur clé de la virtualisation et sa principale justification, mais ce n'est pas le cas. La consolidation est une fonctionnalité bonus, mais elle ne devrait jamais être nécessaire pour justifier la virtualisation. La virtualisation devrait être une conclusion presque acquise d'avance, tandis que la consolidation doit être évaluée et, bien souvent, ne serait pas utilisée. Le fait que des charges de travail ne doivent pas être consolidées ne devrait jamais conduire à croire que ces charges de travail ne devraient pas être virtuelles. J'aimerais explorer l'espace de décision de la virtualisation pour voir comment nous devrions aborder ce point.
La virtualisation devrait être pensée comme une abstraction du matériel, car c'est véritablement ce qu'elle est, au sens pratique. La virtualisation encapsule le matériel et présente un ensemble matériel prévisible et immaculé aux systèmes d'exploitation invités. Cela peut sembler ajouter de la complication mais, en réalité, cela simplifie en fait bien des choses, tant pour les concepteurs de systèmes d'exploitation et de pilotes que pour les praticiens de l'informatique qui conçoivent des systèmes. C'est précisément parce que les ordinateurs, les périphériques informatiques et les systèmes d'exploitation sont des bêtes si complexes que cette couche supplémentaire finit en réalité par retirer de la complexité au système en créant des interfaces standard. De la normalisation naît la simplicité.
Ce concept exactement identique consistant à présenter une machine virtuelle standard à une couche logicielle existe également dans d'autres domaines de l'informatique, comme dans la manière dont de nombreux langages de programmation sont implémentés. Il s'agit d'un modèle informatique très mature et fiable.
L'abstraction du matériel et la stabilité qu'elle apporte suffisent à elles seules à justifier une normalisation sur la virtualisation de manière généralisée, mais la nature pratique de l'abstraction du matériel, telle qu'elle est implémentée par tous les produits de virtualisation d'entreprise aujourd'hui à notre disposition, nous apporte des fonctionnalités encore plus importantes. Certes, la plupart des avantages de la virtualisation peuvent être obtenus d'une autre manière, mais rarement aussi complètement, aussi fiablement, aussi simplement ou aussi gratuitement qu'avec la virtualisation.
Le plus grand ensemble de fonctionnalités supplémentaires provient généralement de l'abstraction du stockage et de la mémoire, permettant la capacité de réaliser un instantané du stockage ou même de l'état d'exécution complet d'une machine virtuelle, c'est-à-dire de prendre une image du système en cours d'exécution et de la stocker dans un fichier. Cette capacité mène à de nombreuses possibilités très importantes, telles que la capacité de prendre un instantané du système avant d'installer un nouveau logiciel, de modifier des configurations ou d'appliquer des correctifs ; permettant des retours en arrière extrêmement rapides en cas de problème. Cette fonctionnalité en apparence mineure peut apporter une grande tranquillité d'esprit et une fiabilité globale du système. Elle rend également les tests de fonctionnalités, les retours en arrière ou les tests répétés très faciles dans les environnements hors production.
La capacité de réaliser un instantané depuis la couche d'abstraction mène aussi à la capacité de réaliser des “sauvegardes basées sur l'image”, c'est-à-dire des sauvegardes prises via le mécanisme d'instantané au niveau du périphérique en mode bloc plutôt que depuis la couche du système de fichiers du système d'exploitation. Cela permet des mécanismes de sauvegarde indépendants du système d'exploitation et des sauvegardes qui incluent l'intégralité du pool de stockage du système en une seule fois. Les sauvegardes d'image permettent ce que l'on appelait traditionnellement des “restaurations bare metal” – le système entier peut être restauré dans un état pleinement opérationnel sans interaction supplémentaire – facilement et très rapidement. Tous les fabricants d'hyperviseurs n'incluent pas cette capacité, ou ne l'incluent pas à des niveaux équivalents, de sorte que, bien qu'il s'agisse conceptuellement d'une fonctionnalité majeure, il est essentiel de considérer au cas par cas la mesure dans laquelle cette fonctionnalité existe ou est sous licence (notamment, HyperV l'inclut pleinement, XenServer l'inclut partiellement et VMware vSphere ne l'inclut qu'avec des niveaux de licence non gratuits). Lorsqu'elles sont disponibles, les sauvegardes basées sur l'image permettent une récupération extrêmement rapide, à des vitesses impensables avec d'autres méthodologies de sauvegarde. Restaurer des systèmes en quelques minutes est possible, du sinistre à la récupération !
La capacité de traiter les machines virtuelles comme des fichiers (du moins lorsqu'elles ne sont pas en cours d'exécution active) procure des avantages supplémentaires qui sont liés aux avantages de sauvegarde évoqués ci-dessus. À savoir la capacité de migrer rapidement et facilement entre des hôtes physiques et même de se déplacer entre du matériel disparate. Traditionnellement, les mises à niveau ou les remplacements de matériel signifiaient un processus de migration compliqué, semé d'embûches. Avec la virtualisation moderne, passer du matériel existant à du nouveau matériel peut être un processus fiable et non destructif, avec des options de repli sûres et un temps d'arrêt faible, voire possiblement nul ! Des tâches peu fréquentes mais autrefois très risquées peuvent souvent devenir triviales aujourd'hui.
Souvent, c'est là le véritable avantage de la virtualisation et des mécanismes d'abstraction. Ce n'est pas, nécessairement, d'améliorer les opérations quotidiennes d'un système, mais de réduire le risque et d'offrir de la flexibilité et des options pour l'avenir. Se préparer à des inconnues qui sont soit imprévisibles, soit tout simplement ignorées dans la plupart des situations courantes. Une telle planification est rarement effectuée, au grand dam des services informatiques laissés face à des mises à niveau difficiles et dangereuses qui auraient pu être aisément atténuées.
Il existe de nombreuses fonctionnalités de la virtualisation qui ne s'appliquent qu'à des scénarios particuliers. De nombreux produits de virtualisation incluent des outils de migration à chaud pour déplacer des charges de travail en cours d'exécution entre des hôtes, ou possiblement même entre des périphériques de stockage, sans temps d'arrêt. Des options de haute disponibilité et de tolérance aux pannes sont souvent disponibles, permettant à certaines charges de travail de récupérer rapidement, voire de manière transparente, d'une défaillance matérielle du système, en passant du matériel défaillant à du matériel redondant sans intervention de l'utilisateur. Bien qu'il s'agisse davantage d'un avantage de niche et qu'il ne faille certainement pas l'inclure dans une liste des raisons pour lesquelles “presque toutes les charges de travail” devraient être virtuelles, cela mérite d'être noté comme un exemple emblématique de fonctionnalités souvent disponibles et qui pourraient être ajoutées ultérieurement si un besoin venait à se présenter, à condition que la virtualisation soit utilisée dès le départ. Sinon, une migration vers la virtualisation serait nécessaire avant de pouvoir tirer parti de telles fonctionnalités.
Les produits de virtualisation sont généralement livrés avec de nombreuses fonctionnalités supplémentaires qui n'importent que dans certains cas. Un grand nombre d'entre elles relèvent d'un vaste ensemble “en cas de besoin futur.” La plus importante de toutes est peut-être le concept de consolidation, comme je l'avais mentionné au début de cet article. Comme d'autres fonctionnalités avancées telles que la haute disponibilité, la consolidation n'est pas une valeur centrale de la virtualisation mais est souvent confondue avec elle. Les charges de travail qui n'ont pas l'intention de tirer parti de la haute disponibilité ou de la consolidation devraient tout de même être virtualisées – sans aucun doute. Mais ces fonctionnalités sont si potentiellement précieuses en tant qu'options futures, même pour des scénarios où elles ne seront pas utilisées aujourd'hui, qu'elles méritent d'être mentionnées malgré tout.
La consolidation peut être extrêmement précieuse et l'on comprend aisément pourquoi tant de gens supposent simplement qu'elle sera utilisée, tant elle est si souvent si précieuse. La disponibilité de celle-ci, une fois qu'une infrastructure est en place, est un point clé de flexibilité pour gérer les inconnues des charges de travail futures. Même lorsque la consolidation est totalement inutile aujourd'hui, il y a de très fortes chances, même dans la plus petite des entreprises, qu'elle se révèle utile à un moment indéterminé dans le futur. La virtualisation nous offre une protection contre l'inconnu en préparant nos systèmes à une flexibilité maximale. L'un des aspects les plus importants de toute décision informatique est la gestion et la réduction du risque. La virtualisation fait cela.
La virtualisation est affaire de stabilité, de flexibilité, de normalisation, de facilité de gestion et de respect des bonnes pratiques. Aucun produit majeur de virtualisation d'entreprise n'est indisponible, au moins sous une forme ou une autre, gratuitement aujourd'hui. Tout achat exigerait, bien entendu, une analyse minutieuse de la valeur par rapport à la dépense. Cependant, avec d'excellentes options d'entreprise disponibles gratuitement pour les quatre principales gammes de produits actuelles dans ce domaine (Xen, KVM, HyperV et VMware vSphere), nous n'avons nul besoin d'une telle analyse. Nous n'avons qu'à démontrer que l'implémentation n'est pas un facteur négatif.
Ce qui rend la prise de décision facile, c'est que lorsque nous considérons le cas nominal – le strict minimum que fournit toute virtualisation d'entreprise, à savoir les avantages de coût nul, d'abstraction, d'encapsulation et liés au stockage – nous constatons que nous disposons d'un petit avantage dans pratiquement tous les cas, d'aucun inconvénient mesurable et d'un avantage potentiel très important dans les domaines de la flexibilité et de la protection contre les besoins futurs. Cela nous laisse avec un gain manifeste et une décision simple : la virtualisation, étant gratuite et sans inconvénient notable en soi, devrait être utilisée dans tous les cas où elle peut l'être (ce qui, à ce stade, correspond à pratiquement toutes les charges de travail). Les fonctionnalités supplémentaires, non essentielles, comme la consolidation et la haute disponibilité, devraient être évaluées séparément et uniquement après que la décision de virtualiser a déjà été consolidée. Aucune absence de besoin de ces fonctionnalités étendues ne suggère, de quelque manière que ce soit, que la virtualisation ne devrait pas être choisie sur la base de ses propres mérites.
Ce n'est là qu'une explication des bonnes pratiques existantes du secteur, qui consistent depuis de nombreuses années à virtualiser toutes les charges de travail potentielles. Ce n'est ni nouveau ni un changement de cap. Le simple fait que la virtualisation généralisée soit une bonne pratique du secteur depuis près d'une décennie montre à quel point il s'agit d'une méthodologie éprouvée et acceptée. Il y aura toujours des charges de travail qui, pour une raison ou une autre, ne peuvent tout simplement pas être virtualisées, mais celles-ci devraient être très rares et exceptionnelles et devraient déclencher un examen approfondi pour découvrir pourquoi il en est ainsi.
Lorsqu'il s'agit de décider de virtualiser ou non, l'approche devrait toujours consister à supposer que la virtualisation est une conclusion acquise d'avance et à ne s'en écarter que si une raison technique solide et défendable rend cela impossible. Presque tous les arguments contre la virtualisation proviennent d'une position d'incompréhension, avec la croyance que la consolidation, la haute disponibilité, le stockage externe, le coût des licences et d'autres concepts vaguement liés ou sans rapport sont en quelque sorte intrinsèques à la virtualisation. Ils ne le sont pas et ne devraient pas être inclus dans une décision de déploiement virtualisé par rapport à physique. Ils sont distincts et devraient être évalués comme des options distinctes.
Il convient de noter que, parce que la consolidation ne fait pas partie de notre matrice de décision dans la création de la valeur de base de la virtualisation, toutes les raisons que nous invoquons s'appliquent de manière égale aux déploiements un à un (c'est-à-dire une seule machine virtuelle sur un seul périphérique physique) comme aux charges de travail consolidées (c'est-à-dire plusieurs machines virtuelles sur un seul périphérique physique). Il n'existe aucune situation dans laquelle une charge de travail serait “trop petite” pour être virtualisée. Si tant est qu'il y ait une exception, c'est l'inverse : seules les plus grandes charges de travail, généralement d'une sensibilité extrême à la latence, où un scénario de niche de non-virtualisation existe encore en tant que cas limite, mais même ces cas disparaissent rapidement à mesure que les améliorations de latence dans la virtualisation et les capacités totales de charge de travail progressent. Ces cas sont si rares et s'évanouissent si vite que prendre même le temps de les mentionner est probablement peu avisé, car cela laisse entendre que les exceptions, fondées sur des besoins de capacité, sont suffisamment courantes pour qu'il vaille la peine de les évaluer, ce qui n'est pas le cas, surtout pas sur le marché des PME. Plus la charge de travail est petite, plus elle est idéale pour la virtualisation, mais ce n'est là que pour renforcer le fait que les petites entreprises, avec des charges de travail uniques, sont le cas le plus idéal pour la virtualisation de manière généralisée plutôt qu'une exception aux bonnes pratiques, et non pour suggérer que les grandes entreprises devraient elles-mêmes rechercher des exceptions.

