Qu’est-ce qu’une machine virtuelle ? (Pourquoi et quand l’utiliser)

Si vous travaillez dans ou autour de l’industrie du logiciel, vous avez probablement entendu parler des machines virtuelles. Si ce n’est pas le cas, vous vous demandez peut-être ce qu’ils sont et à quoi ils servent.

En tant qu’ingénieur logiciel, j’utilise quotidiennement des machines virtuelles. Ce sont des outils puissants dans le développement de logiciels, mais ils ont également d’autres utilisations. Aussi connues sous le nom de machines virtuelles, de nombreuses entreprises les utilisent en raison de leur flexibilité, de leur fiabilité et de leur rentabilité. ils préviennent également les catastrophes dues à des tests logiciels incontrôlables.

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 exécuté dans le système d’exploitation principal d’un ordinateur.

En règle générale, il s’exécute dans une fenêtre d’application sur votre bureau. Une machine virtuelle a toutes les fonctionnalités et agit comme un ordinateur ou une machine distincte. Essentiellement, une machine virtuelle est un ordinateur virtuel exécuté à l’intérieur d’un autre ordinateur appelé machine hôte.

Machine virtuelle 1
Image 1 : Machine virtuelle exécutée sur un ordinateur portable.

Une machine virtuelle n’a pas de matériel (mémoire, disque dur, clavier ou moniteur). Il utilise du matériel simulé à partir de la machine hôte. Pour cette raison, plusieurs machines virtuelles, également appelées «invités», peuvent être exécutées sur une seule machine hôte.

Machine virtuelle 2
Image 2 : machine hôte exécutant plusieurs machines virtuelles.

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 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 de l’espace disque, planifie le temps de traitement et gère l’utilisation de la mémoire pour chaque machine virtuelle. C’est ce que des applications comme Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V et bien d’autres le font : ce sont des hyperviseurs.

Un hyperviseur peut fonctionner 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.

Différents types de machines virtuelles et d’environnements nécessitent différents types d’hyperviseurs. Jetons un coup d’œil à certains d’entre eux.

Types de machines virtuelles

Machines virtuelles système

Les machines virtuelles système, parfois appelées virtualisation complète, sont exécutées par un hyperviseur et fournissent les fonctionnalités d’un système informatique réel. Ils utilisent le système d’exploitation natif de l’hôte pour gérer et partager les ressources système.

Les machines virtuelles système nécessitent souvent un hôte puissant avec des processeurs rapides ou multiples, de grandes quantités de mémoire et des tonnes d’espace disque. Certains, qui s’exécutent sur des ordinateurs personnels ou portables, peuvent ne pas nécessiter la puissance de calcul dont ont besoin les serveurs virtuels des grandes entreprises ; cependant, ils fonctionneront lentement si le système hôte n’est pas adéquat.

Traiter les machines virtuelles

Les machines virtuelles de processus sont assez différentes des SVM – vous pouvez les avoir en cours d’exécution sur votre machine sans même le savoir. Ils sont également appelés machines virtuelles d’application ou environnements d’exécution gérés (MRE). Ces machines virtuelles s’exécutent dans un système d’exploitation hôte et prennent en charge des applications ou des processus système.

Pourquoi utiliser un PVM ? Ils exécutent des services sans dépendre de systèmes d’exploitation ou de matériel spécifiques. Ils ont leur propre petit système d’exploitation avec uniquement les ressources dont ils ont besoin. Le MRE est dans un environnement séparé ; peu importe qu’il fonctionne sous Windows, Mac OS, Linux ou toute autre machine hôte.

L’une des machines virtuelles de processus les plus courantes est celle dont vous avez probablement entendu parler et que vous avez peut-être vue s’exécuter sur votre ordinateur. Il est utilisé pour exécuter des applications Java et est appelé Java Virtual Machine ou JVM en abrégé.

Types d’hyperviseurs

La plupart des machines virtuelles qui nous intéressent utilisent un hyperviseur car elles émulent tout un système informatique. Il existe deux types d’hyperviseurs : les hyperviseurs Bare Metal et les hyperviseurs hébergés. Jetons un coup d’œil rapide sur les deux.

Hyperviseur Bare Metal

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 remplacent le système d’exploitation de l’hôte, planifiant et gérant l’utilisation du matériel par chaque machine virtuelle, éliminant ainsi « l’intermédiaire » (le système d’exploitation de l’hôte) dans le processus.

Les hyperviseurs natifs sont normalement utilisés pour les machines virtuelles d’entreprise à grande échelle, que les entreprises utilisent pour fournir aux employés des ressources de serveur. 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 fonctionnent 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 doivent exécuter plusieurs systèmes d’exploitation sur leurs machines.

Il s’agit notamment d’applications comme Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop et bien d’autres. Vous pouvez trouver 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 compréhension 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. L’un des plus importants est dans le monde de l’entreprise. L’utilisation de serveurs physiques pour fournir des ressources aux employés peut coûter très cher. Le matériel n’est pas bon marché et son entretien est encore plus coûteux.

L’utilisation de machines virtuelles comme serveurs d’entreprise est désormais devenue la norme. Avec les machines virtuelles d’un fournisseur comme 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 seulement quelques centimes par heure. Ils peuvent également être arrêtés lorsqu’ils ne sont pas utilisés et n’entraînent aucun coût.

L’utilisation d’une machine virtuelle sur votre machine peut également vous faire économiser beaucoup d’argent. Si vous devez travailler dans plusieurs systèmes d’exploitation ou différentes configurations matérielles, vous pouvez
utilisez plusieurs machines virtuelles sur un seul hôte, pas besoin de sortir et d’acheter un ordinateur distinct pour chaque tâche.

2. Évolutif et flexible

Qu’il s’agisse de serveurs d’entreprise ou de machines virtuelles exécutées sur votre ordinateur portable, les machines virtuelles sont évolutives. Il est facile d’ajuster les ressources en fonction de vos besoins. Si vous avez besoin de plus de mémoire ou d’espace disque, allez simplement dans l’hyperviseur et reconfigurez la VM pour en avoir plus. Il n’est pas nécessaire d’acheter du nouveau matériel et le processus peut être complété rapidement.

3. Configuration rapide

Une nouvelle machine virtuelle peut être configurée rapidement. J’ai eu des cas où j’avais besoin d’une nouvelle configuration de machine virtuelle, j’ai appelé mon collègue qui les gère et je les ai prêtes à l’emploi en moins d’une heure.

4. Reprise après sinistre

Si vous essayez d’empêcher la perte de données et de vous préparer à la reprise après sinistre, les machines virtuelles peuvent être un outil formidable. Ils sont faciles à sauvegarder et peuvent être distribués à différents endroits 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 sont en sécurité si votre bureau brûle.

5. Facile à reproduire

La plupart des hyperviseurs vous permettent de faire une copie, ou une image, d’une VM. L’imagerie vous permet de créer facilement des reproductions exactes de la même machine virtuelle de base pour n’importe quelle situation.

Dans l’environnement dans lequel je travaille, nous donnons à chaque développeur une machine virtuelle à utiliser pour le développement et les tests. Ce processus nous permet d’avoir une image configurée avec tous les outils et logiciels nécessaires. Lorsque nous avons un nouveau développeur intégré, tout ce que nous avons à faire est de faire une copie de cette image, et ils ont ce dont ils ont besoin pour travailler.

6. Parfait pour le développement/test

L’un des meilleurs avantages de l’utilisation de machines virtuelles est qu’elles constituent un outil parfait pour le développement et les tests de logiciels. Les machines virtuelles permettent aux développeurs de développer sur plusieurs plates-formes et environnements sur une seule machine. Si cette machine virtuelle est corrompue ou détruite, une nouvelle peut rapidement être créée.

Ils permettent à un testeur d’avoir un nouvel environnement propre pour chaque cycle de test. 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 machines virtuelles fonctionnent à merveille pour les tests de produits et les critiques comme celles que nous faisons ici sur TechFewer.com. Je peux installer des applications dans une machine virtuelle exécutée sur ma machine et les tester sans encombrer mon environnement principal.

Lorsque j’ai terminé les tests, 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 plates-formes même si je n’ai qu’une machine Windows.

Mot de la fin

Comme vous pouvez le voir, les machines virtuelles sont un outil polyvalent et économique qui peut être utilisé pour de nombreuses applications. Nous n’avons plus besoin d’acheter, de configurer et d’entretenir du matériel coûteux pour fournir un accès au serveur aux testeurs, développeurs et autres. Les machines virtuelles nous donnent la flexibilité de créer facilement et rapidement les systèmes d’exploitation, le matériel et les environnements dont nous avons besoin, à tout moment.