Il y a 5 ans -
Temps de lecture 10 minutes
KubeCon + CloudNativeCon EU 2018 – Take away
Après vous avoir présenté le détail de chaque journée (J0, J1, J2, J3) que j’ai pu vivre lors de cette KubeCon + CloudNativeCon EU 2018, je vous propose ici un résumé des choses à retenir de cette conférence pour ceux qui n’auraient pas le temps ou l’envie de lire tant de détails. Nous sommes quelques mois après l’évènement, les vidéos sont donc disponibles !
Les thèmes principaux
3 grand thèmes se sont dégagés lors de cette conférence :
- Service Mesh, intimement lié à Kubernetes
- Serverless, plus précisément les Functions-as-a-Service
- Tracing, et Observabilité de manière générale
Ce sont les thèmes à suivre sur le devenir de l’écosystème Cloud Native ainsi que ce vers quoi notre industrie s’oriente.
Ces trois thèmes n’étant pas forcément les plus aisés à saisir du premier abord, j’ai depuis saisi l’opportunité du Paris Container Day 2018 pour les vulgariser :
Je vous propose également dans cet article une brève présentation de chaque concept ainsi que des éléments à retenir suite à cette KubeCon + CloudNativeCon les concernant.
Service mesh
Concept
“A service mesh is a dedicated infrastructure layer for making service-to-service communication safe, fast, and reliable.
If you’re building a cloud native application, you need a service mesh.”
— https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/
Les solutions de service mesh servent à inter-connecter des services à la manière d’un load balancer embarquant plus d’intelligence. Cette intelligence passe notamment par un plus grand contrôle sur le routing des requêtes, permettant de faciliter la mise en place de stratégies de déploiement (Blue/Green, Rolling upgrades, Canary release, …). Ces solutions étant vraiment pensées dans une optique Cloud Native, on retrouvera de l’observabilité moderne out-of-the-box sur chacune d’entre elles : métriques, traces, tout est présent dès le début, ce qui en fait un point idéal pour observer un système distribué dans la mesure où ce sont ces solutions de service mesh qui vont inter-connecter les composants.
A la KubeCon + CloudNativeCon
Lors de cette KubeCon + CloudNativeCon, un nombre impressionnant de talks et même une track entière y étaient dédiés !
Malgré quelques retours d’expérience d’utilisateurs directs, j’ai pu constater une plus grande part de présentations théoriques ou introductives, prouvant une fois de plus la jeunesse du sujet.
Technologies
Le concept de service mesh étant encore récent, on trouve un nombre restreint de solutions en constante évolution. En voici les quatre principales, toutes évoquées lors de ces quelques jours de conférence :
Les questions qui viennent rapidement à l’esprit (et que j’avais moi-même en allant à Copenhague) : quelle solution fait quoi ? Comment se distinguent-elles ?
- Istio utilise Envoy. Istio est le control plane et gère des Envoy lancés en side-car des conteneurs dans chaque pod Kubernetes.
- Conduit est une sorte de Linkerd v2. Depuis cette KubeCon + CloudNativeCon, ce devenir a d’ailleurs été officialisé et Conduit est en passe d’être mergé avec Linkerd.
Le choix se résumerait donc, pour un utilisateur ordinaire, à Conduit/Linkerdv2 ou Istio. Lequel choisir ?
- Linkerd (et par incidence, Conduit prochainement) fait partie des projets gérés par la CNCF et est un acteur de première classe dans cet écosystème.
- Istio est poussé par Google et se repose sur Envoy (venant lui aussi de rejoindre la CNCF), qui a déjà été mis à rude épreuve notamment chez Lyft. Matt Klein, ingénieur chez Lyft et créateur d’Envoy, a d’ailleurs réalisé une présentation sur les internals d’Envoy absolument passionnante lors du deuxième jour de cette conférence.
Pour une comparaison plus approfondie, notamment sur les points techniques, rendez-vous à la XebiCon’18 !
Serverless
Concept
Le Serverless est un sujet très vaste et dont la terminologie est ambiguë. Le terme est souvent utilisé pour parler des services « managés » mis à disposition par les fournisseurs de Cloud et qui nous abstraient toute notion de serveur. Mais ici, nous allons parler de Serverless computing, au sens « Functions-as-a-Service » (FaaS).
Le FaaS pourrait être vu comme du PaaS plus flexible, offrant la facilité de déploiement et l’abstraction de toute infrastructure tel un fournisseur de PaaS, mais de manière plus flexible et avec de l’instanciation à la demande. En effet, l’idée est de lancer un bout de code à la demande, littéralement. Une plateforme qui ne recevrait aucune requête ne coûtant ainsi que… $0. Bien sûr, la scalabilité de l’infrastructure dans son ensemble est toujours à prendre en compte dans un contexte on-premise, mais l’idée est vraiment de s’abstraire de toute notion de serveur, de VM ou même de conteneur.
A la KubeCon + CloudNativeCon
Deux points nous intéressent ici et ont été au cœur de cette KubeCon + CloudNativeCon :
- Comment faire du FaaS on-premise
- Comment interconnecter des fonctions chez différents fournisseurs de FaaS
Côté FaaS on-premise, j’ai pu constater une évolution fulgurante d’OpenWhisk, que nous avions testé il y a un an et demi à Xebia et qui nous avait laissé un sentiment mitigé. Force est de constater que la solution a su évoluer, et j’ai été bluffé par la démonstration et les détails de David Grove lors de son talk Apache OpenWhisk on Kubernetes: Building a Production-Ready Serverless Stack on and for Kubernetes, que je vous invite à regarder.
Pour le second, un fort accent a été mis sur deux points : CloudEvents, qui sera détaillé plus bas dans cet article, et la Serverless Event Gateway, qui a pour ambition d’être le point central interconnectant des fonctions chez différents fournisseurs via une intégration native. A noter, cette Serverless Event Gateway a été créée par les personnes derrière le Framework Serverless, bien connu des développeurs déployant déjà leur code sur AWS Lambda ou Google Cloud Functions. Parmi ces personnes on retrouve notamment Austen Collins, fondateur de Serverless, Inc., qui a présenté une démonstration magistrale de cette Event Gateway interconnectant pas moins de 11 providers de FaaS et que que je vous invite là encore à regarder.
Technologies
FaaS on-premise :
Inter-connexion :
Tracing
Concept
Le Tracing est un des 3 piliers de l’observabilité moderne aux côtés du Logging et des Métriques. Tous trois ont été évoqués sans relâche lors de ces 3 jours de conférence, y compris dans les présentations dont ce n’était pas le sujet principal. Les nouveautés se concentrent quant à elles sur la partie Tracing.
L’idée derrière le Tracing est d’être en mesure de suivre une requête à travers un système distribué avec un maximum d’informations possible. L’objectif est double : préventif, en observant le système de bout en bout, et réactif, en offrant des informations en profondeur lorsque le moment est venu de débuguer un problème.
A la KubeCon + CloudNativeCon
Impossible durant ces trois jours de rater cette tendance : que ce soit les end-users avec leurs retours d’expérience incluant immanquablement du Tracing, les présentations d’outils intégrant nativement la remontée de traces au format OpenTracing, ou encore les live démo d’outils de tracing eux-mêmes, chaque track y a eu droit ! Rappelons que le Tracing évolue de plus en plus chez les différents fournisseurs de Cloud, que ce soit AWS X-Ray ou Google Stackdriver.
En revanche, la ligne semble très mince entre OpenTracing et OpenCensus, lui aussi évoqué lors de cette conférence. OpenTracing est mené par la CNCF tandis qu’OpenCensus provient directement de Google ; une confrontation qui finira en la disparition de l’un, ou en une totale interopérabilité au détriment du moins populaire des deux.
Technologies
- OpenTracing
- Jaeger
- OpenCensus
- (Open) Zipkin
Les annonces
Cette conférence fut riche en annonces, étant le moment idéal pour présenter de nouveaux produits ou de nouvelles fonctionnalités. En voici les 3 principales à retenir selon moi.
CloudEvents
Présenté sur scène lors d’une Keynote, CloudEvents (introduit sous le nom d’OpenEvents en 2017) est désormais officiel et se targue de vouloir standardiser le format des évènements émis et reçus par les systèmes modernes. Nous avons de plus en plus de composants qui se notifient les uns les autres, à travers différentes applications, différents fournisseurs de cloud, pour travailler de manière de plus en plus réactive. Afin de s’assurer de pouvoir créer des outils standards, cross-plateformes et pérennes, Cloud Events se veut être le standard qui définira le format de tels évènements ; sa réussite dépendra donc probablement très grandement de son adoption par des acteurs tels Amazon et Google pour les évènements émis par les services d’AWS et GCP.
Une question reste cependant en suspend après cette KubeCon + CloudNativeCon : quel est l’avenir d’OpenMessaging, projet supporté par la Linux Foundation et qui semble faire la même promesse ?
Serverless Event Gateway « as a service » via Azure Cloud Grid
Déjà annoncé en 2017 mais avec relativement peu d’intérêt, Serverless Event Gateway est désormais disponible sur Azure, le cloud de Microsoft. En effet, Austen Collins, dont nous parlions plus haut dans cet article, a annoncé lors de cette Kubecon que la Serverless Event Gateway est désormais l’épine dorsale d’Azure Cloud Grid. Il ne reste plus qu’à espérer que ce regain de popularité mènera à l’avènement de Cloud Events chez Azure et chez leurs concurrents !
gVisor
Google a annoncé gVisor lors de cette KubeCon + CloudNativeCon, tentant de prendre le meilleur de la conteneurisation et de la virtualisation : la rapidité et légèreté du premier, et l’isolation du second. Un article de blog a d’ailleurs été publié en même temps que l’annonce en keynote, et présente plus en détails leur vision de la conteneurisation et de la virtualisation.
Vidéos à regarder (avis personnel)
Pour conclure ce take away, je vous propose de vous plonger dans l’ambiance de cette KubeCon + CloudNative en regardant par vous même quatre des talks qui y étaient proposés. Ceux-ci ont été sélectionnés de manière aussi objective que possible, mais sont malgré tout classés selon mon ordre de préférence.
3 de ces 4 vidéos sont des keynotes, et sont donc accessibles tout en couvrant les points vraiment indispensables de cette KubeCon + CloudNativeCon.
Keynote: Anatomy of a Production Kubernetes Outage – Oliver Beattie, Head of Engineering, Monzo Bank :
The Serverless and Event-Driven Future – Austen Collins, Serverless :
Conclusion
Pour conclure, j’aimerais mentionner un point crucial à tous les thèmes abordés dans ce take-away et pourtant souvent passé sous silence : les merveilles de l’intégration continue. De tels projets ne pourraient voir le jour à une telle échelle sans une CI digne de ce nom, validant chaque outil chez de multiples providers et nous assurant, à nous end-users, des projets stables et en lesquels nous pouvons avoir une telle confiance. Dan Kohn, le directeur exécutif de la CNCF, le rappelait très bien en ouverture de l’évènement, et force est de constater suite à ces trois jours qu’il ne se trompait pas.
Je vous laisse en compagnie du Landscape de la CNCF ainsi que de leur Trail map, qui vous amèneront sans aucun doute à une réflexion éclairée en attendant la prochaine KubeCon & CloudNativeCon.
Commentaire