Google utilise des conteneurs pour tout faire tourner dans leurs clusters, démarrant plus de 2 milliards de conteneurs par semaine.
Joe Beda, Ingénieur logiciel dans l'équipe Google Cloud Platform, a fait une présentation à Gluecon sur la façon dont l'entreprise utilise les technologies de conteneurs Linux, indiquant que tout à Google s'exécute dans un conteneur. Le résultat est que Google démarre plus de 2 milliards de conteneurs par semaine, plus de 3 000 par seconde, sans compter les conteneurs avec une longue durée de vie.
Google utilise les technologies de conteneurs depuis 2004, en proposant les cgroups en 2006 et en créant l'année dernière le projet Let Me Contain That For You (lmctfy), la version open source de la stack de conteneurs de Google, qui fournit des conteneurs d'application Linux remplaçant LXC. Ces conteneurs permettent l'isolement des ressources utilisées par plusieurs applications en cours d'exécution sur une machine unique et donnent aux applications en cours d'exécution l'impression de tourner sur une machine dédiée. Les applications peuvent également être en mesure de créer et de gérer leurs propres sous-conteneurs.
Rohit Jnagal, Ingénieur logiciel chez Google, a commenté lmctfy:
lmctfy gère l'ensemble des besoins d'isolation des ressources de Google depuis 2007. Jusqu'à présent, il était éclaté dans plusieurs éléments de l'infrastructure de Google. Lors d'une refonte, nous avons pu séparer cette couche et j'ai pensé que ce serait amusant de le rendre open-source et donner en retour.
Il décrit également les principales differences entre lmctfy et LXC :
API de gestion des ressources : L'API LXC est construite pour supporter les namespaces et exporte le support pour les cgroups de manière presque transparente. Avec lmctfy, Google tente de fournir une configuration fondée sur l'intention sans que les utilisateurs aient à comprendre les détails des cgroups, dont les API peuvent être instables et difficiles à utiliser.
Priorité : lmctfy est conçu pour fournir un support pour le partage des ressources en permettant un traitement par lots qui peut fonctionner lorsque la machine est relativement inactive. Toutes les applications spécifient une priorité et les exigences de latence et lmctfy gère tous les détails des cgroups pour honorer les exigences de chaque tâche.
Interface de programmation : lmctfy est le bloc le plus bas niveau pour la gestion des applications sur le cloud de Google. Il est conçu pour fonctionner avec d'autres outils et programmes, et est beaucoup mieux spécifié et stable pour la construction de chaînes de compilation plus complexes au-dessus.
Google intègre également des conteneurs dans la plate-forme Cloud de Google. Le gestionnaire de conteneurs, rendu Open Source par Google, est un petit agent Python conçu pour gérer un groupe de conteneurs Docker selon un manifeste YAML. Une version libre, en preview, pour gérer les conteneurs fonctionnant sur Google Compute Engine est déjà disponible, supportant le manifeste de conteneurs et la création de conteneurs au démarrage. La stack est basée sur Debian 7 et comprend l'exécution Docker et le gestionnaire de conteneurs.
Docker sera également en mesure de profiter de lmctfy car il existe déjà une intégration pour le driver Docker lmctfy, grâce à la nouvelle possibilité d'exécuter des conteneurs dans des environnements autres que LXC, incluse depuis la version 0.9 de Docker.