Concept de la virtualisation

De Marijan Stajic | Wiki
Aller à la navigation Aller à la recherche

Il existe principalement deux types de virtualisation, la lourde et la légère. Il est important de comprendre la différence entre les deux afin de saisir comment notamment les systèmes de conteneurisations fonctionne réellement.


Linux        Docker        Kubernetes       

Lourde

Lorsque vous utilisez des machines virtuelles, vous effectuez une virtualisation lourde, ce qui signifie que vous créez un système autonome à l'intérieur du système hôte, lui attribuant ainsi ses propres ressources.


Virtualisation lourde vm.png


Donc, une isolation totale est réalisée, ce qui présente à la fois des contraintes et de nombreux avantages. En ce qui concerne les inconvénients, voici quelques exemples :

  • Les machines virtuelles nécessitent un temps de démarrage plus long ;
  • Étant donné que des ressources doivent être allouées aux machines virtuelles, elles réservent ces ressources sur le système hôte même si elles ne les utilisent pas entièrement.

Voici une liste d'avantages de faire de la virtualisation lourde :

  • Les machines virtuelles sont totalement isolée du système d'hôte ;
  • Les ressources attribués lui sont totalement reréservées ;
  • La possibilité d'installer différents système d'exploitation.

Afin de résoudre les contraintes liées aux applications qui n'utilisent pas toutes les ressources mises à leur disposition, un nouveau système de virtualisation plus léger a été créé : les conteneurs.

Légère

Lorsque vous utilisez des conteneurs, vous optez pour une virtualisation légère, car ils ne virtualisent pas les ressources, mais se concentrent plutôt sur l'isolation des processus. Les conteneurs partagent donc les ressources avec le système hôte. Docker utilise donc ce système de virtualisation.


Virtualisation legere conteneur.png


Un conteneur est un processus ou un ensemble de processus isolé du système. Ce concept existait déjà avant Docker avec des systèmes telles que OpenVZ ou LXC. Cependant, avec ces systèmes de virtualisation, partagent le même noyau Linux, ce qui signifie que les systèmes Windows ou BSD ne sont pas directement compatibles.

Voici les principaux avantages à utiliser des conteneurs pour les applications :

  • Ressources : Comparativement aux machines virtuelles, les conteneurs ne verrouillent pas les ressources lors de l'allocation de la quantité de CPU, de RAM ou d'autres ressources. Par exemple, si l'on attribue 16 Go de RAM à un conteneur, mais qu'il n'en utilise que 2, les 14 Go restants ne seront pas bloqués.
  • Démarrage : Étant donné que les conteneurs n'ont pas besoin de virtualiser les ressources, mais simplement de les isoler, leur démarrage est considérablement plus rapide.
  • Autonomie : Les conteneurs peuvent être exécutés localement sur les machines des utilisateurs, ce qui leur offre une autonomie pour travailler sur différentes applications.

L'utilisation de ce système de conteneurs permet de réduire les coûts liés à l'infrastructure. De plus, sur des services en production, il est possible d'ajouter facilement des ressources pour répondre aux besoins sans rencontrer de problèmes.