Virtualisation

Article abordant la notion de virtualisation, ces enjeux et comment l'utiliser

Historiquement, les sociétés informatiques n’utilisaient que 25% de la charge possible des serveurs qu’elles possédaient.

C’est un petit peu comme si on loué une maison de 100m2 mais que l’on n’utilisait seulement le salon de 25m2. Les 75m2 restant serait vide et non habité.

La solution, qui peut venir à l’esprit, serait de sous-louer cet espace disponible pour mutualiser les ressources. Et c’est ce qu’on fait les sociétés à cette époque là en mettant en place la virtualisation.

La virtualisation

En bref

Prenons un exemple pour bien comprendre le fonctionnement des serveurs avant la mise en place de cette méthode.

Imaginons une société qui souhaitait monter un serveur sous Windows Server et un serveur sous Linux pour des besoins différents. Et bien, la société était obligé d’avoir 2 serveurs distincts car les environnements n’étaient pas les mêmes. De plus, on ne peut avoir qu’un seul système d’exploitation sur une machine en même temps. (le dualboot permet d’avoir 2 systèmes d’exploitation mais ils ne pourront pas être lancé en même temps, ce sera soit l’un soit l’autre)

Au fur et à mesure du temps, et par rapport à l’utilisation des ressources de ces serveurs, les sociétés ont cherché une solution pour pouvoir partager les ressources d’un serveur et pouvoir installer plusieurs environnements différents sur une même machine.

Il a fallu comprendre comment créer des environnements indépendants les uns des autres, pouvant cohabiter et qui ne rentreront pas en conflit.

C’est ainsi que la virtualisation est née.

Virtualiser c’est permettre à un programme, que ce soit un système d’exploitation ou une application, de pouvoir évoluer dans un environnement cloisonner sur une machine que l’on appelle l’hôte.

Une fois cette barrière dépassée, les sociétés ont été capable de drastiquement baisser le coût des serveurs mais aussi de mettre en place de nouvelles choses comme l’automatisation de la création de machine virtuelle à la volée par exemple.

Pourquoi ?

Même si une partie de la réponse se trouve dans le paragraphe précédent, il existe évidemment beaucoup d’avantages à virtualiser.

Parmi ces derniers, le fait d’être dans un environnement totalement clos et de pouvoir entièrement sauvegarder et cloner une machine virtuelle est un véritable atout.

On peut parler dans ce cas là de sandbox, ou environnement bac à sable.

Prenons votre ordinateur personnel. Nous avons tous déjà essayer d’installer des outils sans réellement savoir si nous allions faire une bêtise ou non. De plus, combien d’entre nous possède une sauvegarde prête à l’emploi au cas où l’ordinateur plante. Je pense connaitre la réponse !

Il en est de même pour un serveur non virtualisé !

L’avantage d’une machine virtuelle, c’est qu’il est possible de faire ce que l’on appelle un instantané, ou plus connu sous le nom snapshot, qui fera une photo à l’instant T de l’état de la machine. Cette sauvegarde est quasiment instantanée et vous permettra de rétablir, ou rollback, simplement dessus si jamais votre machine virtuelle venait à planter.

On peut donc maintenir un serveur Linux au sein d’une machine virtuelle, faire des snapshots régulièrement et installer tout ce que l’on souhaite pour notre serveur. Si jamais quelque chose se passe mal, il suffira d’appuyer sur un simple bouton pour revenir sur une version stable.

Il est évidemment possible de faire la même chose sans virtualiser mais le processus sera tout de même beaucoup plus long !

Un autre avantage va être la capacité de déployer ou cloner rapidement un environnement.

Imaginons maintenant que l’on souhaite avoir plusieurs serveur Linux pour un usage personnel ou professionnel. La encore, sans virtualiser, il est possible d’installer sur plusieurs machines, aider par des scripts, une même configuration.

Faisons le avec cette méthode. Et bien c’est assez simple ! On va créer une première machine avec l’intégralité de la configuration qui nous intéresse. Cette machine va nous servir de référence, on appelle aussi ça un template.

La machine ne fonctionnera jamais mais servira de base que l’on dupliquera à volonté. En quelques clics, on pourra créer un nouveau serveur Linux à partir de notre machine virtuelle template et le déployé. Il ne restera plus qu’à modifier certains paramètres en interne et le tour est joué. Pratique, n’est-ce pas ?

Et c’est ce principe même que l’on retrouve chez beaucoup d’hébergeurs. Prenons le cas d’OVH par exemple !

Lorsque l’on décide de souscrire à un serveur mutualisé ou à un serveur VPS (Serveur Privé Virtuel) et bien OVH, aujourd’hui en tout cas, ne dit pas à un salarié de créer un serveur et de vous envoyer un mail avec les éléments d’authentification.

En effet, tout est automatisé. Lorsque le paiement et la commande sont reçues, tout un processus est lancé pour créer une nouvelle machine virtuelle à partir d’un template, l’associer à votre compte et vous notifier par mail des éléments pour vous connecter. Elle est pas belle la vie ?

En contrepartie, vos machines virtuelles partageront les ressources de la machine qui les héberge, il faut donc faire attention à ne pas saturer ces dernières.

Machine hôte

Lorsque j’ai défini la virtualisation, j’ai parlé d’une machine hôte.

En effet, la virtualisation, si je devais la représenter de manière analogique, c’est un peu comme un carton.

Notre carton possède une certaine dimension qui va nous permettre de ranger des choses. On va donc pouvoir mettre le même volume de choses dans ce carton, par contre, selon la taille des éléments que l’on mettra, d’une fois à l’autre, on ne pourra pas toujours avoir le même nombre.

La dimension d’une carton représente les ressources (processeur, mémoire vive, espace disque) de notre machine hôte, c’est à dire la machine qui va accueillir les machines virtuelles.

Les éléments, eux, représentent tout simplement les machines virtuelles.

Si l’on possède une machine hôte qui possède 10Go de RAM, nous n’allons pas pouvoir allouer plus qu’un total de 10Go de RAM entre les différentes machines virtuelles.

Tu dois te demander ce qui se cache derrière le mot machine hôte ?

Et bien, c’est simplement un ordinateur ou un serveur sur lequel on va installer un logiciel permettant de gérer la représentation virtuelle. Et on appelle ce logiciel un hyperviseur.

Tu peux donc faire de la virtualisation avec ton ordinateur personnel, tu seras simplement limité par les ressources qu’il possède !

Hyperviseur

Il existe différents types d’hyperviseur, je resterais sur le type le plus connu pour les particuliers et qui est utilisables par n’importe qui, à savoir l’hyperviseur de type 2.

L’hyperviseur est un logiciel qui va permettre de créer et gérer les machines virtuelles.

En effet, ton ordinateur ne sait pas nativement gérer les machines virtuelles. Comme je t’expliquais au départ, il n’est pas capable de lancer un deuxième système d’exploitation en même temps que lui, ce n’est pas possible.

Il est donc nécessaire d’avoir un logiciel qui va servir de couche intermédiaire entre les machines virtuelles et le système d’exploitation que tu possèdes.

Ce logiciel va servir de passerelle de communication, c’est lui qui va réceptionner les demandes des machines virtuelles et les faire passer à ton système d’exploitation qui lui-même va les exécuter sur les ressources et c’est lui aussi qui va réceptionner la réponse de ton système d’exploitation et les renvoyer sur la bonne machine virtuelle.

Voici un schéma pour mieux comprendre:

Schéma explicatif du fonctionnement d'un hyperviseur permettant la virtualisation sur un serveur ou un ordinateur

Le logiciel de contrôles représente l’hyperviseur.

On peut voir que celui-ci s’exécute comme n’importe quel logiciel sur une machine. Il apportera cependant une couche d’émulation, la fameuse couche qui va permettre de faire passer les informations de la machine virtuelle vers l’hôte et inversement.

Dans ce schéma, on voit facilement cette notion d’indépendance des machines et de cloisonnement.

Que peut-on virtualiser ?

Depuis le début de cet article, je parle de virtualiser un système d’exploitation car c’est sûrement le type de représentation virtuelle le plus connu et le plus répandu.

Mais il existe plusieurs autres types de représentation virtuelle que je vais te présenter dès maintenant.

Virtualisation de bureau

La virtualisation de bureau est plutôt répandu dans le domaine professionnel.

Le but est tout simplement d’avoir une session sur un système d’exploitation distant.

Prenons un exemple parlant. Tu fais parti d’une société en tant que commercial et tu es amené à faire beaucoup de déplacement. Ton ordinateur te suit partout, cependant, ce dernier est un petit ordinateur très peu puissant, voir une tablette dans certains cas et ne permet pas d’avoir accès aux logiciels de l’entreprise pour des raisons de sécurité.

Ton entreprise, dans ce cas là, va te permettre de te connecter à distance, à ta session Windows sur un serveur au sein de l’entreprise. Cela te permet d’aller n’importe où dans le monde tout en ayant toujours accès à ta session car celle-ci est accessible à distance.

Plus besoin d’avoir des ordinateurs portables sur-alimentés ni d’avoir tous les disques durs et applications de l’entreprise connectés.

Côté maintenance, l’entreprise n’a plus besoin d’avoir accès à ton ordinateur physique mais elle peut simplement modifier le bureau virtuel et lui apporter des améliorations en quelques clics.

Si un nouveau salarié rentre dans l’entreprise, le même système de clone que j’ai expliqué auparavant s’applique, on peut très rapidement créer un nouveau bureau sans avoir à paramétrer de manière complexe une machine physique.

On limite ainsi les coûts d’achat matériel, la maintenance de ces derniers et on augmente la maintenabilité et le confort pour tout le monde.

Virtualisation d’application

Le troisième type de virtualisation est celui des applications.

Là encore, il est plutôt utilisé dans le domaine professionnel.

Son rôle est de mettre à disposition un logiciel de manière virtuel sur un serveur plutôt que sur toutes les machines de l’entreprise.

Les collaborateurs pourront se connecter à travers internet et encore une fois l’entreprise gagnera en maintenance, notamment dans la mise à jour du logiciel.

Il y aura aussi un avantage financier puisqu’une même licence pourra être partagée par plusieurs collaborateurs.

Enfin, comme la virtualisation de bureau, le salarié pourra accéder à l’application depuis n’importe quel support à savoir ordinateur, tablette ou mobile. Plus besoin d’avoir un ordinateur hors norme pour faire tourner un gros logiciel, c’est le serveur qui s’en occupera. Notre support se chargera simplement de l’affichage et de faire passer les informations au serveur !

Pratique pour les commerciaux qui ont besoin d’accéder à un logiciel au sein de l’entreprise, ils n’auront plus besoin d’avoir un ordinateur mais simplement d’une tablette.

Quel hyperviseur utiliser ?

Il est maintenant temps de voir quel logiciel il est possible d’installer pour commencer à virtualiser.

On en dénombre quelques uns, malgré tout, seulement deux sont à retenir pour le particulier.

L’un est le leader incontesté dans son domaine mais payant, c’est VMWare.

L’autre est un challenger passe-partout gratuit, c’est VirtualBox.

Clairement, VMWare sera beaucoup plus complet que VirtualBox, il permettra d’aller beaucoup plus loin dans la gestion des machines virtuelles et on sent

qu’il est clairement orienté professionnel.

Pour la plupart des utilisations qu’un particulier aura, VirtualBox suffira largement avec les outils qu’il met à disposition.

On retrouvera la possibilité de créer des snapshots, de cloner rapidement des machines virtuelles, de pouvoir gérer des adresses ips différentes ou encore de pouvoir monter n’importe quel type de système d’exploitation (Windows, Linux ou Mac)

Conclusion

La virtualisation a été un véritablement tournant technologique et a permis une véritable avancé dans le domaine particulier et professionnel dans l’utilisation des ressources des machines.

Aujourd’hui, la virtualisation est encore très largement répandu, cependant, on entend de plus en plus parler de la conteneurisation.

Cette dernière est une technologie récente qui vient coller parfaitement au mouvement DevOps mais il ne faut pas la voir comme une concurrente directe de la virtualisation. Dans certains cas, elle pourra la remplacer mais dans d’autres, elle viendra simplement la compléter.

Si tu souhaites t’initier à la virtualisation, tu peux rejoindre ma formation qui t’apprendra tous les rudiments pour créer une machine virtuelle de A à Z avec VirtualBox.

Thomas C

Formateur sur des parcours DWWM & CDA, j'ai décidé d'aller plus loin en te partageant mes connaissances en vitesse supersonic 🚀 Prends ta revanche sur la vie !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Formation Développeur Web