Les machines virtuelles (également appelée VM ou Virtual Machines), dans leur utilisation, n’ont aucune différence avec les ordinateurs physiques et toute autre machine physique (Smartphone, tablette ou serveur).
En effet, une machine virtuelle fait appel à des ressources physiques pour fonctionner. Elle dispose d’un CPU, d’une mémoire, de disques de stockage des fichiers et a la possibilité, si besoin, de se connecter à Internet. Si un ordinateur traditionnel se compose en fait de matériel physique et tangible, la machine virtuelle n’existe simplement que sous forme de code. De nombreuses entreprises considèrent plus avantageux d’utiliser les machines virtuelles que les ordinateurs classiques. Découvrez tout les avantages de cette technologie.
À quoi sert une machine virtuelle ?
Utiliser une machine virtuelle signifie créer une version logicielle d’un ordinateur avec toutes les quantités dédiées de ressources de processeur, de mémoire et de stockage qui sont extraites de l’ordinateur hôte physique. Ces ressources de la machine virtuelle peuvent être extraites d’un simple PC ou d’un serveur distant.
En pratique, une machine virtuelle est un fichier, généralement appelé image, qui se comporte comme un véritable ordinateur. Elle peut être utilisée depuis une fenêtre d’un poste informatique séparé afin d’utiliser un système d’exploitation différent. Elle peut aussi agir comme une expérience utilisateur complète comme c’est souvent le cas avec les ordinateurs physiques utilisés dans un environnement professionnel. Cela est possible, car la machine virtuelle est séparée du reste du système. Elle ne peut pas influencer le système d’exploitation principal de l’ordinateur hôte.
Qu’est-ce qu’un hyperviseur ?
Un hyperviseur, également connu sous le nom de moniteur de machine virtuelle, est un processus qui crée et gère les machines virtuelles. Un hyperviseur permet à un ordinateur hôte de prendre en charge plusieurs machines hôtes invitées en partageant virtuellement les ressources physiques.
On peut distinguer deux types d’hyperviseurs, le premier s’exécute directement sur le matériel physique de la machine hôte et n’a pas besoin de charger un système d’exploitation sous-jacent. Le second est généralement installé au-dessus d’un système d’exploitation existant. Il s’appuie sur le système d’exploitation préexistant de la machine hôte pour gérer les appels aux ressources CPU, mémoire, stockage et réseau. Voici un schéma représentant un hyperviseur de type 1 gérant 3 machines virtuelles :
Machine virtuelle et hyperviseur : comment ça fonctionne ?
Une machine virtuelle ou un ordinateur virtuel est un environnement virtuel créé à partir de l’un des logiciels de virtualisation open source ou payant existant actuellement sur le marché. Elle fonctionne comme un système informatique virtuel autonome, équipée d’un processeur, d’une mémoire, d’une interface réseau et d’un stockage. Elle est créée sur un système matériel physique (hors site ou sur site).
Dans quels cas utilise-t-on une machine virtuelle ?
Les machines virtuelles sont des solutions principalement utilisées par les clouds providers (AWS, GCP, Azure…) afin de mettre à disposition une quantité définie de matériel c’est-à-dire un certain nombre de cœurs de processeurs et de GB de RAM. En effet, ces compagnies disposent de matériel à la pointe de la technologie et les machines virtuelles permettent de diviser la puissance de calcul de leurs machines.
Il y a aussi d’autres applications à ces machines virtuelles comme le fait d’utiliser des applications qui ne sont normalement pas disponibles pour un système d’exploitation particulier. On peut notamment prendre l’exemple de Power BI qui ne fonctionne que sur Windows et nécessite donc l’utilisation d’une machine virtuelle pour tourner sur une machine physique utilisant macOS ou Linux. On peut aussi mentionner que ces machines virtuelles ajoutent une couche d’isolation devant le système d’exploitation de la machine hôte qui peut être intéressant quand on manipule des fichiers potentiellement dangereux.
Quels sont les avantages d’une machine virtuelle ?
Une machine virtuelle peut offrir plusieurs avantages par rapport au matériel physique traditionnel :
1. Flexibilité
Il s’agit du principal atout de celles-ci. La création d’une machine virtuelle est nettement plus rapide et plus facile que l’installation d’un système d’exploitation sur un serveur physique. Il est possible de cloner une machine virtuelle 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 traiter les tâches selon les besoins.
2. Meilleure utilisation des ressources et optimisation du retour sur investissement
Comme la plupart des machines virtuelles fonctionnent sur un seul ordinateur physique, il n’est pas nécessaire d’acheter un nouveau serveur pour faire fonctionner un autre système d’exploitation. Vous pouvez tirer un meilleur parti du matériel que vous possédez déjà.
3. Évolutivité
Grâce au cloud computing, il est devenu plus facile d’introduire plusieurs copies d’une même machine virtuelle pour mieux gérer des charges de travail accrues.
4. Portabilité
Les nouvelles machines virtuelles peuvent être déplacées si nécessaire entre des ordinateurs physiques sur un réseau. Cela permet de répartir les charges de travail sur les serveurs disposant d’une puissance de calcul supplémentaire.
5. Sécurité
Les machines virtuelles offrent une meilleure sécurité. En effet, c’est un fichier qui peut être utilisé pour détecter un logiciel malveillant provenant d’un programme externe. Si elle est compromise, il suffit de la supprimer et la recréer rapidement, ce qui accélère la récupération des fichiers infectés par des logiciels malveillants.
Quel lien avec la data ?
Dans le domaine plus spécifique de la data, les machines virtuelles sont surtout utilisées lors du déploiement d’applications. En effet, les machines virtuelles mises à disposition par les différents cloud providers offrent une grande flexibilité dans la puissance de calcul mise à disposition et permettent, utilisées avec d’autres outils tels que Docker, de déployer des applications adaptables en termes de taille. Les modèles de prédictions qui nécessitent un entraînement continu sur les données qui lui sont fournies peuvent être mis sur des machines virtuelles afin de tourner 24h/24.
Conclusion
S’il y a une chose à retenir sur les machines virtuelles, c’est qu’elles offrent une flexibilité indispensable à tout projet dans la data. Combinées aux autres services proposés par les cloud providers, c’est encore plus vrai. Dans notre cursus de Data Engineer, vous aurez l’occasion d’utiliser des machines virtuelles afin de déployer des applications ou des APIs.