Accueil › Fondamentaux › Virtualisation et conteneurs
Virtualisation et conteneurs
Le cloud repose sur une idée simple : une machine physique peut se comporter comme plusieurs ordinateurs indépendants. Sans cette technique, la mutualisation serait impossible, et louer un serveur à l'heure n'aurait aucun sens économique.
Deux méthodes coexistent pour y parvenir. La virtualisation découpe la machine et donne à chaque part un système d'exploitation complet. Les conteneurs vont plus loin dans la légèreté : ils partagent le système de la machine hôte et n'emportent que l'application elle-même.
Cette différence de profondeur explique tout le reste : les temps de démarrage, le poids, le niveau d'isolation et les cas d'usage. Ce guide la détaille, puis explique pourquoi l'orchestration est devenue nécessaire, et quand chaque méthode se justifie.
Au sommaire
La virtualisation, ou découper une machine
Qu'est-ce qu'un hyperviseur ?
L'hyperviseur est le logiciel qui répartit les ressources physiques entre plusieurs machines virtuelles. Il attribue à chacune une part du processeur, une quantité de mémoire et un espace disque. Chaque machine virtuelle croit disposer d'un ordinateur entier et n'a aucun moyen d'observer ses voisines.
Cette illusion est solide. C'est elle qui permet à un fournisseur de cloud public d'installer sur un même serveur les charges de plusieurs clients concurrents, sans que l'un puisse atteindre les données de l'autre. C'est la base du modèle de mutualisation décrit dans qu'est-ce que le cloud.
Ce que cela coûte
Chaque machine virtuelle embarque un système d'exploitation complet. Dix machines virtuelles font donc tourner dix systèmes, avec dix jeux de mises à jour à appliquer et dix fois la mémoire correspondante. Le démarrage prend des dizaines de secondes, et l'image pèse plusieurs gigaoctets.
Les conteneurs, ou emporter l'application
Comment fonctionne un conteneur ?
Un conteneur ne duplique pas le système d'exploitation. Il partage le noyau de la machine hôte et n'emporte que l'application, ses bibliothèques et sa configuration. Le système isole ensuite chaque conteneur pour qu'il ne voie ni les fichiers ni les processus des autres.
Le gain est spectaculaire sur trois plans. Un conteneur pèse quelques dizaines de mégaoctets, démarre en une seconde environ, et permet d'en faire tenir beaucoup plus sur la même machine.
Qu'est-ce qu'une image ?
Une image de conteneur est un modèle figé : l'application, ses dépendances et sa configuration, empaquetées ensemble. On lance autant de conteneurs identiques que nécessaire à partir de la même image.
C'est ce qui règle le vieux problème du logiciel qui fonctionne sur le poste du développeur mais pas sur le serveur. L'environnement ne se reconstitue plus à destination : il voyage avec l'application.
Le comparatif point par point
| Critère | Machine virtuelle | Conteneur |
|---|---|---|
| Système d'exploitation | Un complet par machine | Partagé avec l'hôte |
| Poids typique | Plusieurs gigaoctets | Quelques dizaines de mégaoctets |
| Temps de démarrage | Dizaines de secondes | Environ une seconde |
| Isolation | Forte | Plus faible, noyau partagé |
| Densité par serveur | Dizaines | Centaines |
| Convient à | Applications existantes, isolation stricte | Services découpés, déploiements fréquents |
La ligne à ne pas franchir. Les conteneurs d'une même machine partagent un noyau, donc une surface commune. Les fournisseurs de cloud public n'isolent jamais deux clients différents par de simples conteneurs : ils utilisent des machines virtuelles pour cela, et réservent les conteneurs à l'organisation interne des applications d'un même client.
Pourquoi l'orchestration existe
Lancer trois conteneurs à la main est trivial. En gérer trois cents, répartis sur vingt machines, avec des redémarrages, des mises à jour progressives et une charge qui varie, ne l'est plus du tout.
C'est le rôle d'un orchestrateur, dont Kubernetes est l'exemple le plus répandu. Il décide où placer chaque conteneur selon les ressources disponibles, relance ceux qui tombent, ajuste leur nombre selon la charge, et déploie une nouvelle version progressivement pour pouvoir revenir en arrière.
Sa puissance a une contrepartie souvent sous-estimée : une complexité réelle, qui demande des compétences dédiées. En dessous de quelques dizaines de conteneurs, une plateforme managée du type décrit dans notre guide sur le PaaS rend généralement le même service pour un effort bien moindre.
Quand choisir quoi
- Une application existante à déplacer sans la modifier : machine virtuelle. C'est le chemin le plus court et le moins risqué.
- Une isolation stricte entre deux charges sensibles : machine virtuelle, pour la séparation du noyau.
- Une application découpée en services, déployée plusieurs fois par semaine : conteneurs, pour la vitesse de démarrage et la reproductibilité.
- Une charge très variable dans la journée : conteneurs, dont la densité et la rapidité permettent de suivre la demande de près.
- Une petite équipe sans spécialiste d'exploitation : une plateforme managée plutôt qu'un orchestrateur installé et maintenu par vos soins.
Ces deux techniques ne s'opposent d'ailleurs pas. La configuration la plus courante fait tourner des conteneurs à l'intérieur de machines virtuelles : la machine virtuelle apporte l'isolation entre clients, le conteneur apporte la souplesse à l'intérieur.
Questions fréquentes
Qu'est-ce que la virtualisation ?
C'est la technique qui permet de faire fonctionner plusieurs ordinateurs indépendants sur une seule machine physique. Un logiciel appelé hyperviseur découpe le processeur, la mémoire et les disques en parts attribuées à chaque machine virtuelle. Chacune possède son propre système d'exploitation et ignore l'existence des autres. C'est le socle technique de tout le cloud.
Quelle différence entre une machine virtuelle et un conteneur ?
Une machine virtuelle embarque un système d'exploitation complet et démarre en dizaines de secondes, pour un poids de plusieurs gigaoctets. Un conteneur partage le noyau du système hôte et n'emporte que l'application et ses dépendances : il pèse quelques dizaines de mégaoctets et démarre en une seconde. L'isolation de la machine virtuelle est en revanche plus stricte.
Un conteneur est-il aussi sûr qu'une machine virtuelle ?
Non, l'isolation est plus faible par construction. Les conteneurs d'une même machine partagent le noyau du système hôte, ce qui crée une surface commune qu'une machine virtuelle n'a pas. C'est la raison pour laquelle les fournisseurs de cloud public isolent les clients par des machines virtuelles, et réservent les conteneurs à l'organisation des applications d'un même client.
À quoi sert Kubernetes ?
À gérer un grand nombre de conteneurs répartis sur plusieurs machines. Il décide où placer chaque conteneur, redémarre ceux qui tombent, ajuste leur nombre selon la charge et gère les mises à jour progressives. Sa puissance a un prix : une complexité réelle, rarement justifiée en dessous de quelques dizaines de conteneurs.
Qu'est-ce qu'une image de conteneur ?
C'est un modèle figé qui contient l'application, ses bibliothèques et sa configuration. On lance autant de conteneurs identiques que l'on veut à partir d'une même image. C'est ce qui règle le problème du logiciel qui fonctionne sur le poste du développeur et pas sur le serveur : l'environnement voyage avec l'application.
Faut-il choisir des machines virtuelles ou des conteneurs ?
Les machines virtuelles conviennent à une application existante que vous ne voulez pas modifier, ou lorsque l'isolation doit être maximale. Les conteneurs conviennent aux applications découpées en services, déployées souvent, avec une charge variable. Beaucoup d'infrastructures utilisent les deux : des conteneurs qui tournent à l'intérieur de machines virtuelles.
Nicolas Poirier
Passionné d'informatique et de réseaux. J'écris ici les explications que j'aurais aimé trouver en débutant : sans jargon inutile, et en ramenant le cloud à ce qu'il est réellement, des machines, des câbles et des contrats.
Poursuivre la lecture
La virtualisation explique comment le matériel se partage. Le modèle de service, lui, explique jusqu'où vous déléguez ce partage : louer la machine virtuelle, ou ne livrer qu'un conteneur à une plateforme qui s'occupe du reste. La frontière est tracée dans IaaS, PaaS, SaaS.
Et puisque la densité obtenue par ces techniques conditionne directement le prix à l'heure, le guide combien coûte le cloud montre comment cette mécanique se retrouve sur la facture.
