En direct de Berlin - Beaucoup de monde à la KubeCon 2017 sur les bords de la Spree, principalement des développeurs travaillant pour de grands groupes comme Audi et Amadeus ou de jeunes entreprises comme Blablacar. Cette conférence, parrainée par la Linux Foundation et la Cloud Native Computing Foundation, est principalement axée sur les solutions et services qui portent les architectures micro services, à savoir Kubernetes (gestionnaire de containers), Prometheus (monitoring avec une base de données de séries temporelles) ou encore Fluentd (collecte et analyse de logs).
Mais la principale annonce de la seconde journée concerne l’arrivée de la version 1.6 de Kubernetes. Développé à l’origine par Google - ce qui explique les nombreux porte-parole de la firme de Mountain View durant les interminables keynotes - Kubernetes a très vite grandi et en partie échappé à son géniteur pour atterrir dans la Linux Foundation. La version 1.6 apporte bien sûr son lot de nouveautés et notamment la gestion de clusters avec 5000 nœuds. Pourquoi 5000 ? C’est une demande de nos clients pour supporter une charge de travail globale dans plusieurs régions du monde en mode multicloud, a indiqué durant la keynote Aparna Sinha, product management team lead chez Google. C’est particulièrement important pour réduire les coûts de fonctionnement et de gestion. La capacité de gérer des clusters de 5 000 nœuds sera également ajoutée sous peu à Container Engine, le système de gestion de conteneurs de Google basé sur Kubernetes.
Une fédération de clusters pour dépasser les 5 000 noeuds
« Et pour les utilisateurs qui souhaitent monter au-delà des 5 000 nœuds ou se répartir sur plusieurs régions ou clouds, le regroupement [la fédération selon Kubernetes] permet de combiner plusieurs clusters Kubernetes et de les relier via une API », ont précisé les porte-parole de Kubernetes. Autres fonctionnalités livrées avec la version 1.6, le contrôle du planning pour regrouper les containers par affinités afin d'optimiser les échanges entre certains modules en production ou séparer des processus avec un nœud réservé à une équipe pour bénéficier de ressources GPU et un autre ailleurs avec micro segmentation. Enfin, le dynamic storage provisioning - attendu depuis plusieurs mois – autorise l’exploitation de plusieurs sources de stockage pour accompagner la montée en charge des containers.
Kubernetes 1.6 propose de regrouper les containers par affinités.
Avec la version 1.6, l'intégration avec les temps d'exécution des conteneurs s'effectue via l'interface CRI (Container Runtime Interface) de Kubernetes, pour faciliter la migration des temps d'exécution via l'agent de nœuds kubelet. Le contrôle d'accès basé sur des rôles, qui définit les rôles par défaut sécurisés pour le plan de contrôle, le nœud et les composants du contrôleur, est passé en version bêta. L'outil kubeadm cluster bootstrap, pour l'installation de Kubernetes sous Linux, passe également en bêta, de même que kubefed federation bootstrap pour le regroupement de clusters. Avec la version 1.2 - sortie il y a un an - Kubernetes prenait en charge des grappes de 1 000 noeuds, alors que Kubernetes 1.3 montait jusqu’à 2 000 nœuds. La version 1.6 arrive trois mois après la 1.5, qui apportait le support de Windows Server et de Windows Container.
Amadeus utilise des containers depuis 2014
Parmi les utilisateurs de Kubernetes et Docker en France, on compte Amadeus, la plate-forme de réservation de billets d’avion et d’hôtel. Eric Mountain, senior expert distributed systems chez Amadeus, est venu témoigner lors d'une table ronde de son utilisation des deux solutions. « La vitesse est un des aspects qu’on nous a demandé d’améliorer il y a 2/3 ans, les temps de réponse des requêtes tout autour du monde », a expliqué le responsable informatique. « Un des autres aspects des containers est l’automatisation des mouvements de nos datacenters vers le cloud. Ce n’était pas possible avec les systèmes que nous avions bâtis dans nos datacenters. C’est pourquoi nous avons décidé de travailler avec Docker et Kubernetes ».
La table ronde sur les containers à la Kubecon de Berlin avec Eric Mountain d'Amadeus (2e à gauche)
Comme dans beaucoup d’entreprises, il y a une vraie séparation entre les métiers et la R&D IT. « Pour l’adoption du devops, nous avons dû expliquer aux métiers et à la R&D pourquoi ils devaient évoluer. Un nouveau mode de communication était devenu nécessaire pour saisir des opportunités. Il s’agissait d’adopter de nouvelles technologies. » Il a fallu également définir les responsabilités de chacun pour ne pas enfermer les utilisateurs dans un silo. « Si on fait les choses de manière claire et simple comme avec Docker et Kubernetes, les choses peuvent changer. […] Nous avons démarré en 2014 [les containers] avec les outils disponibles notamment chez Red Hat. Nous avons encore beaucoup de legacy, des applications mainstream en production mais nous allons évoluer et travailler avec GRPC ». .