Ma définition
La virtualisation est une technologie permettant de partager les ressources matérielles d’un ordinateur afin de créer des machines virtuelles (VM). Cette technologie offre la possibilité à un serveur physique d’héberger plusieurs systèmes d’exploitation et applications, sans qu’il y ait d’interférences entre eux. Dans un contexte professionnel, la virtualisation optimise l’utilisation des ressources, limitant ainsi le gaspillage de « puissance informatique » et réduisant également la quantité de matériel physique nécessaire, ce qui entraîne des économies significatives sur les frais d’équipement et de maintenance.
Aujourd’hui, avec la montée du cloud computing et l’externalisation des infrastructures informatiques, la virtualisation est devenue un pilier dans de nombreux secteurs. Les entreprises y voient un moyen d’adapter leurs infrastructures rapidement en augmentant ou en réduisant les capacités selon la demande. Cette approche s’avère particulièrement avantageuse pour gérer des périodes de forte charge comme les soldes pour les sites de e-commerce par exemple ou pour déployer des environnements de test très rapidement.
La virtualisation est également un moyen de limiter l’empreinte carbone des entreprises en optimisant les ressources matérielles ce qui entraîne une réduction de la consommation énergétique.
1ère anecdote
Durant un projet scolaire, nous avions pour mission de créer une infrastructure comportant un serveur PXE, ce serveur pouvait créer simplement des machines virtuelles via le réseau de l’école, avec la possibilité d’ajouter des paquets ou des logiciels en fonction du système d’exploitation choisi. Nous devions également intégrer un site web pour télécharger des images ISO personnalisées.
L’une de mes tâches a été de réaliser une première machine virtuelle sous Debian Buster. Lors du lancement de l’ISO sur un hyperviseur, un terminal s’ouvrait automatiquement avec un script de personnalisation destiné aux utilisateurs afin de configurer leur machine virtuelle selon leurs besoins. Ce script offrait notamment la possibilité d’installer des paquets tels qu’Apache2, MySQL, et PHPMyAdmin. De plus, j’ai ajouté une fonctionnalité pour changer les mots de passe par défaut, aussi bien pour l’utilisateur que pour le root, ce qui garantissait un environnement sécurisé dès la création de la VM.
En parallèle, j’ai aussi créé une machine virtuelle personnalisée sous Raspbian, à laquelle j’ai intégré le logiciel RaspAP. Cette configuration rendait possible l’ajout et la gestion d’un point d’accès Wi-Fi. J’avais également ajouté sur cette VM une gestion automatique des différentes clés Wi-Fi en fonction de leur référence. Grâce à ma compétence en virtualisation, j’ai pu faire gagner beaucoup de temps aux étudiants qui se retrouvaient souvent à créer des machines virtuelles pour leurs travaux pratiques.
2ème anecdote
Au cours d’un travail pratique scolaire, j’ai pu mettre en place une infrastructure réseau complète, comprenant plusieurs services dont Apache2, FTP, DNS, MySQL ainsi qu’une messagerie mail. L’objectif était de configurer ces services tout en respectant des contraintes de sécurité et d’authentification spécifiques à chaque utilisateur, ce qui permettait d’apprendre à isoler les données et à personnaliser les accès. Chaque service était sur une machine virtuelle distincte.
Le premier défi fut d’adapter au mieux les ressources (CPU, RAM et stockage) en fonction des services. Une fois cela fait, il fallait réaliser la communication entre ces différentes machines virtuelles. Chaque service devait déjà fonctionner sur sa propre machine virtuelle mais également discuter entre eux. Par exemple, les utilisateurs devaient pouvoir accéder au service FTP pour déposer des fichiers, qui devaient ensuite être accessibles sur la page internet d’Apache2 hébergée sur une autre machine virtuelle. J’ai donc dû configurer correctement le réseau interne entre les machines virtuelles pour qu’elles puissent communiquer ensemble.
Evidemment, j’ai eu de nombreuses erreurs durant ce travail pratique mais grâce aux snapshots réguliers que je faisais, j’ai pu revenir à des configurations précédentes m’évitant ainsi de recommencer à zéro s’il y avait un problème que je n’arrivais pas à résoudre. Grâce à cette gestion efficace des machines virtuelles, j’ai pu mener ce travail pratique à bien en garantissant la sécurité de l’infrastructure et une bonne communication entre les services. La gestion des snapshots a été un gros plus de mon côté car beaucoup de mes camarades n’en faisaient pas et perdaient du temps sur la reconfiguration fastidieuse de certains services.
Mon autocritique
Je considère avoir atteint un niveau solide en virtualisation, avec une bonne maîtrise des hyperviseurs comme VMware et VirtualBox. J’ai acquis une bonne compréhension des processus de création, de gestion et de configuration de machines virtuelles. J’arrive à optimiser l’utilisation des ressources système pour être au plus proche du besoin.
Je n’ai que très peu d’expérience concernant la gestion de clusters, c’est dans ce domaine que je dois m’améliorer. Par ailleurs, la virtualisation ne fonctionne pas toujours de la même manière selon les contextes. Par exemple, intégrer une infrastructure cloud dans une petite ou moyenne entreprise ne sera pas la même chose que de réaliser une infrastructure en réseau local pour une mairie. Chaque environnement a ses exigences bien spécifiques en matière de performances et de sécurité.
Dans mon rôle d’Expert en Ingénierie, la virtualisation est une compétence clé car elle offre la possibilité de rapidement tester, déployer et maintenir des environnements de développement et de production. Elle occupe une grande place dans le travail que je peux avoir, car elle offre une solution économique et flexible pour gérer des infrastructures, optimiser les ressources et faciliter l’automatisation. En tant qu’apprenti ingénieur systèmes, j’utilise très souvent la virtualisation, que ce soit pour le déploiement ou la gestion d’infrastructure par exemple.
Ma vitesse d’acquisition dans ce domaine a été très rapide, j’ai tout de suite compris l’intérêt d’une telle technologie, la facilité d’utilisation de VirtualBox a favorisé mon initiation sans difficulté. Avec le recul, je conseille pour un débutant de commencer par des outils de virtualisation (hyperviseurs) simples comme VirtualBox ou VMware Workstation, pour y créer et gérer des machines virtuelles basiques.
Ils facilitent l’acquisition d’une bonne compréhension des concepts fondamentaux, comme l’allocation de ressources et la gestion des snapshots par exemple. Il est également important de ne pas se précipiter vers des solutions plus complexes avant d’avoir une maîtrise solide des bases car on peut vite se retrouver perdu.
Mon évolution dans cette compétence
Dans mon projet personnel et professionnel, la maîtrise des outils de virtualisation est un atout indispensable. À moyen terme, je souhaite approfondir ma maîtrise de vSphere, un hyperviseur très utilisé dans le domaine de la virtualisation des serveurs en entreprise. L’objectif est d’atteindre un niveau d’expertise qui me permette de concevoir et d’optimiser des environnements virtuels assez complexes pour améliorer la sécurité et l’efficacité des infrastructures.
Pour y parvenir, je prévois de suivre une formation avancée sur « VMware vSphere 7, installation, configuration et administration » par Orsys formation, afin de mieux comprendre les différentes fonctions d’automatisation que propose vSphere. Je compte également m’auto-former en approfondissant mes connaissances sur la gestion des ressources pour adapter au mieux les besoins d’une infrastructure, mais également sur la tolérance aux pannes qui est un élément critique au sein d’environnements de production par exemple.