Il y a 2 ans -
Temps de lecture 9 minutes
Kubernetes Winter School
Il y a un an, j’obtenais les deux premières certifications Kubernetes de Publicis Sapient : la CKAD puis la CKA. Bien qu’un beau succès à titre personnel, et tout égo-trip mis de côté, je me suis dit que le transformer en succès de groupe serait encore mieux, en profitant au passage pour faire vivre notre valeur de partage que j’affectionne tant.
Un an plus tard, nous voici avec 20 certifications Kubernetes. Comment en est-on arrivé là ? De nombreux facteurs ont joué, et je suis ici pour vous parler du principal : la “Kubernetes Winter School”.
Là où tout commence : notre Formation Conteneurs/Docker
Chez Publicis Sapient, nous avons toute une activité dédiée à la formation : Publicis Sapient Training. Parmi les formations que nous donnons se trouve la “Formation Conteneurs (avec Docker)”, que j’ai créée avec un certain Julien Bonachera, from scratch, afin de former nos stagiaires non pas seulement à l’utilisation de l’outillage de Docker, mais également à la compréhension profonde du principe de conteneur et des enjeux gravitant autour.
Aujourd’hui, alors que la disparition de Docker est sur toutes les lèvres (changements récents sur le Docker Hub, dépréciation prochaine de Docker en tant que runtime pour Kubernetes, etc), ce pari de transmettre une réelle compréhension et non simplement l’usage d’un outil semble avoir été gagnant et notre formation reste tout aussi pertinente qu’à sa création.
Container Summer School 2019
Mais je digresse, revenons-en à l’essentiel. En 2019, afin de faire bénéficier un maximum de Sapients de cette formation, nous avons décidé de la donner en interne, avec un format un peu particulier : tous les lundis soirs, à raison d’environ 2 heures par session, avec hands-on à faire chez soi d’une semaine sur l’autre. Et ce fut un franc succès ! Une vingtaine de collègues y ont participé, venant de tous les horizons : développeurs front, data engineers, profils SRE, etc.
Kubernetes Winter School 2020
Début 2020, nous avons donc enchaîné assez naturellement sur la suite, que nous avons nommée “Kubernetes Winter School”. Même approche, sujet différent : chaque lundi soir, une sorte de “cours” en interne sur Kubernetes que j’ai pris plaisir à animer ; quoi de mieux qu’avoir des participants motivés, curieux, engagés et qui réfléchissent réellement aux sujets évoqués et challengent les points présentés !
Cette formation interne a permis de poursuivre deux objectifs distincts :
- Beta-test d’une formation Kubernetes à venir très prochainement dans le catalogue de Publicis Sapient Training
- Préparation de nombreux Sapients à leur certification Kubernetes (CKAD et/ou CKA)
Déroulement de la Kubernetes Winter School
En pratique, et pour cause de confinement, cette Kubernetes Winter School s’est découpée en deux étapes :
- Phase n° 1 : 9 sessions de janvier à mars 2020, orientées purement sur l’utilisation de clusters Kubernetes existants, couvrant notamment le périmètre de la CKAD
- Phase n° 2 : 8 sessions d’octobre à décembre 2020, couvrant cette fois-ci la partie administration de cluster, avec de forts enjeux autour de la préparation de la CKA
La phase n° 1 a pu se dérouler en présentiel (avec néanmoins quelques participants à distance), la phase n° 2 quant à elle s’est passée à 100% en virtuel.
Les sessions en présentiel prenaient place dans les locaux de Publicis Sapient (certaines fois à Bastille, d’autres à Gambetta), les virtuelles se déroulaient sur
Google Meet, et les interactions en dehors des sessions avaient principalement lieu sur un channel Slack dédié.
Un quart des sessions se sont déroulées lors de soirées post-KED (journée de partage interne se tenant tous les premiers lundis du mois) et ont donc naturellement bénéficié d’une affluence accrue.
Première partie : utilisation/dev (CKAD)
Après quelques discussions, la première session de la Kubernetes Winter School se formalise le 13 janvier :
Elle pose les bases des sessions suivante, avec un mix de personnes présentes physiquement et de personnes participant à distance via webcam + partage d’écran des démos. Pour ce qui est de la durée, la plupart des sessions ont avoisiné les 2h30 de contenu (avec début aux environs de 18h30), durée à laquelle s’ajoutaient fréquemment 30 minutes à 1 heure de discussions pré et post-session en off, se terminant de temps à autre dans un bar avoisinant.
Tout débute avec un peu de théorie : architecture et fonctionnement d’un cluster Kubernetes, structure d’un objet Kubernetes, manifestes, outillage commun, …
… et très rapidement, les premiers hands-on (très basiques) arrivent afin de passer de la théorie et des live démo à la pratique :
Puis les choses s’enchaînent très vite :
- Concepts de base, architecture, connexion à un cluster et découverte de kubectl
- Concept de Pod (heureusement, la plupart des participants ont suivi la Container Summer School et sont donc à l’aise avec des notions tels que les Network Namespaces)
- ReplicaSets et Deployments, Labels & Selectors
- Resources, readiness/liveness, security config, …
- Configuration d’application : environnement, ConfigMaps, Secrets, etc.
- Exposition d’applications : Services en tout genre (LoadBalancer, ClusterIP, NodePort)
- Ingress et outillage autour de ceux-ci
- Persistence d’état
- NetworkPolicies, PodSecurityPolicies
- Helm & Kustomize
- … et bien d’autres sujets encore
Pour pratiquer et réaliser les hands-on entre deux sessions, les participants disposaient des moyens qu’ils souhaitaient (financés par Publicis Sapient bien sûr), mais la quasi totalité ont opté pour des clusters Kubernetes managés sur GCP (GKE).
Au final, cette première période de Kubernetes Winter School a regroupé en moyenne 11 participants par session : un succès pour quelque chose de relativement improvisé à la base !
Puis, le confinement est arrivé et les choses se sont un peu compliquées. Nous avions “fini” les bases de l’utilisation d’un cluster Kubernetes, ce qui a également joué un rôle dans la période de pause qui a suivi. Mais cette pause n’a pas duré éternellement, et nous avons repris de plus belle sur un axe différent, dans la continuité de la première phase !
Seconde partie : administration/ops (CKA)
Crise sanitaire oblige, la Kubernetes Winter School reprend en octobre en 100% virtuel, avec un public moins nombreux de par le thème : l’administration de clusters Kubernetes. La majeure partie des effectifs de Publicis Sapient étant des développeurs avant tout, il est normal que l’attractivité ait été plus faible (mais néanmoins suffisante pour que ça vaille le coup !).
Au final, nous avons réussi à reproduire une grande partie de l’expérience “en présentiel” de cette Kubernetes Winter School via Google Meet, et une tablette graphique pour dessiner sur un tableau blanc virtuel :
Voici le résumé des sujets couverts dans les grandes lignes :
- Architecture d’un cluster Kubernetes
- Kubernetes The Hard Way
- Certificats X509
- Troubleshooting de cluster
- Kubeadm et autres “installateurs” de cluster Kubernetes
- Scheduling avancé
- Réseau
- Retour d’expérience et “révisions”
Un des temps forts ayant marqué cette phase de la Kubernetes Winter School est sans doute l’approche originale de l’entraînement au debugging de cluster. En effet, chacun a monté son propre cluster Kubernetes, a donné accès aux autres participants de la KWS, et les a laissé “casser” son cluster via quelques modifications à droite et à gauche. De cette manière, il était possible de réellement débuguer un cluster dysfonctionnel sans pour autant savoir à l’avance ce qui n’allait pas !
Quels ont été les facteurs clés de la réussite d’une telle initiative ?
En dressant un rapide bilan en cette fin d’année, les points principaux ayant permis à cette Kubernetes Winter School de fonctionner sont les suivants :
- Un core group engagé et ultra motivé, donnant envie de continuer cette initiative après chaque session. Un grand merci à eux, en particulier Franck Cussac, Lionel Guez, Romain Sagean, Cédric Souchon, Guillaume Lhermenier, Frédéric Debuire et Fares Oueslati !
- Des personnes tellement engagées qu’elles se sont manifestées pour prendre le lead sur certaines soirées, et transmettre le résultat de leurs expérimentations aux autres. Merci à Olivier Cloirec, Franck Cussac et Cédric Souchon !
- Une absence de tout formalisme : certaines soirées étaient plus proches de l’expérimentation collaborative que du “cours” à proprement parler
- Des soirées à thème (Securité, Réseau, …) avec un programme annoncé à l’avance
- Des
comptes-rendus
des soirées pour les absents, ne laissant personne sur le bord de la route - Une très forte activité sur Slack entre les sessions
- Des outils qui marchent : Google Meet pour les appels en visio, Slack pour les discussions et partages de snippets, AWS/GCP/Scaleway pour les clusters Kubernetes
En écrivant ces lignes, je réalise qu’une réelle rétrospective avec les participants serait la bienvenue. Il ne reste plus qu’à la planifier !
On notera en tout cas les quelques soirées “spéciales” dédiées à des sujets particulièrement complexes traités de manière prolongée et, par conséquent, autour d’une bonne pizza :
Quelques statistiques…
Au final, la Kubernetes Winter School c’est :
- 17 sessions
- 10 participants par session en moyenne
- 34 Sapients uniques ayant participé au moins une fois
- ~51 heures de sessions (~525 heures une fois multipliées par le nombre de présents)
- Des heures et des heures de hands-on en différé chez soi et de préparation en amont des sessions
- 2 128 messages Slack
- 20+ certifications obtenues
Avenir – à reproduire en 2021 ?
Cette expérience sera sans doute reconduite début 2021 – nous avons en effet d’ores et déjà une dizaine de consultants souhaitant passer une ou plusieurs certifications Kubernetes l’année prochaine !
C’est en revanche l’occasion de passer le flambeau, et que ceux en ayant bénéficié en 2020 puissent la donner à leur tour en 2021
À terme, notre Formation Kubernetes officielle prendra sa succession.
Dans tous les cas, Kubernetes n’est pas une fin en soi ; il ne s’agit que d’une étape, nécessaire pour beaucoup de nos clients à adopter des paradigmes plus modernes de manière progressive.
Après la Container Summer School en 2019 et la Kubernetes Winter School en 2020, c’est naturellement que nous continuerons vers une sorte de “Cloud Native <something> School” en 2021, avec comme objectif de toujours plus propager les pratiques autour des applications Cloud Native chez Publicis Sapient en interne.
Au menu : des standards, de l’observabilité, des bonnes pratiques, de la scalabilité, de la résilience, et bien d’autres choses encore !
A bientôt pour de nouvelles aventures, qui, nous l’espérons, seront aussi riches que celle-ci
Commentaire