Définition de la conteneurisation en cloud computing
Plus léger et plus pratique que la machine virtuelle, le conteneur (ou container en anglais) permet de mettre rapidement à disposition du développeur un environnement de développement. Son fonctionnement est différent de la VM, car il fonctionne en silo, en embarquant avec chaque application conteneurisée, l’ensemble de son environnement (OS, BDD etc.), ce qui en assure la portabilité et la résilience, et offre des garanties de performances supérieures en termes d’infrastructure cloud.
Définition de la conteneurisation
Un conteneur est une enveloppe virtuelle isolée du système d’exploitation, contenant toutes les librairies dont a besoin une application. Ce conteneur va ensuite pouvoir être facilement dupliqué, déplacé, supprimé. Il offre aussi des garanties de résilience et d’efficacité dans son exécution.
Pour comprendre l’intérêt du conteneur et la valeur qu’il peut apporter par rapport à une machine virtuelle, il faut comparer son fonctionnement à cette dernière. La principale contrainte de la machine virtuelle est que lors de chaque création de machine virtuelle, un OS invité devra être créé. Ceci est coûteux en temps et en ressources. Le système de conteneurs permet de s’affranchir des OS invités en utilisant directement le système d’exploitation de l’hôte.
Pour ce faire, le contrôleur va se charger d’extraire l’application de l’environnement dans lequel elle s’exécute réellement. L’application sera ainsi mise en conteneur avec tous les éléments dont elle a besoin pour fonctionner : fichiers, librairies, outils… Cela permet ainsi de gagner en performance puisqu’un seul OS fonctionne.
Historique de la conteneurisation
La conteneurisation est une solution relativement récente, puisque ses premiers pas remontent à 2001, avec le projet Linux VServer, qui permettait d’exécuter plusieurs environnements d’exploitation isolés sur un seul OS hôte. Ce jalon ainsi posé, nombre solutions de conteneurisation se sont ensuite développées.
Ainsi, OpenVZ et LXC (Linux Containers) sont mis à disposition respectivement en 2005 et 2008. C’est sur ce dernier que Docker va se baser en apportant une couche de gestion, d’outils et de méthodes. Dès sa mise à disposition en Open Source, courant 2013, la solution va rapidement se populariser pour devenir incontournable. Pour la petite histoire, l’entreprise à l’origine de cette solution était française, avant de s’implanter aux Etats-Unis en 2010, faute de financements.
En 2015, Google lance Kubernetes, qui plutôt que de concurrencer les solutions existantes vient davantage les compléter, en offrant une couche d’orchestration qui permet de faciliter la gestion des containers au travers de différents cloud publics. L’orchestration s’impose notamment dans un contexte multi-cloud.