Kubecon - CloudNativecon 2018 - Copenhague

J’ai eu la chance de participer à la Kubecon/ CloudNativeCon pour Programmez, et avec près de 4200 personnes présentes l'évènement s'est imposé comme un évènement majeur.

L’objectif de la Cloud Native Foundation émanation de la fondation Linux pour cet évènement est de rassembler tous les earlys adopter et férus de technologies Cloud de la communauté Open Source. Le pari semblait réussi, l’écosystème présent autour de Kubernetes et de ses outils était assez complet, et on pouvait voir aussi bien les grands opérateurs cloud, dont Azure Amazon, Ibm et Google que de plus petites startups et éditeurs de solutions.

La KubeCon se déroulait au Bella Center à Copenhague, Il est d’ailleurs amusant que la fondation Linux organise un évènement sur un outil d’orchestration des containers  dans une ville « portuaire ».

Bella Center - Photo Aymeric Weinbach

Keynotes

Dan Kohn, Executive Director de la CNCF a ouvert la Keynote avec un petit retour sur la Cloud Native Computing Foundation depuis l'année dernière, le nombre de projets au sein de la CNCF est maintenant de 20. Il a aussi détaillé le graduation Program de la CNCF avec 3 niveaux  les projets "graduated" comme Kubernetes, les projets "incubated" comme Prometheus et les projets "sandbox".

Le CERN présentait un retour d'expérience intéressant sur un projet massif qui utilise Kubernetes.
Le CERN est un organisme international sur la recherche des particules où se trouve le plus grand accélerateur de particules du monde. Ils ont des cas intéressant de traitement massif de données pour les expériences sur les recherches de particules réalisé au LHC. Il présentaient dans leur retour d'expérience un projet distribués sur plusieurs Cloud Public, quelques chiffres 320 000 cores, 10 000 hyperviseurs, 250 Petabytes et 210 cluster Kubernetes.

KubeCon Keynote - Photo Aymeric Weinbach

Kubeflow à été également un sujet abordé lors de la keynote, Kubeflow est un projet opensource destiné à simplifier le déploiement de workflow Machine Learning avec Kubernetes, les annonces faite à la kubecon le concernant sont l'intégration notebook Jupyter Python, la Prise en charge d'un mode d’apprentissage distribué et multi-architecture, l'intégration de nouvelles bibliothèques de Machine Learnig pour l’utilisation des modèles créés lors de la phase d’apprentissage et enfin l'utilisation de ksonnet pour la configuration des workflows et des déploiements

Vision 2020
Alexis Richardson - chairman du Technical Committee de la CNCF - a donné sa vision pour 2020

Virtual kubelet
En Keynote Ralph Squillace de Microsoft faisait sa session sur ubuntu sur une surface avec un exemple en GO.

Azure a la KubeCon - Photo Aymeric Weinbach

Présentation de Virtual Kubelet avec ACI Azure Connector Instances.  ACI est un service de container as a service d'Azure,  Virtual Kubelet va permettre d'utiliser simplement Kubernetes avec ACI.

Virtual Kubelet est une implémentation open source Microsoft du Kubelet Kubernetes, Il va se faire passer pour un Kubelet dans le but de connecter Kubernetes à d'autres API. Cela permet aux "nodes" d'être pris en charge par d'autres services comme Azure Container Instances par exemple. Mais il utilise plusieurs "providers" tout prêt comme AWS Fargate, Hyper.sh, etc.  ll est aussi très facile de construire son propre provider comme Virtual Kubelet dispose d'une architecture connectable et d'une utilisation directe des primitives Kubernetes, ce qui le rend beaucoup plus facile à construire.
Pour implémenter son propre provider des exemples simple existe où il suffit d'implémenter une interface en GO. Comme le projet est open source Il serait même possible de faire des choses un peu fun un projet est en cours en utilisant Virtual Kubelet pour allumer des ampoules connectées, une ampoule par node par exemple.

Brigade.sh un outil Dev Ops pour Kubernetes par Microsoft

Event Driven Pipeline with Brigade - Photo Aymeric Weinbach

Brigade est un  Projet open source de Microsoft c'est un outil de scripting "Event driven" pour kubernetes.  Il permet de créer facilement des pipelines de taches complexes que l'on pourra coder en javascript, un outil idéal pour les développeurs.

La session sur Brigade explorait aussi les bonnes pratiques à utiliser pour l'outil, les 3 régles d'or pour l'utiliser :  pipeline as code, ne pas stocker les credentials avec le code, et tester évidemment.
Les outils autour de brigade on trouve « Kashti » un Panneau de contrôle qui permet de visualiser ses pipelines.

Microsoft présentait également Service Catalog un open Service Broker Azure qui permet de provisionner les ressources Azure directement depuis les outils kubernetes et d'utiliser tout l'écosystème kubernetes pour réaliser ses déploiements Azure, pour profiter du meilleur des deux mondes

La derniére conférence que j'ai vu pour cloturer l'évenement était clairement plus challenge technique qu’une vrai utilité puisque le sujet était le hack d’un robot aspirateur Xiaomi pour l’interfacer avec Kubernetes. L’os est un Linux embarqué et dispose de suffisamment de Ram et de mémoire Flash pour que ce soit intéressant.

La première étape pour le conférencier à été de supprimer tout les logiciels propriétaires pour déconnecter l’aspirateur du Cloud qui été utilisé pour piloter l’aspirateur via son smartphone. Ce qui lui a permis de reprendre le contrôle des données et de gérer directement les cycles d’aspiration.

Fun : Kubernetes pilotant un robot aspirateur - Photo Aymeric Weinbach

Le conférencier explique qu’il a utilisé Kubernetes et notamment son apiserver pour démarrer des cycles d’aspiration ainsi que pour récupérer des données en provenance de l’aspirateur . Il  à également créé un émulateur de kubelet nommé Rocklet. L’aspirateur ne lance pas de pods ; mais à la place exécute des cycles d’aspiration. Pour le fun L’aspirateur peut être piloté avec kubectl, comme une ressource habituelle de Kubernetes avec « exec » pour piloter le robot. On peut ainsi lui donner l’ordre de bouger dans une certaine direction ou de retourner sur sa base de chargement.

Le robot remonte son état via un Custom Resource Definition (CRD) nommé « vacuum ». qui contient la durée de la session d’aspiration, le statut et une carte du trajet effectué par le robot au moment du cycle d’aspiration. Ces informations sont affichées sur une page web. Le robot renvoie même des métriques prometheus.
En conclusion un joli hack mêlant robotique et Kubernetes pas vraiment utile mais très fun puisque pour finir un concours de pilotage de robot aspirateur via Kubernetes était organisé.

Clouds of Tivoli Garden - Photo Aymeric Weinbach

La soirée de clotûre était organisé au parc d'attraction Tivoli Garden pour propulser les participants dans les nuages avec les attractions