Table des matières
Si vous travaillez dans le secteur des logiciels ou dans les environs, vous avez probablement entendu parler des machines virtuelles. Si ce n'est pas le cas, vous vous demandez peut-être de quoi il s'agit et à quoi elles servent.
En tant qu'ingénieur logiciel, j'utilise quotidiennement des machines virtuelles. Ce sont des outils puissants pour le développement de logiciels, mais elles ont également d'autres usages. Également connues sous le nom de VM, de nombreuses entreprises les utilisent en raison de leur flexibilité, de leur fiabilité et de leur rentabilité ; elles permettent également d'éviter les catastrophes dues à l'emballement des tests logiciels.
Voyons ce que sont les machines virtuelles et pourquoi elles sont utilisées.
Qu'est-ce qu'une machine virtuelle ?
Une machine virtuelle est une instance d'un système d'exploitation (OS) tel que Windows, Mac OS ou Linux fonctionnant dans l'OS principal d'un ordinateur.
En général, elle s'exécute dans une fenêtre d'application sur votre bureau. Une machine virtuelle possède toutes les fonctionnalités et agit comme un ordinateur ou une machine distinct(e). Par essence, une machine virtuelle est un ordinateur virtuel fonctionnant dans un autre ordinateur appelé machine hôte.
Image 1 : Machine virtuelle fonctionnant sur un ordinateur portable.
Une machine virtuelle ne possède pas de matériel (mémoire, disque dur, clavier ou écran). Elle utilise le matériel simulé de la machine hôte. De ce fait, plusieurs machines virtuelles, également appelées "invités", peuvent être exécutées sur une seule machine hôte.
Image 2 : Machine hôte exécutant plusieurs VMs.
L'hôte peut également exécuter plusieurs machines virtuelles avec différents systèmes d'exploitation, notamment Linux, Mac OS et Windows. Cette capacité dépend d'un logiciel appelé hyperviseur (voir l'image 1 ci-dessus). L'hyperviseur s'exécute sur la machine hôte et vous permet de créer, configurer, exécuter et gérer des machines virtuelles.
L'hyperviseur alloue l'espace disque, planifie le temps de traitement et gère l'utilisation de la mémoire pour chaque VM. C'est ce que font des applications comme Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V et bien d'autres : ce sont des hyperviseurs.
Un hyperviseur peut être exécuté sur un ordinateur portable, un PC ou un serveur. Il met les machines virtuelles à la disposition de l'ordinateur local ou des utilisateurs répartis sur un réseau.
Les différents types de machines virtuelles et d'environnements requièrent différents types d'hyperviseurs, dont voici quelques exemples.
Types de machines virtuelles
Machines virtuelles du système
Les VM système, parfois appelées virtualisation complète, sont exécutées par un hyperviseur et fournissent la fonctionnalité d'un système informatique réel. Elles utilisent le système d'exploitation natif de l'hôte pour gérer et partager les ressources du système.
Les machines virtuelles du système requièrent souvent un hôte puissant doté de CPU rapides ou multiples, de grandes quantités de mémoire et de tonnes d'espace disque. Certaines, qui fonctionnent sur des ordinateurs personnels ou portables, n'ont peut-être pas besoin de la puissance de calcul dont ont besoin les grands serveurs virtuels d'entreprise ; cependant, elles fonctionneront lentement si le système hôte n'est pas adéquat.
Traitement des machines virtuelles
Les machines virtuelles de processus sont très différentes des SVM - vous les avez peut-être exécutées sur votre machine sans même le savoir. Elles sont également connues sous le nom de machines virtuelles d'application ou d'environnements d'exécution gérés (MRE). Ces machines virtuelles s'exécutent à l'intérieur d'un système d'exploitation hôte et prennent en charge des applications ou des processus système.
Pourquoi utiliser un PVM ? Ils effectuent des services sans être dépendants de systèmes d'exploitation ou de matériels spécifiques. Ils ont leur propre petit système d'exploitation avec uniquement les ressources dont ils ont besoin. Le PVM se trouve dans un environnement séparé ; peu importe qu'il fonctionne sur Windows, Mac OS, Linux ou toute autre machine hôte.
L'une des machines virtuelles de traitement les plus courantes est celle dont vous avez probablement entendu parler et que vous avez peut-être vue fonctionner sur votre ordinateur. Elle est utilisée pour exécuter des applications Java et s'appelle la machine virtuelle Java ou JVM en abrégé.
Types d'hyperviseurs
La plupart des machines virtuelles qui nous intéressent utilisent un hyperviseur car elles émulent un système informatique complet. Il existe deux types d'hyperviseurs différents : les hyperviseurs bare metal et les hyperviseurs hébergés. Examinons rapidement ces deux types d'hyperviseurs.
Hyperviseur pour métaux nus
Les BMH peuvent également être appelés hyperviseurs natifs et s'exécutent directement sur le matériel de l'hôte au lieu de s'exécuter dans le système d'exploitation de l'hôte. En fait, ils prennent la place du système d'exploitation de l'hôte, planifiant et gérant l'utilisation du matériel par chaque machine virtuelle, éliminant ainsi l'"homme du milieu" (le système d'exploitation de l'hôte) dans le processus.
Les hyperviseurs natifs sont normalement utilisés pour les VM d'entreprise à grande échelle, que les entreprises utilisent pour fournir des ressources serveur à leurs employés. Microsoft Azure ou Amazon Web Services sont des VM hébergées sur ce type d'architecture. D'autres exemples sont KVM, Microsoft Hyper-V et VMware vSphere.
Hyperviseur hébergé
Les hyperviseurs hébergés s'exécutent sur des systèmes d'exploitation standard, comme toute autre application que nous exécutons sur nos machines. Ils utilisent le système d'exploitation de l'hôte pour gérer et distribuer les ressources. Ce type d'hyperviseur convient mieux aux utilisateurs individuels qui ont besoin d'exécuter plusieurs systèmes d'exploitation sur leurs machines.
Il s'agit d'applications telles que Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop, et bien d'autres encore. Vous trouverez des informations plus détaillées sur les hyperviseurs hébergés dans notre article, Meilleur logiciel de machine virtuelle.
Pourquoi utiliser des machines virtuelles ?
Maintenant que vous avez une connaissance de base de ce qu'est une machine virtuelle, vous pouvez probablement penser à d'excellentes applications. Voici quelques-unes des principales raisons pour lesquelles les gens utilisent des machines virtuelles.
1. rentable
Les machines virtuelles sont rentables dans de nombreuses situations, notamment dans le monde de l'entreprise. L'utilisation de serveurs physiques pour fournir des ressources aux employés peut s'avérer très coûteuse. Le matériel n'est pas bon marché, et sa maintenance est encore plus coûteuse.
L'utilisation de machines virtuelles comme serveurs d'entreprise est aujourd'hui devenue la norme. Avec les machines virtuelles d'un fournisseur tel que MS Azure, il n'y a pas d'achat initial de matériel ni de frais de maintenance. Ces machines virtuelles peuvent être installées, configurées et utilisées pour quelques centimes d'euro par heure. Elles peuvent également être fermées lorsqu'elles ne sont pas utilisées et n'entraînent aucun coût.
L'utilisation d'une VM sur votre machine peut également représenter une économie considérable. Si vous devez travailler avec plusieurs systèmes d'exploitation ou différentes configurations matérielles, vous pouvez
utiliser plusieurs machines virtuelles sur un seul hôte - pas besoin d'acheter un ordinateur distinct pour chaque tâche.
2. extensible et flexible
Qu'il s'agisse de serveurs d'entreprise ou de machines virtuelles fonctionnant sur votre ordinateur portable, les machines virtuelles sont évolutives. Il est facile d'adapter les ressources à vos besoins. Si vous avez besoin de plus de mémoire ou d'espace disque, il suffit d'accéder à l'hyperviseur et de reconfigurer la machine virtuelle pour qu'elle en dispose davantage. Il n'est pas nécessaire d'acheter du nouveau matériel et le processus peut être réalisé rapidement.
3. configuration rapide
Une nouvelle VM peut être configurée rapidement. J'ai eu des cas où j'avais besoin de configurer une nouvelle VM, j'ai appelé mon collègue qui les gère et elles étaient prêtes à être utilisées en moins d'une heure.
4. reprise après sinistre
Si vous essayez de prévenir la perte de données et de vous préparer à une reprise après sinistre, les machines virtuelles peuvent être un outil formidable. Elles sont faciles à sauvegarder et peuvent être réparties sur différents sites si nécessaire. Si un tiers comme Microsoft ou Amazon héberge les machines virtuelles, elles seront hors site, ce qui signifie que vos données seront en sécurité si votre bureau brûle.
5. facile à reproduire
La plupart des hyperviseurs vous permettent de faire une copie, ou image, d'une VM. L'imagerie vous permet de créer facilement des reproductions exactes de la même VM de base pour n'importe quelle situation.
Dans l'environnement dans lequel je travaille, nous donnons à chaque développeur une VM à utiliser pour le développement et les tests. Ce processus nous permet de disposer d'une image configurée avec tous les outils et logiciels nécessaires. Lorsqu'un nouveau développeur est intégré, il suffit de faire une copie de cette image et il dispose de ce dont il a besoin pour travailler.
6. parfait pour Dev/Test
L'un des meilleurs avantages de l'utilisation des machines virtuelles est qu'elles constituent un outil parfait pour le développement et le test de logiciels. Les VM permettent aux développeurs de développer sur plusieurs plateformes et environnements sur une seule machine. Si cette VM est corrompue ou détruite, une nouvelle peut être rapidement créée.
J'ai travaillé sur des projets où nous avons mis en place des scripts de test automatisés qui créent une nouvelle VM, installent la dernière version du logiciel, exécutent tous les tests requis, puis suppriment la VM une fois les tests terminés.
Les VM fonctionnent parfaitement pour les tests et les évaluations de produits comme ceux que nous faisons ici à SoftwareHow.com. Je peux installer des applications dans une VM fonctionnant sur ma machine et les tester sans encombrer mon environnement principal.
Lorsque j'ai fini de tester, je peux toujours supprimer la machine virtuelle, puis en créer une nouvelle lorsque j'en ai besoin. Ce processus me permet également de tester sur plusieurs plateformes, même si je n'ai qu'une machine Windows.
Le mot de la fin
Comme vous pouvez le constater, les machines virtuelles sont un outil économique et polyvalent qui peut être utilisé pour de nombreuses applications. Il n'est plus nécessaire d'acheter, de configurer et de maintenir du matériel coûteux pour fournir un accès au serveur aux testeurs, aux développeurs et autres. Les machines virtuelles nous donnent la possibilité de créer facilement et rapidement les systèmes d'exploitation, le matériel et les environnements dont nous avons besoin, à tout moment.