Aller au contenu principal

Virtualisation : Un concept présent dans toutes les entreprises

Ma définition


La virtualisation, c’est une technologie qui nous permet de créer plusieurs machines virtuelles sur une même machine physique. Pour faire cela, le concept de virtualisation est possible grâce à un logiciel appelé hyperviseur. Par exemple, cet hyperviseur va nous permettre d’accéder à une machine virtuelle sous la forme d’un onglet sur notre machine physique. Grâce à cela, il est possible de diviser les ressources de la machine sur plusieurs machines virtuelles pour améliorer la répartition de ces dernières. De plus, chaque machine virtuelle peut être complètement isolée de la machine physique, ce qui accroît la sécurité. Elle peut être créée, supprimée, dupliquée, sauvegardée très simplement, ce qui lui permet une grande flexibilité. C’est pour ces différentes raisons que la virtualisation est présente dans toutes les infrastructures d’entreprises. La virtualisation est une notion nécessaire à la gestion d’infrastructure.


Mes éléments de preuve


Au cours de mon stage au sein du Ministère des Armées, j’ai eu pour mission de mettre en place un cluster Kubernetes sans dépendances au réseau Internet. Kubernetes est une technologie permettant de mettre en place des clusters. Un cluster est un regroupement des ressources de plusieurs machines sur lequel nous pouvons déployer des applications. Cette méthode de déploiement des applications permet d’augmenter la fiabilité et le taux de disponibilité des applications se trouvant sur ces derniers. Cette technologie est massivement utilisée dans les entreprises. Néanmoins, le Ministère des Armées a des contraintes de sécurité plus importantes que la moyenne, ce qui engendre des complications. Initialement, des outils comme K3s ont été créés pour créer des clusters Kubernetes facilement et rapidement. Pour y parvenir, tous ces outils ont de nombreuses dépendances importantes se trouvant sur Internet. Il est donc nécessaire d’étudier et de comprendre en profondeur son fonctionnement pour déterminer, rapatrier et mettre en place en interne l’intégralité des dépendances. C’est une tâche longue et minutieuse qui m’a permis d’étudier de nombreuses technologies. Dès le début du projet, j’ai été amené à travailler avec la virtualisation. La virtualisation est une technologie qui nous permet de créer des machines virtuelles sur des machines physiques. Il est par conséquent plus simple de gérer l’utilisation des ressources, l’isolation des ressources pour la sécurité des machines et la fiabilité de ces dernières. Lors de cette mission, j’ai créé un projet Ansible permettant de créer un nombre défini de machines virtuelles dans des machines physiques préalablement configurées. Cette étape était cruciale, car les clusters Kubernetes se reposent sur ces dernières pour être fiables et hautement disponibles. Étant donné que les machines physiques fonctionnaient sur le système d’exploitation Debian 12, j’ai décidé d’utiliser l’outil QEMU pour gérer, créer et supprimer les machines virtuelles. Il s’agit de l’hyperviseur le plus rapide pour Debian 12. Un hyperviseur est un outil qui permet de gérer des machines virtuelles sur des systèmes d’exploitation comme Linux, Windows ou encore MacOS. Grâce à cette mission, j’ai pu acquérir suffisamment d’expérience pour avoir une vision globale d’un système d’information en dehors du réseau Internet en entreprise. De plus, en menant à bien ma mission, j’ai livré un projet avec une documentation complète permettant au Ministère des Armées de déployer un cluster Kubernetes sécurisé, autonome par rapport au réseau Internet et composé du nombre souhaité de machines virtuelles. Un cluster Kubernetes de vingt machines virtuelles se crée en environ une demi-heure. C’est extrêmement rapide étant donné que de nombreuses dépendances sont mises en place automatiquement avant la création du cluster. Finalement, le projet crée un système d’information d’entreprises complet et sécurisé sans utiliser Internet en se basant sur la technologie des machines virtuelles.

J’ai créé une agence de design et de développement web durant mes études à l’ESIEA. Cette dernière a la particularité de fonctionner intégralement en distanciel. Dans ce contexte, j’ai dû trouver une solution pour uniformiser l’environnement de développement des développeurs de l’agence. L’intérêt de l’uniformiser permet d’améliorer l’expérience des développeurs tout en s’assurant qu’il n’y ait pas de conflits de versions entre les différents développeurs travaillant sur un même projet. Elle permet aussi de s’assurer que les erreurs rencontrées sont reproductibles et identiques entre tous les employés. Tous ces avantages permettent à ces derniers de disposer d’un environnement de développement agréable et stable. Pour y parvenir, j’ai utilisé la technologie Vagrant de HashiCorp qui permet de définir et de créer des machines virtuelles sur son propre poste. Grâce à cela, j’ai pu définir, créer, supprimer et gérer à l’infini des machines virtuelles reproductibles et identiques, peu importe le poste de travail utilisé par les développeurs. Grâce à la machine virtuelle qui leur sert d’environnement de développement, les projets de l’agence sont isolés de leur machine et utilisent les dépendances se trouvant dans cette dernière. Les machines virtuelles sont identiques, peu importe si le développeur l’exécute sur un système d’exploitation Linux, MacOS ou Windows. Cette solution a grandement amélioré la stabilité et la productivité de l’équipe, tout en garantissant un environnement de travail fiable et identique pour tous les développeurs.


Mon autocritique


J’utilise que rarement les hyperviseurs directement. En tant qu’administrateur SRE, il nous est souvent mis à disposition des plateformes où l’on peut commander le nombre souhaité de machines virtuelles. Nous n’avons que très rarement accès aux hyperviseurs ou au matériel directement, surtout dans les grosses entreprises. Par conséquent, mon expérience se limite quasiment exclusivement à mon autoformation. Néanmoins, je pense avoir le niveau intermédiaire, car je maitrise la théorie et j’ai déjà pu tester une grande partie des hyperviseurs. Cette compétence est importante, car elle permet de comprendre profondément l’impact et les actions que l’on réalise quand l’on commande des centaines de machines virtuelles pour nos infrastructures. De plus, les petites et moyennes entreprises n’ont que très rarement une équipe dédiée à la gestion des machines physiques et des hyperviseurs. Dans ce cadre, les administrateurs SRE doivent aussi gérer cette partie, il est donc nécessaire de comprendre profondément le concept de virtualisation ainsi que de pouvoir l’appliquer en entreprise. Nous devons aussi être en capacité de conseiller sur quel matériel et quel hyperviseur du marché utiliser pour avoir une infrastructure robuste. Toutes ces raisons font de la virtualisation une notion obligatoire pour tout administrateur SRE. Le principal domaine de la virtualisation qui me manque est l’hyperconvergence. C’est une notion que j’ai survolée et que je n’ai jamais mise en application. Pourtant, il s’agit d’une notion essentielle pour avoir une infrastructure robuste. L’hyperconvergence est une fonctionnalité de certains hyperviseurs qui permet de combiner plusieurs hyperviseurs ensemble pour converger les ressources matérielles sur un même hyperviseur. Les avantages sont nombreux, cela permettrait d’avoir une unique interface d’hyperviseur au lieu d’une interface par machine physique. La tolérance aux pannes se verrait aussi augmenter et l’optimisation/répartition des ressources serait encore plus grande. L’hyperconvergence est donc aussi une notion que je devrais maitriser sur du moyen terme pour pouvoir répondre aux besoins des petites et moyennes entreprises.


Mon évolution dans cette compétence


La virtualisation est un sujet que je dois encore approfondir et pratiquer avant d’avoir un niveau avancé. Pour y parvenir, je compte m’autoformer sur des serveurs personnels que je dispose chez moi. L’objectif est que je puisse répondre aux besoins de tout type d’entreprise à moyen terme. Suivre une formation des fondateurs de l’hyperviseur Proxmox pourrait être un vrai bonus, étant donné qu’il s’agit d’un des hyperviseurs les plus accessibles et robustes pour les entreprises. Il s’agit d’un leader du marché qui me permettrait de répondre aux besoins du plus grand nombre d’entreprises, notamment des petites. La formation « Proxmox VE Bundle » me semble la plus adaptée pour renforcer mes connaissances acquises en autoformation ainsi que pour voir les notions plus avancées comme l’hyperconvergence ou encore la haute disponibilité. Finalement, mon objectif est d’apporter mon expertise à toutes les entreprises qui en ont besoin, peu importe leur taille.