" Real coders don't blog, or at least not very often! " A.R.

Qu'est-ce qu'un container ?


Un container est une enveloppe permettant de packager une application avec juste ce dont elle a besoin pour fonctionner. L’utilisation de containers permet notamment de décomposer l’infrastructure applicative en petits éléments, parfois appelés microservices.

Un container linux peut contenir n’importe quoi, tant que cela fonctionne sur un kernel linux, et peut être déployé tel quel partout. Pour fonctionner il utilise le kernel du serveur hôte et possède son propre espace de processus et sa propre interface réseau. Il est isolé de l’hôte mais exécuté directement dessus.

Popularisé par Docker, le concept de container n’est pourtant pas nouveau: chroot, Solaris Containers et Zones (2004), LXC - Linux Containers (2008)… Néanmoins leur mise en oeuvre sous Linux était relativement compliquée et impliquait l’utilisation de différentes technologies, comme les cgroups (services du Linux kernel qui permettent de limiter et prioriser les ressources) et les namespaces (qui permettent d’isoler les ressources)

Ce qui est nouveau c’est que docker a permis une grosse simplification d’utilisation des containers et qu’une grosse communauté s’est formée autour de docker.

A note qu’il existe d’autres technologies de containers, comme rkt de CoreOS.

 

Pourquoi utiliser des containers?

  • meilleurs performances que les VMs
  • portabilité d’un environnement à l’autre (multi-cloud)
  • cohérence entre chaque environnement: Dev, Test et Prod
  • modularité simplifiée: une application peut être composée de plusieurs containers
  • gestion facilitée de l’héritage technique grâce à l’isolation des containers

June 30, 2016
227 words


Categories
Tags
service cloud GCP container docker rkt

Connect. Socialize.