Une virtual machine (VM) est une représentation virtuelle ou une émulation d’un ordinateur physique qui utilise un logiciel plutôt que du matériel pour exécuter des programmes et déployer des applications.
En utilisant les ressources d'une seule machine physique, telles que la mémoire, le processeur, l'interface réseau et le stockage, les machines virtuelles permettent aux entreprises d'exécuter virtuellement plusieurs machines avec différents systèmes d'exploitation sur un seul appareil.
Les machines virtuelles sont généralement appelées « invités », c’est-à-dire qu’une ou plusieurs machines invitées s’exécutent sur une machine physique appelée machine « hôte ». La technologie des machines virtuelles comprend les serveurs virtuels, les instances de serveurs virtuels (VSI) et les serveurs privés virtuels (VPS).
Dans un rapport de Global Market Insights (GMI), le marché des machines virtuelles a dépassé les 9,5 milliards de dollars en 2023. GMI prévoit que ce marché se développera à un taux de croissance annuel composé (TCAC) d’environ 12 % entre 2024 et 2032, stimulé par l’adoption constante du cloud computing. Alors que les entreprises migrent vers le cloud pour son évolutivité, sa flexibilité et son efficacité économique, les fournisseurs de cloud continuent d’intégrer des machines virtuelles et d’autres technologies critiques (par exemple, les conteneurs) pour fournir une infrastructure informatique stable.
Les machines virtuelles fonctionnent en utilisant la virtualisation, un processus de création de versions logicielles ou virtuelles de ressources (calcul, stockage, réseau, serveurs) ou d’applications.
La virtualisation permet une utilisation plus efficace du matériel informatique physique et constitue le fondement du cloud computing.
La virtualisation est rendue possible grâce à un hyperviseur, également appelé moniteur de machine virtuelle (VMM). Cette couche logicielle légère gère les machines virtuelles lorsqu’elles fonctionnent côte à côte.
La naissance de la virtualisation remonte à 1964, lorsque IBM a conçu et introduit CP-40, un projet de recherche expérimental en temps partagé pour IBM System/360. Le CP-40, qui a ensuite évolué pour devenir le CP-67 puis Unix, a fourni du matériel informatique capable de prendre en charge plusieurs utilisateurs simultanément et a jeté les bases des machines virtuelles.
Le 2 août 1972, IBM a déployé ce que beaucoup considèrent comme la première machine virtuelle, la VM/370, et les premiers mainframes System/370 qui prenaient en charge la mémoire virtuelle.
En 1998, VMware (lien externe à ibm.com) développe le système d’exploitation x86, qui permet de segmenter une seule machine en plusieurs machines virtuelles, chacune avec son propre système d’exploitation. En 1999, la société lance VM Workstation 1.0, le premier produit commercial permettant aux utilisateurs d’exécuter plusieurs systèmes d’exploitation en tant que machines virtuelles sur un seul PC.
Aujourd’hui, la virtualisation est une pratique courante pour les infrastructures informatiques dédiées aux entreprises et un élément moteur de l’économie du cloud computing, permettant aux entreprises d’augmenter l’utilisation des capacités et de réduire les coûts. Toutes les infrastructures informatiques peuvent être virtualisées, y compris les environnements de bureau, les systèmes d’exploitation, le matériel de stockage, les centres de données et bien plus encore.
La virtualisation repose sur la technologie des hyperviseurs. Cette couche logicielle placée sur un ordinateur physique ou un serveur (également appelé serveur bare metal) permet à l’ordinateur physique de séparer son système d’exploitation et ses applications de son matériel. Ces machines virtuelles peuvent exécuter leur système d’exploitation et leurs applications indépendamment tout en partageant les ressources originales du serveur (mémoire, RAM, stockage, etc.), gérées par l’hyperviseur. En fait, l’hyperviseur agit comme un agent de circulation, allouant des ressources aux machines virtuelles et s’assurant qu’elles ne se perturbent pas mutuellement.
Il existe deux principaux types d’hyperviseurs :
Outre la classification selon la gestion des hyperviseurs, les machines virtuelles se répartissent en deux catégories principales : les machines virtuelles de système (également appelées machines de virtualisation complète) et les machines virtuelles de traitement.
Les machines virtuelles de système permettent de partager les ressources sous-jacentes des machines physiques entre différentes machines virtuelles, chacune exécutant son propre système d’exploitation. En revanche, les machines virtuelles de traitement (également appelées machines virtuelles d'application) exécutent une application dans un système d'exploitation et ne prennent en charge qu'un seul processus. Les machines virtuelles Java, qui exécutent des programmes compilés en Java, sont des exemples de machines virtuelles de traitement.
Les machines virtuelles offrent de nombreux avantages par rapport au matériel physique traditionnel.
Comme plusieurs machines virtuelles s’exécutent sur un même ordinateur physique, les clients n’ont pas besoin d’acheter un nouveau serveur chaque fois qu’ils souhaitent exécuter un autre système d’exploitation. Par conséquent, ils peuvent mieux rentabiliser chaque matériel qu’ils possèdent déjà, ce qui réduit considérablement les coûts informatiques liés aux dépenses d’investissement et d’exploitation.
Comme les machines virtuelles sont basées sur des logiciels, il est facile d’en créer de nouvelles, ce qui accélère la mise à l’échelle pour répondre aux nouvelles demandes de workloads par rapport à la mise à disposition de nouveaux environnements basés sur du matériel.
Les entreprises peuvent déplacer les machines virtuelles selon leurs besoins parmi les ordinateurs physiques d’un réseau. Cette fonctionnalité permet d’allouer des workloads à des serveurs disposant d’une puissance de calcul disponible. Les machines virtuelles peuvent même se déplacer entre des environnements sur site et cloud, ce qui les rend utiles pour les scénarios de cloud hybride dans lesquels vous partagez des ressources informatiques entre votre centre de données et un fournisseur de services cloud.
La création d’une VM est plus rapide et plus facile que l’installation d’un système d’exploitation sur un serveur physique, car vous pouvez cloner une VM avec le système d’exploitation déjà installé. Les développeurs et les testeurs de logiciels peuvent créer de nouveaux environnements à la demande pour gérer de nouvelles tâches à mesure qu'elles se présentent.
Les VM améliorent la sécurité de plusieurs manières par rapport aux systèmes d’exploitation, qui s’exécutent directement sur le matériel. À l’aide d’un programme externe, vous pouvez analyser un fichier VM à la recherche de logiciels malveillants. Vous pouvez créer un aperçu de la machine virtuelle à tout moment et la restaurer dans cet état si elle est infectée par un logiciel malveillant, ce qui permet de remonter dans le temps. La création rapide et facile de VM permet également de supprimer et de recréer rapidement une VM compromise, ce qui accélère la reprise après une infection par un logiciel malveillant.
Avec moins de serveurs physiques nécessaires pour exécuter les workloads et les applications, vous pouvez réduire considérablement la consommation d'énergie pour améliorer votre impact environnemental.
Bien que les machines virtuelles présentent de nombreux avantages, elles comportent également quelques inconvénients à prendre en compte.
Les machines virtuelles dépendent des ressources matérielles mises à leur disposition sur l’ordinateur hôte. Des ressources limitées peuvent entraîner une baisse des performances et des inefficacités.
Les machines virtuelles peuvent être complexes à configurer et à gérer, nécessitant des équipes dotées de connaissances et d'expertise techniques pour leur installation et leur maintenance.
Les machines virtuelles présentent le risque d’un point de défaillance unique en s’appuyant sur un ordinateur physique.
Les machines virtuelles ont un large éventail d'utilisations pour les administrateurs et les utilisateurs informatiques d'entreprise, notamment :
Première entreprise à avoir commercialisé avec succès la virtualisation de l’architecture à microprocesseur x86, VMware est un leader sur le marché de la virtualisation. La société fournit des hyperviseurs et des logiciels de machine virtuelle de type 1 et 2 aux entreprises.
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 est fourni avec le système d'exploitation Windows. Lorsqu'il est installé, il crée une partition parentale qui le contient, ainsi que le système d'exploitation Windows principal, chacun bénéficiant d'un accès privilégié au matériel. D'autres systèmes d'exploitation, y compris les invités Windows, s'exécutent dans des partitions enfants et communiquent avec le matériel via la partition parente.
Le système d’exploitation Android open source de Google est courant sur les appareils mobiles et les appareils domestiques connectés.
Le système d'exploitation Android fonctionne uniquement sur l'architecture de processeur ARM typique de ces appareils, mais les passionnés, les joueurs Android ou les développeurs de logiciels pourraient vouloir l'exécuter sur PC. Cette situation peut être problématique, car les PC fonctionnent sur une architecture de processeur x86 totalement différente et un hyperviseur de virtualisation matériel ne fait que transmettre des instructions entre la VM et le CPU. Il ne les traduit pas pour les processeurs ayant différents ensembles d’instructions.
Divers projets, comme Shashlik ou Genymotion, peuvent résoudre ce problème en utilisant un émulateur qui recrée l'architecture ARM sous forme logicielle. Une alternative, le projet Android-x86, porte Android sur l'architecture x86. Pour l'exécuter, vous devez installer le programme Android-x86 en tant que machine virtuelle utilisant l'hyperviseur VirtualBox type 2. Une autre alternative, Anbox, exécute le système d'exploitation Android sur le noyau d'un système d'exploitation Linux hôte.
Apple autorise son système macOS à fonctionner uniquement sur du matériel Apple. Cela signifie que vous ne pouvez pas l’exécuter sur du matériel autre qu’Apple en tant que machine virtuelle ou dans le cadre de son contrat de licence d’utilisateur final. Cependant, vous pouvez utiliser des hyperviseurs de type 2 sur du matériel Mac pour créer des machines virtuelles avec un invité macOS.
Il est impossible d'exécuter iOS sur une machine virtuelle aujourd'hui parce qu'Apple contrôle strictement son système d'exploitation iOS et ne l'autorise qu'à fonctionner sur les appareils iOS.
Ce qui se rapproche le plus d’une machine virtuelle iOS, c’est le simulateur d’iPhone fourni avec l’environnement de développement intégré Xcode, qui simule l’ensemble du système iPhone dans le logiciel.
La plateforme Java est un environnement d'exécution pour les programmes écrits dans le langage de développement logiciel Java. La promesse de Java, « écrivez une fois, exécutez n'importe où », signifie que n'importe quel programme Java peut être exécuté sur n'importe quelle plateforme Java. C'est pourquoi celle-ci incluait une machine virtuelle Java (JVM).
Les programmes Java contiennent du bytecode, qui est une forme d’instruction destinée à la JVM. La JVM compile ce bytecode en code machine, qui est le langage de plus bas niveau utilisé par l'ordinateur hôte. La JVM d'une plateforme Java crée un ensemble d'instructions de code machine différent de celui de la JVM d'une autre plateforme, en fonction du code machine attendu par le processeur.
Par conséquent, la JVM n’exécute pas un système d’exploitation complet et n’utilise pas d’hyperviseur comme le font les autres machines virtuelles. Au lieu de cela, il traduit les programmes logiciels de niveau application pour qu’ils s’exécutent sur du matériel particulier.
Comme JVM, 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 aux programmes écrits dans Python de s'exécuter sur divers processeurs.
Comme Java, Python traduit ses programmes dans un format intermédiaire appelé bytecode et les stocke dans un fichier prêt à être exécuté. Lorsque le programme s'exécute, la machine virtuelle Python traduit le bytecode en code machine pour une exécution rapide.
Linux est un système d’exploitation invité typique utilisé dans de nombreuses machines virtuelles. Il s'agit également d'un système d'exploitation hôte typique utilisé pour exécuter des machines virtuelles et possède même son propre hyperviseur, la machine virtuelle basée sur le noyau (KVM). Bien qu'il s'agisse d'un projet open source, Red Hat possède KVM.
Ubuntu est une distribution Linux produite par Canonical. Elle est disponible en version de bureau et en version serveur, que vous pouvez installer en tant que machine virtuelle. Les utilisateurs peuvent déployer Ubuntu en tant que système d'exploitation invité sur Microsoft Hyper-V. Ce système fournit une version optimisée d'Ubuntu Desktop qui fonctionne bien en mode session amélioré d'Hyper-V, offrant une intégration étroite entre l'hôte Windows et la machine virtuelle Ubuntu. Cela inclut la prise en charge de l'intégration du presse-papiers, du redimensionnement dynamique des bureaux, des dossiers partagés et du déplacement de la souris entre les bureaux hôte et invité.
Les machines virtuelles publiques ou à locataires multiples sont des machines virtuelles avec plusieurs utilisateurs partageant une infrastructure physique commune. Ce modèle constitue l’approche la plus rentable et la plus évolutive pour le provisionnement des machines virtuelles. Cependant, les environnements à locataires multiples ne disposent pas de certaines caractéristiques d’isolation que les organisations ayant des mandats stricts en matière de sécurité ou de conformité pourraient préférer.
Il existe deux modèles de machines virtuelles à locataire unique : les hôtes dédiés et les instances dédiées.
Un modèle de paiement à la carte n’a pas de coûts initiaux pour la machine virtuelle, et les utilisateurs paient simplement ce qu’ils utilisent. Les clients paient à l’heure ou à la seconde, selon le fournisseur et le type d’instance.
Modèle de VM le moins coûteux, les instances transitoires ou ponctuelles tirent parti de la capacité excédentaire d’un fournisseur, mais peuvent être récupérées par ce dernier à tout moment. Elles conviennent aux applications qui n’ont pas besoin d’être activées en permanence ou dont le coût est prohibitif avec les autres modèles.
Contrairement aux modèles de paiement à la carte, les cas réservés sont assortis d'un engagement à terme explicite, généralement compris entre un et trois ans, mais sont également assortis de remises importantes.
Un utilisateur paie généralement le coût total du serveur physique et est facturé par incréments selon ce que le fournisseur propose pour les serveurs dédiés, généralement à l'heure ou au mois.
Les bare Metal Servers sont avant tout une question de matériel brut, de puissance et d’isolation. Il s’agit de serveurs physiques avec infrastructure d'hébergement dédiée à un locataire unique, totalement dépourvus de cycles d’hyperviseur (logiciel de virtualisation), et entièrement dédiés à un seul client : vous.
Les workloads privilégiant les performances et l'isolement, comme les applications à forte intensité de données et les obligations de conformité réglementaire, sont généralement mieux adaptées aux bare Metal Servers, en particulier lorsqu'ils sont déployés sur des périodes prolongées.
Les applications ERP (gestion intégrée), CRM (gestion de la relation client), SCM (gestion de la chaîne d’approvisionnement), de commerce électronique et de services financiers ne sont que quelques-uns des workloads idéals pour les serveurs bare metal.
En revanche, lorsque vos workloads exigent une flexibilité et une évolutivité maximales, il est préférable de placer un hyperviseur sur le matériel bare metal pour créer une machine virtuelle. Les virtual machines augmentent la capacité et l'utilisation des serveurs. Elles sont parfaites pour déplacer des données d’une VM à une autre, redimensionner les ensembles de données et diviser les workloads dynamiques.
Le moyen le plus simple de comprendre ce qu’est un conteneur est de connaître sa différence par rapport à une machine virtuelle (VM) traditionnelle. Dans la virtualisation traditionnelle, que ce soit sur site ou dans le cloud, un hyperviseur permet de virtualiser le matériel physique. Chaque VM contient alors un système d’exploitation invité, une copie virtuelle du matériel dont le système d’exploitation a besoin pour fonctionner, 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). Chaque conteneur contient uniquement l'application et ses bibliothèques et dépendances. L'absence du système d'exploitation invité explique pourquoi les conteneurs sont si légers, rapides et portables.
Les conteneurs et Kubernetes, la plateforme open source d’orchestration de conteneurs qui les gère, sont devenus les unités de facto des architectures cloud natives et de microservices modernes. Bien que les conteneurs soient le plus souvent associés aux services sans état, les organisations peuvent également les utiliser pour les services avec état. Les conteneurs sont standard dans les scénarios de cloud hybride, car ils peuvent s’exécuter de manière constante sur le cloud public, le cloud privé et les environnements traditionnels sur site. Aujourd’hui, une organisation peut exécuter l’application sur son cloud privé, mais demain, elle peut avoir besoin de la déployer sur un cloud public d’un fournisseur différent. La conteneurisation des applications offre aux équipes la flexibilité nécessaire pour gérer les nombreux environnements logiciels de l’informatique moderne.
Il est important de noter que les entreprises peuvent coexister avec des conteneurs et des machines virtuelles. Par exemple, il est courant d’exécuter des conteneurs dans des machines virtuelles, car de nombreuses entreprises disposent d’une infrastructure basée sur ces dernières.
Une entreprise peut choisir un conteneur pour exécuter une application et utiliser une machine virtuelle pour fournir l’infrastructure sous-jacente. Cette méthode combine la portabilité et la vitesse des conteneurs avec la sécurité des machines virtuelles. Dans un autre scénario, une institution financière peut utiliser des machines virtuelles pour ses systèmes de bases de données, assurant une sécurité plus stricte avec isolation des ressources, et utiliser des conteneurs pour les applications frontales telles que les applications mobiles orientées client.
Et l'article de blog «Conteneurs vs. VM : quelle est la différence ?» en explique davantage.
La vidéo suivante présente les principes de base de la conteneurisation et sa comparaison avec l’utilisation de machines virtuelles :
La sélection d’une machine virtuelle et d’un fournisseur de cloud commence par l’examen de vos besoins en workloads et de vos exigences budgétaires, ainsi que d’autres facteurs critiques. Vous trouverez ci-dessous les 10 éléments à prendre en compte lors de la sélection d’un fournisseur de services de machines virtuelles.
Accélérez la transformation opérationnelle de votre entreprise grâce à des solutions cloud conçues pour l’innovation et la croissance. Découvrez des outils de pointe et des perspectives qui vous donneront une longueur d’avance sur la concurrence.
Prêt à moderniser votre entreprise ? Découvrez les stratégies de migration vers le cloud les plus efficaces pour optimiser les performances, réduire les coûts et améliorer l’évolutivité.
Découvrez comment l’infrastructure en tant que service (IaaS) peut renforcer votre entreprise grâce à des solutions d’infrastructure cloud évolutives, flexibles et rentables, adaptées à vos besoins.
Découvrez comment les solutions IaaS, PaaS et SaaS peuvent transformer vos opérations, apportant flexibilité, évolutivité et rentabilité. Comprenez-en les différences et choisissez la solution idéale pour votre croissance.
IBM Cloud Virtual Server for VPC est une famille de serveurs virtuels Intel x86, IBM Z et IBM LinuxONE basés sur IBM Cloud Virtual Private Cloud.
Les serveurs dédiés IBM Cloud offrent une solution d’hébergement Web évolutive avec un trafic backhaul gratuit illimité et des options de personnalisation étendues.
Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com