Qu'est-ce qu'une machine virtuelle ?

Une machine virtuelle (VM) est un ordinateur logiciel qui fournit un environnement isolé sur un matériel hôte. Les machines virtuelles peuvent exécuter des programmes et des systèmes d'exploitation, stocker des données, se connecter à des réseaux et exécuter d'autres fonctions de calcul. Une grande partie des technologies dont nous bénéficions aujourd'hui, comme le cloud computing et l'intelligence artificielle, reposent sur le concept de machine virtuelle, qui permet de séparer systèmes d'exploitation et logiciels d'une machine physique. Par exemple, dans le cloud computing, les VM servent à virtualiser les ressources des serveurs des fournisseurs de services cloud, ce qui permet aux clients de partager des ressources avec une architecture cloud mutualisée tout en étant isolés les uns des autres.

Comment fonctionnent les machines virtuelles ?

Les machines virtuelles utilisent la technologie de virtualisation pour créer du matériel virtuel, c'est-à-dire une version virtuelle d'un ordinateur sur une machine physique. La machine physique sur laquelle s'exécutent les VM est appelée hôte, tandis que les VM exécutées sur l'hôte sont appelées invités.

Chaque VM invitée s'exécute sur une partition isolée sur l'hôte, complètement séparée des autres invités. Vous pouvez héberger plusieurs VM sur une seule machine hôte, souvent un serveur, qui s'exécute sur une couche logicielle appelée hyperviseur.

L'hyperviseur fait abstraction des ressources physiques de la machine hôte, telles que les CPU, les GPU, les TPU, la mémoire, le stockage ou les réseaux, dans un pool qui peut être provisionné et alloué de manière dynamique aux VM invitées selon les besoins, offrant ainsi plus de flexibilité et une meilleure efficacité globale.

Deux principaux types d'hyperviseurs

  • Type 1 : hyperviseurs bare metal : ils s'exécutent directement sur le matériel physique de l'hôte. Ils sont couramment utilisés dans les centres de données d'entreprise pour leurs performances et leur efficacité élevées. Par exemple, Google Cloud utilise un hyperviseur basé sur KVM pour alimenter ses machines virtuelles Compute Engine.
  • Type 2 : hyperviseurs hébergés  : ils s'exécutent en tant qu'application sur un système d'exploitation existant, ce qui les rend adaptés à une utilisation sur ordinateur de bureau. Leur cas d'utilisation le plus courant est le développement et les tests.

Types de machines virtuelles

De manière générale, il existe deux types de machines virtuelles : les VM de traitement et les VM système.

Une VM de traitement, également appelée machine virtuelle d'application ou environnement d'exécution géré (MRE), crée un environnement virtuel d'un système d'exploitation pendant qu'une application ou un processus est en cours d'exécution, et la détruit dès que vous quitter. Les VM de traitement permettent de créer un environnement indépendant de la plate-forme, qui permet à une application ou à un processus de s'exécuter de la même manière sur n'importe quelle plate-forme. Un exemple concret est l'environnement d'exécution Node.js sur App Engine, qui permet à un programme Node.js de s'exécuter dans un environnement géré sur Google Cloud, quel que soit le système d'exploitation sous-jacent.

Une VM système (parfois appelée "machine virtuelle matérielle") simule un système d'exploitation complet, permettant à plusieurs environnements d'OS de vivre sur la même machine. Il s'agit généralement du type de VM auquel on fait référence lorsqu'on parle de "machines virtuelles". Les VM système peuvent exécuter leurs propres OS et applications. Un hyperviseur surveille et répartit les ressources de la machine hôte physique entre les VM système.

Certains fournisseurs de services cloud, y compris Google, offrent la possibilité supplémentaire de personnaliser la quantité exacte de processeurs virtuels et de mémoire virtuelle dans chaque instance. Cela permet de dimensionner chaque charge de travail de façon plus précise et d'éviter la sous-utilisation, ainsi que les coûts associés aux ressources et aux licences logicielles pour cette instance de calcul. Par exemple, certaines charges de travail peuvent nécessiter un rapport nombre de cœurs de calcul/mémoire élevé, tandis que d'autres peuvent nécessiter l'inverse. La personnalisation de la machine virtuelle répond à ces cas d'utilisation sans surprovisionner ni surpayer des ressources qui ne seront pas utilisées.

VM ou conteneurs

Bien que les VM et les conteneurs soient utilisés pour isoler les applications, ils le font de manière fondamentalement différente. Une machine virtuelle virtualise l'ensemble de la pile matérielle physique, y compris le système d'exploitation. Chaque VM est ainsi un environnement autonome et isolé, mais cela signifie aussi que les VM ont tendance à être plus volumineuses et à consommer plus de ressources.

Les conteneurs, quant à eux, sont plus légers, car ils ne virtualisent que la couche de l'OS. Au lieu d'inclure un système d'exploitation complet avec chaque application, un conteneur partage le kernel de l'OS de l'hôte. Les conteneurs peuvent ainsi utiliser moins de ressources que les VM et démarrer plus rapidement tout en restant isolés. Les conteneurs sont donc intéressants pour le développement de nouvelles applications. Comme de nombreuses applications développées au cours des 10 dernières années ont été conçues pour les conteneurs, de nombreuses charges de travail, y compris l'e-commerce, le back-office et l'IA, sont "natives en conteneurs".

Comment sont utilisées les machines virtuelles ?

Les VM sont les composants de base des ressources informatiques virtualisées. Elles jouent un rôle principal dans la création d'applications, d'outils ou d'environnements, que ce soit dans le cloud ou sur site.

Voici quelques-unes des façons les plus courantes d'utiliser les machines virtuelles dans les entreprises :

Plusieurs machines physiques peuvent être reconfigurées et exécutées sur un hôte aux côtés d'autres VM, ce qui permet aux organisations de réduire la prolifération. Les VM ont prouvé au fil du temps qu'elles étaient capables d'exécuter même les applications les plus sensibles aux performances.

Un service informatique centralisé peut provisionner et gérer les VM pour chaque unité commerciale et domaine fonctionnel, ce qui accélère l'accès aux ressources tout en améliorant la visibilité de l'entreprise.

Les VM peuvent servir d'environnements isolés pour les tests et le développement avec des fonctionnalités complètes, mais qui n'ont aucun impact sur l'infrastructure environnante.

Les VM peuvent facilement être désactivées, activées, migrées et adaptées, offrant ainsi une flexibilité maximale pour le développement et le déploiement.

La flexibilité et la portabilité offertes par les VM sont essentielles pour accroître la vitesse des initiatives de migration.

La réplication des systèmes dans des environnements cloud à l'aide de VM peut offrir une couche de sécurité supplémentaire. Les environnements cloud peuvent également être mis à jour en continu.

Les VM constituent la base de la création d'un environnement cloud en parallèle d'un environnement sur site, offrant plus de flexibilité sans pour autant abandonner les anciens systèmes.

Avantages des machines virtuelles

Les machines virtuelles offrent de nombreux avantages, en particulier si vous optez pour une VM cloud, par exemple :

Évolutivité

Les VM dans le cloud facilitent le scaling de vos applications, ce qui améliore la disponibilité et les performances. Vous pouvez augmenter votre capacité en fonction de la demande sans avoir à investir dans vos propres serveurs physiques.

Portabilité

Une machine virtuelle est un package logiciel unique contenant des ressources matérielles, un système d'exploitation et toutes ses applications. Vous pouvez facilement déplacer des VM d'un serveur à un autre, ou même du matériel sur site vers des environnements cloud.

Empreinte et coûts réduits

Les VM vous permettent d'exécuter plusieurs environnements virtuels à partir d'une seule machine, ce qui vous aide à réduire l'empreinte de votre infrastructure physique, votre facture d'électricité, ainsi que les coûts de maintenance et de gestion.

Provisionnement plus rapide

Les VM peuvent être facilement dupliquées, ce qui permet aux entreprises de créer de nouveaux environnements identiques sans avoir à les configurer en partant de zéro.

Fiabilité

Les machines virtuelles et leurs composants existent virtuellement et restent isolés des autres VM invitées. En cas de plantage d'une VM, les autres VM invitées restent opérationnelles, et la machine hôte physique n'est pas affectée.

Sécurité renforcée

Les machines virtuelles vous permettent d'exécuter plusieurs systèmes d'exploitation sans affecter le système d'exploitation hôte. Les VM vous permettent de créer des environnements virtuels sécurisés pour tester des applications ou même étudier les failles de sécurité, sans risque élevé pour la machine hôte.

Défis potentiels des machines virtuelles

Il y a toutefois quelques points à prendre en compte lors de l'exécution de VM. L'un des plus grands défis potentiels des machines virtuelles est que l'exécution de plusieurs systèmes d'exploitation et d'une couche d'hyperviseur peut entraîner des coûts en termes de performances si la machine hôte n'est pas assez robuste. De plus, le matériel virtuel peut ne pas être aussi efficace que le matériel physique d'une machine physique. Enfin, la plupart des fournisseurs de services cloud proposent des machines virtuelles dont le nombre de CPU et la quantité de mémoire sont fixes, ce qui entraîne une utilisation inefficace des ressources.

La plupart de ces problèmes peuvent toutefois être résolus en choisissant d'utiliser des VM proposées par un fournisseur de services cloud. Les VM cloud offrent de nombreux avantages par rapport aux VM traditionnelles, car elles permettent aux entreprises d'accéder à la puissance de calcul de l'intégralité des ordinateurs d'un centre de données, plutôt qu'à une seule machine. De plus, les tailles de machines virtuelles Google Compute Engine proposent des types de machines personnalisés. Au lieu de choisir parmi des types de machines prédéfinis qui peuvent inclure une capacité excédentaire, vous pouvez adapter le ratio CPU/mémoire spécifiquement à vos charges de travail. Vous ne payez ainsi que les ressources que vous utilisez réellement. Cette approche ciblée minimise le gaspillage et peut réduire considérablement vos dépenses cloud, en particulier lorsque vous migrez depuis un environnement sur site vers Google Cloud ou depuis d'autres fournisseurs cloud. Compute Engine propose également des types de machines virtuels optimisés pour les besoins spécifiques des clients en termes de charges de travail d'entreprise, de configurations à haute capacité de mémoire ou de charges de travail exigeantes comme le machine learning ou le calcul hautes performances.

Google Cloud propose aussi des machines virtuelles protégées pour une sécurité renforcée et une intégrité vérifiable de vos instances de VM. Les machines virtuelles protégées Google Cloud exploitent les fonctionnalités et contrôles de sécurité avancés de la plate-forme qui protègent les charges de travail d'entreprise contre des menaces telles que les attaques à distance, l'élévation des privilèges et les menaces internes.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre problématique.

Passez à l'étape suivante

Commencez à créer des applications sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours disponibles sans frais.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud