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.
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.
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.
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".
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.
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.
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.
Solution
Solution
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours disponibles sans frais.