Par: IBM Cloud Education

Présentation des machines virtuelles, une technologie qui permet de créer des environnements informatiques virtualisés, à l'origine de la première génération de cloud computing.

Qu'est-ce qu'une machine virtuelle ?

Une machine virtuelle est une représentation virtuelle, ou émulation, d'un ordinateur physique. Elle est souvent désignée par le terme "invité", la machine physique sur laquelle elle s'exécute étant appelée "hôte".

La virtualisation permet de créer plusieurs machines virtuelles, chacune étant dotée de son système d'exploitation et de ses applications propres, sur une seule machine physique. Une machine virtuelle ne peut pas interagir directement avec un ordinateur physique. Elle a besoin d'une couche logicielle légère appelée hyperviseur pour se coordonner avec le matériel physique sous-jacent. L'hyperviseur alloue des ressources informatiques physiques, telles que des processeurs, de la mémoire et du stockage, à chaque machine virtuelle. Chaque machine virtuelle reste distincte des autres afin qu'elles n'interfèrent pas entre elles.

Si cette technologie porte différents noms, comme serveur virtuel, instance de serveur virtuel et serveur privé virtuel, nous allons y faire référence par le terme "machine virtuelle" (ou MV).

Fonctionnement de la virtualisation

Lorsqu'un hyperviseur est utilisé sur un ordinateur ou un serveur physique (également appelé serveur bare metal), il permet à l'ordinateur physique de séparer son système d'exploitation et ses applications de son matériel. Ensuite, il peut se diviser en plusieurs "machines virtuelles" indépendantes.

Chacune de ces nouvelles machines virtuelles peut ensuite exécuter ses systèmes d'exploitation et applications propres indépendamment, tout en continuant à partager les ressources d'origine du serveur bare metal, géré par l'hyperviseur. Ces ressources sont la mémoire, la RAM, le stockage, etc.

La vidéo suivante explique les bases de la virtualisation (5:20). Lisez également l'article "5 benefits of Virtualization" :

L'hyperviseur joue, dans une certaine mesure, le rôle "d'agent de la circulation", car il dirige les ressources du serveur bare metal vers chacune des nouvelles machines virtuelles et les allouent à ces dernières, en s'assurant qu'elles ne se perturbent pas les unes les autres.

Il existe deux principaux types d'hyperviseurs.

Les hyperviseurs de type 1 s'exécutent directement sur le matériel physique (généralement un serveur), ils remplacent donc le système d'exploitation. Généralement, un produit logiciel distinct est utilisé pour créer et manipuler des machines virtuelles sur l'hyperviseur. Certains outils de gestion, comme vSphere VMware, permettent de sélectionner un système d'exploitation invité à installer dans la machine virtuelle.

Vous pouvez utiliser une machine virtuelle comme modèle pour d'autres, en la dupliquant pour en créer de nouvelles. En fonction de vos besoins, vous pouvez créer plusieurs modèles de machine virtuelle à des fins différentes, telles que des tests logiciels, des bases de données de production et des environnements de développement.

Les hyperviseurs de type 2 s'exécutent en tant qu'application dans un système d'exploitation hôte et ciblent généralement des ordinateurs de bureau mono-utilisateur ou des plateformes de notebooks. Avec un hyperviseur de type 2, vous créez manuellement une machine virtuelle, puis vous y installez un système d'exploitation invité. Vous pouvez utiliser l'hyperviseur pour allouer des ressources physiques à votre machine virtuelle, en définissant manuellement la quantité de cœurs de processeur et de mémoire qu'elle peut utiliser. En fonction des fonctionnalités de l'hyperviseur, vous pouvez également définir des options comme l'accélération 3D pour les graphiques.

Une présentation complète des hyperviseurs figure dans "Hypervisors: A Complete Guide."

Avantages des machines virtuelles

Les machines virtuelles offrent plusieurs avantages par rapport au matériel physique traditionnel :

  • Utilisation des ressources et amélioration du retour sur investissement : Plusieurs machines virtuelles s'exécutant sur un seul ordinateur physique, les clients n'ont pas besoin d'acheter un nouveau serveur à chaque fois qu'ils veulent exécuter un autre système d'exploitation ; ils peuvent en outre mieux amortir chaque matériel qu'ils possèdent déjà.
  • Évolutivité : Avec le cloud computing, il est facile de déployer plusieurs copies de la même machine virtuelle pour mieux faire face aux augmentations de charge.
  • Portabilité : Les machines virtuelles peuvent être transférées dans les différents ordinateurs physiques d'un réseau, selon les besoins. Il est ainsi possible d'allouer des charges de travail aux serveurs ayant un surplus de puissance de calcul. Les machines virtuelles peuvent même passer d'environnements sur site à des environnements cloud, ce qui s'avère utile pour les scénarios de cloud hybride dans lesquels des ressources informatiques sont partagées entre votre data center et un fournisseur de services cloud.
  • Flexibilité : Il est plus simple et rapide de créer une machine virtuelle que d'installer un système d'exploitation sur un serveur physique, car vous pouvez cloner une machine virtuelle avec le système d'exploitation déjà installé. Les développeurs et les testeurs de logiciels peuvent créer des environnements sur demande pour gérer de nouvelles tâches au fur et à mesure de leur apparition.
  • Sécurité : Les machines virtuelles améliorent différents aspects de la sécurité par rapport aux systèmes d'exploitation qui s'exécutent directement sur du matériel. Une machine virtuelle est un fichier qu'un programme externe peut scanner pour y rechercher des logiciels malveillants. Vous pouvez créer une image instantanée complète de la machine virtuelle à tout moment, puis la restaurer à cet état si elle est infectée par un logiciel malveillant ; il s'agit véritablement d'un retour en arrière. Comme les machines virtuelles sont faciles et rapides à créer, il est possible de supprimer intégralement une machine compromise, puis de la recréer rapidement, ce qui accélère la récupération suite à des infections par logiciels malveillants.

Cas d'utilisation des machines virtuelles

Les machines virtuelles ont plusieurs utilisations, à la fois pour les administrateurs et les utilisateurs informatiques d'entreprise. En voici quelques-unes :

  • Cloud Computing : Depuis plus de 10 ans, les machines virtuelles constituent l'unité de calcul fondamentale dans le cloud, ce qui a permis l'exécution et la mise à l'échelle de douzaines de types différents d'applications et de charges de travail.
  • Support DevOps : Les machines virtuelles constituent un excellent moyen de supporter les développeurs d'entreprise, qui peuvent configurer des modèles de machine virtuelle avec les paramètres de leur développement logiciel et de leurs processus de test. Ils peuvent créer des machines virtuelles pour des tâches spécifiques, telles que des tests de logiciels statiques, en incluant ces étapes dans un flux de travaux de développement automatisé. Tous ces éléments contribuent à rationaliser la chaîne d'outils DevOps.
  • Test d'un nouveau système d'exploitation : Une machine virtuelle permet d'essayer un nouveau système d'exploitation sur votre bureau sans affecter votre système d'exploitation principal.
  • Recherche de logiciels malveillants : Les machines virtuelles sont utiles pour les chercheurs en logiciels malveillants, car ils ont souvent besoin de nouvelles machines pour les tester.
  • Exécution de logiciels incompatibles : Certains utilisateurs peuvent préférer un certain système d'exploitation tout en ayant besoin d'un programme uniquement disponible dans un autre. Un bon exemple est la gamme de logiciels de dictée vocale Dragon. Son fournisseur, Nuance, a mis fin à la version macOS de son produit. Toutefois, l'exécution d'un hyperviseur de postes de travail, tel que VMware Fusion ou Parallels, vous permet d'exécuter Windows dans une machine virtuelle, ce qui vous donne accès à cette version du logiciel.
  • Navigation en toute sécurité : L'utilisation d'une machine virtuelle pour naviguer vous permet de visiter des sites sans vous soucier d'une éventuelle infection. Vous pouvez prendre une image instantanée de votre machine et y revenir après chaque session de navigation. Un utilisateur pourrait le configurer lui-même, à l'aide d'un hyperviseur de postes de travail de type 2. Un administrateur peut également fournir un bureau virtuel temporaire situé sur le serveur.

Types de machines virtuelles

Cette section répertorie certains types de machines virtuelles :

  • Machines virtuelles Windows
  • Machines virtuelles Android
  • Machines virtuelles Mac
  • Machines virtuelles iOS
  • Machines virtuelles Java
  • Machines virtuelles Python
  • Machines virtuelles Linux
  • Machines virtuelles VMware
  • Machines virtuelles Ubuntu

Machines virtuelles Windows

La plupart des hyperviseurs prennent en charge les machines virtuelles exécutant le système d'exploitation Windows en tant qu'invité. L'hyperviseur Hyper-V de Microsoft fait partie du système d'exploitation Windows. Lorsqu'il est installé, il crée une partition parent qui outre elle-même, contient le système d'exploitation Windows principal, chacun d'entre eux ayant un accès privilégié au matériel. Les autres systèmes d'exploitation, y compris les invités Windows, s'exécutent dans des partitions enfant qui communiquent avec le matériel via la partition parent.

Machines virtuelles Android

Le système d'exploitation Android open source de Google est courant sur les dispositifs mobiles et domestiques connectés, tels que les dispositifs de divertissement à domicile. Le système d'exploitation Android s'exécute uniquement sur l'architecture de processeurs ARM qui est commune à ces dispositifs, mais les passionnés, les joueurs Android ou les développeurs de logiciels peuvent vouloir l'exécuter sur des PC.

Cela est problématique, car les PC s'exécutent sur une architecture de processeur x86 complètement différente et un hyperviseur de virtualisation matérielle ne transmet des instructions qu'entre la machine virtuelle et l'unité centrale. Il ne les convertit pas pour les processeurs avec des ensembles d'instructions différents. Il existe divers projets pour remédier à ce problème.

Certains projets, tels que Shashlik ou Genymotion, utilisent un émulateur qui recrée l'architecture ARM dans le logiciel. Un autre projet, Android-x86, porte Android dans l'architecture x86. Pour l'exécuter, vous devez installer le programme Android-x86 en tant que machine virtuelle à l'aide de l'hyperviseur VirtualBox de type 2. Une autre projet, Anbox, gère le système d'exploitation Android sur le noyau d'un système d'exploitation Linux hôte.

Machines virtuelles Mac

Apple autorise l'exécution de son système macOS uniquement sur du matériel Apple, interdisant aux utilisateurs de l'exécuter sur du matériel non Apple comme une machine virtuelle ou autre, dans le cadre de son contrat de licence d'utilisateur final. Vous pouvez utiliser des hyperviseurs de type 2 sur le matériel Mac pour créer des machines virtuelles avec un invité macOS.

Machines virtuelles iOS

Actuellement, il n'est pas possible d'exécuter iOS dans une machine virtuelle, car Apple contrôle strictement son système d'exploitation iOS et ne permet pas son exécution sur des périphériques autres qu'iOS.

Ce qui se rapproche le plus d'une machine virtuelle iOS est le simulateur iPhone qui accompagne l'environnement de développement intégré Xcode, qui simule l'ensemble du système iPhone sous forme logicielle.

Machines virtuelles Java

La plateforme Java est un environnement d'exécution pour les programmes écrits dans le langage de développement logiciel Java. Java a été fondé sur la fonctionnalité "écrire une fois, exécuter partout". En d'autres termes, tout programme Java devait pouvoir s'exécuter sur tout matériel exécutant la plateforme Java. C'est à cette fin que la plateforme Java inclut une machine virtuelle Java (JVM).

Les programmes Java contiennent du bytecode, instructions destinées à la machine virtuelle Java. La machine virtuelle Java compile ce bytecode en code machine, qui est le langage de niveau le plus bas utilisé par l'ordinateur hôte. La machine virtuelle Java d'une plateforme Java de plateforme informatique va créer un ensemble différent d'instructions de code machine sur la machine virtuelle Java d'une autre plateforme, en fonction du code machine attendu par le processeur.

La machine virtuelle Java n'exécute donc pas un système d'exploitation complet et n'utilise pas d'hyperviseur comme les autres machines virtuelles. Elle convertit des logiciels de niveau application pour une exécution sur un matériel particulier.

Pour plus d'informations sur Java, consultez "Java: A Complete Guide".

Machines virtuelles Python

Comme la machine virtuelle Java, la machine virtuelle Python ne s'exécute pas sur un hyperviseur et ne contient pas de système d'exploitation invité. Il s'agit d'un outil qui permet l'exécution de programmes écrits dans le langage de programmation Python sur diverses UC.

Similaire à Java, Python convertit ses programmes en un format intermédiaire appelé bytecode, puis les stocke dans un fichier prêt à être exécuté. Lorsque le programme s'exécute, la machine virtuelle Python convertit le bytecode en code machine pour une exécution rapide.

Machines virtuelles Linux

Linux est un système d'exploitation invité courant utilisé dans de nombreuses machines virtuelles. Il s'agit également d'un système d'exploitation hôte courant utilisé pour exécuter des machines virtuelles ; il dispose même de son propre hyperviseur appelé machine virtuelle multinoyau (KVM). Le noyau Linux principal inclut KVM depuis 2007. Bien qu'il s'agisse d'un projet open source, Red Hat est désormais propriétaire de la société d'origine qui a développé KVM.

Machines virtuelles VMware

VMware fut l'un des premiers fournisseurs de logiciels de virtualisation ; il est désormais un fournisseur très couru d'hyperviseurs de type 1 et de type 2 et de logiciels de MV pour les professionnels.

VMware: A Complete Guide” présente en détail tout ce qui concerne VMware.

Machines virtuelles Ubuntu

Ubuntu est une distribution Linux produite par Canonical. Il est disponible dans des versions pour poste de travail et serveur, que vous pouvez installer en tant que MV. Ubuntu peut être déployé en tant que système d'exploitation invité sur Microsoft Hyper-V. Il fournit une version optimisée d'Ubuntu Desktop qui fonctionne bien dans le mode de session améliorée d'Hyper-V, offrant une intégration étroite entre l'hôte Windows et la MV Ubuntu. Il inclut le support de l'intégration du presse-papiers, le redimensionnement de bureau dynamique, les dossiers partagés et le déplacement de la souris entre les postes de travail hôte et invité.

"À service partagé" versus "À service exclusif"

En cloud computing, les machines virtuelles sont généralement fournies en service exclusif ou partagé.

Dans le cas des machines virtuelles publiques ou à service partagé, plusieurs utilisateurs partagent une infrastructure physique commune. Il s'agit de l'approche la plus économique et évolutive du provisionnement de machines virtuelles, mais elle ne présente pas certaines caractéristiques d'isolement requises par les entreprises ayant des mandats de sécurité ou de conformité stricts.

Deux modèles de machines virtuelles à service exclusif sont les hôtes dédiés et les instances dédiées.

Un hôte dédié implique la location d'une machine physique entière, ainsi qu'un accès et un contrôle permanent à cette machine, son matériel et les logiciels qui y sont installés. Ce modèle fournit une flexibilité et transparence matérielle maximale, le contrôle et le placement de charge de travail ; il offre également des avantages pour certains logiciels sous licence BYOL.

Une instance dédiée offre le même isolement à service exclusif et le même contrôle sur le placement des charges de travail, mais elle n'est pas couplée à une machine physique spécifique. Ainsi, par exemple, si une instance dédiée est réamorcée, elle peut se retrouver sur une nouvelle machine physique, dédiée au compte individuel, dans un emplacement physique différent.

Modèles de tarification pour les machines virtuelles

Les modèles de tarification les plus courants pour les machines virtuelles dans le cloud sont le paiement à la carte (à l'heure ou à la seconde), les instances transitoires/au comptant, les instances réservées et les hôtes dédiés.

  • Paiement à la carte : Dans le modèle de paiement à la carte, il n'y a pas de coûts initiaux pour la machine virtuelle et les utilisateurs paient ce qu'ils utilisent, généralement avec une facturation à l'heure ou à la seconde, selon le fournisseur et le type d'instance.
  • Instances transitoires/au comptant : Modèle de coût le plus bas des machines virtuelles, les instances transitoires et au comptant tirent parti d'un surplus de capacité d'un fournisseur, mais peuvent être récupérées par celui-ci à tout moment. Elles sont généralement utiles pour les applications qui n'ont pas besoin d'être disponibles en permanence ou dont le prix est prohibitif dans tout autre modèle.
  • Instances réservées : Contrairement aux modèles de paiement à la carte, les instances réservées présentent un engagement à terme explicite, généralement entre un et trois ans, mais sont également associées à de fortes remises.
  • Hôtes dédiés : Dans le cas d'hôtes dédiés, il est d'usage qu'un utilisateur se charge du coût du serveur physique entier ; il est facturé selon les incréments que le fournisseur offre pour les serveurs serveurs dédiés (à l'heure ou au mois).

Machines virtuelles versus serveurs bare metal

Choisir une machine virtuelle plutôt qu'une machine physique, également appelée serveur bare metal, dépend moins d'une comparaison des fonctionnalités que de savoir ce dont vous avez besoin, et quand.

Les serveurs bare metal sont constitués de matériel brut, d'alimentation et d'isolement. Ce sont des serveurs physiques à service exclusif, dépourvus de cycles d'hyperviseur (logiciels de virtualisation), et entièrement dédiés à un seul client : vous.

Les charges de travail qui priorisent hautement les performances et l'isolement, comme les applications très gourmandes en données et les mandats de conformité réglementaire, sont généralement les mieux adaptées pour les serveurs bare metal, en particulier lorsqu'elles sont déployées sur des périodes prolongées.

Les applications de services d'e-commerce, ERP, CRM, SCM et financiers font partie des charges de travail idéales pour les serveurs bare metal.

Dans quel cas pourriez-vous placer un hyperviseur sur un serveur bare metal pour créer une machine virtuelle ? Lorsque vos charges de travail exigent une flexibilité et une évolutivité maximales.

Les machines virtuelles augmentent aisément la capacité du serveur et l'utilisation, ce qui est idéal pour transférer des données d'une machine virtuelle à une autre, redimensionner des ensembles de données et diviser des charges de travail dynamiques.

Machines virtuelles versus conteneurs

Pour bien comprendre ce qu'est un conteneur, il convient d'étudier en quoi il diffère d'une  machine virtuelle traditionnelle. Dans la virtualisation traditionnelle, sur site ou dans le cloud, un  hyperviseur est utilisé pour virtualiser le matériel physique. Chaque machine virtuelle contient alors un système d'exploitation invité, une copie virtuelle du matériel que le système d'exploitation requiert pour s'exécuter, ainsi qu'une application et ses bibliothèques et dépendances associées.

Au lieu de virtualiser le matériel sous-jacent, les conteneurs virtualisent le système d'exploitation (généralement Linux) de sorte que chaque conteneur individuel contient uniquement l'application, ses bibliothèques et ses dépendances. L'absence de système d'exploitation invité explique pourquoi les conteneurs sont si légers et donc, rapides et portables.

Les conteneurs, et le moteur d'orchestration qui les gère, Kubernetes, sont bien adaptés aux architectures natives cloud et de microservices. Et bien que les conteneurs soient le plus souvent associés aux services sans état, ils peuvent également être utilisés pour des services avec état.

Les conteneurs deviennent également plus courants dans les scénarios de cloud hybrides, car qu'ils peuvent s'exécuter de manière cohérente sur les ordinateurs portables, le cloud et l'IT sur site classique.

Le post de blog "Containers vs. VMs: What's the difference?" donne plus de détails.

Dans la vidéo suivante, Sai Vennam explique les bases de la conteneurisation et la compare à l'utilisation de machines virtuelles (8:09) :

Comment choisir un fournisseur de machine virtuelle

Le choix d'une machine virtuelle et d'un fournisseur de cloud n'est pas nécessairement difficile tant que vous savez ce que vous devez rechercher. La machine virtuelle doit correspondre à vos besoins de charge de travail et à votre budget, bien sûr, mais d'autres facteurs doivent être pris en compte au niveau de votre environnement de virtualisation. Voici dix éléments à prendre en compte lors du choix d'un fournisseur de services de machine virtuelle.

  • Support fiable - Vérifiez qu'il offre un support client 24/7 par téléphone, par e-mail ou par chat. Vous devez être en contact avec une personne qui puisse vous aider dans le cadre de situations informatiques critiques. Il est également important de noter quels fournisseurs de cloud offrent des services supplémentaires en matière de support pratique.
  • Options gérées - Le fournisseur de cloud offre-t-il des solutions gérées et non gérées ? Si vous ne connaissez pas la technologie de virtualisation de façon exhaustive, vous devez choisir un fournisseur qui sera responsable de la configuration, de la maintenance et de la surveillance continue des performances.
  • Intégration de logiciels - Votre environnement de machine virtuelle va-t-il bien fonctionner avec les autres ? Les systèmes d'exploitation, les logiciels tiers, la technologie open source et les applications vous aident à offrir plus de solutions dans votre entreprise. Il faudra que votre fournisseur de machines virtuelles puisse assurer un support pour les fournisseurs de logiciels les plus utilisés du secteur et être en partenariat étroit avec eux. Remarque : Ne soyez pas dépendant d'un fournisseur.
  • Réseau et infrastructure de haute qualité - L'infrastructure sur laquelle votre nouvelle machine virtuelle va s'exécuter est-elle à jour ? Elle doit comporter des serveurs bare metal fiables, des data center modernes et un réseau principal. Un fournisseur de cloud doit pouvoir mener à bien sa part du contrat avec du matériel de pointe et une technologie réseau haute vitesse.
  • L'emplacement est crucial - Plus les données sont proches de vos utilisateurs, moins vous aurez de soucis en matière de latence, de sécurité et de livraison de service dans les délais. Disposer d'un réseau mondial de data centers dispersés et de points de présence est essentiel pour disposer des données où et quand vous en avez le plus besoin.
  • Sauvegarde et reprise - Qu'a prévu votre fournisseur de cloud pour que vos machines virtuelles restent opérationnelles en cas d'événements inattendus ? Fournit-il également des options de sauvegarde et de redondance supplémentaires pour votre environnement virtualisé ? L'exploitation continue doit être prise au sérieux.
  • Facilité d'évolutivité - Allez-vous pouvoir installer, arrêter, réserver, suspendre et mettre à jour vite et facilement votre machine virtuelle ? Le concept "À la demande" doit être au cœur de l'évolutivité des machines virtuelles.
  • Configurations d'unité centrale diverses - Il est souhaitable de disposer d'un grand nombre de configurations. Toutes les configurations de machines virtuelles ne conviennent pas à toutes les charges de travail au cours de chaque période d'utilisation. Veillez à choisir un fournisseur de machines virtuelles qui offre des packages de configuration variés pour des exigences individuelles et à service partagé.
  • Couches de sécurité - Demandez sans cesse à votre fournisseur de vous informer à leur sujet. Vos données métier constituent une devise extrêmement précieuse, en particulier en matière d'informations client sensibles. Des lignes de réseau privées, des options de data centers fédéraux, des fonctions de chiffrement intégrées et des normes de conformité aux réglementations sont essentielles pour protéger votre actif le plus précieux.
  • Support transparent de la migration - Vos priorités informatiques évolueront toujours. Nous le savons tous. Tout fournisseur de machine virtuelle doit pouvoir vous aider à externaliser en l'état des environnements hybrides, sur et hors site. Renseignez-vous sur l'ingestion complète des données, la migration menée par des applications et sur le réseau.

Machines virtuelles et IBM Cloud

IBM Cloud offre l'opportunité de configurer et d'exécuter vos propres machines virtuelles en fonction de différentes options techniques et de tarification. Vous pouvez sélectionner des profils techniques pour des machines virtuelles en fonction de la puissance de calcul, de la mémoire, du stockage local et des fonctionnalités GPU requis, afin d'adapter le système à votre charge de travail spécifique. Vous pouvez également gérer des machines virtuelles VMware à l'aide d'IBM Cloud for VMware Solutions.

Vous pouvez choisir des nœuds publics ou privés pour répondre à vos exigences de sécurité et de conformité. Un service privé à service exclusif peut résider sur un hôte dédié de votre choix parmi plus de 60 data centers IBM dans 19 pays du le monde.

Faites votre choix parmi une panoplie d'options de déploiement pour répondre à vos besoins en matière de tarification. Une instance de machine virtuelle publique que vous réservez à l'avance pour une heure définie est moins coûteuse qu'un système non réservé. Vous pouvez également choisir une machine virtuelle basée sur la tarification au comptant pour gérer les charges de travail temporaires.

IBM Cloud vous permet également de combiner des ressources de serveur virtuel et bare metal selon vos besoins en matière de charge de travail.

Pour en savoir plus, visitez la page IBM Cloud et inscrivez-vous pour obtenir un ID IBM.