J'ai récemment eu l'occasion de faire mes armes sur Kubernetes car je n'avais pas eu le temps de le faire jusque là. Mais comment je m'y suis pris ? Quelle méthodologie ai-je pu mettre en place afin d'apprendre à me servir de la technologie? Est-ce que j'ai une recette magique pour aller plus vite ?
Je veux quoi ?
Finalement c'est la question primordiale, celle qui motive votre envie. Pourquoi je souhaite apprendre cette nouvelle technologie ?
Dans mon cas par exemple, Kubernetes n'est pas récent et en toute transparence j'ai souvent critiqué sa complexité globale. Par méconnaissance ? Peut-être. Et justement, cette méconnaissance a justifié ma volonté : Critiquer sans connaître c'est facile, apprendre pour critiquer intelligemment c'est mieux.
Il est important de se donner LA bonne raison. Je ne vais pas reprendre ici les clichés sur le tabagisme, ou même les régimes, mais la motivation pour apprendre est votre meilleure arme. Si vous n'êtes pas réellement motivé et qu'il ne s'agit que d'une envie soudaine, vous risquez de perdre votre temps et d'avoir un apriori sur la technologie. Prenez le temps de réfléchir à cette motivation !
Il serait peut être tout simplement plus utile de consacrer du temps à améliorer votre expertise sur un sujet déjà maitrisé ! Aucune inquiétude, cette réflexion peut prendre du temps parfois...
Ok, vous êtes motivé mais comment m'y prendre ? Je me lance sans filet à la découverte de cette techno dont je me dis depuis 2 ans que je devrais m'y mettre ?
Le passage à l'acte
Et c'est à cet instant qu'il va falloir être méthodique ! Comment ça ?
Dans un premier temps :
- Oubliez tout ce que vous savez ou presque sur cette technologie !
Vous-avez lu des choses sur sur le sujet il y a déjà quelques temps et vous vous sentez déjà prêts à passer à l'étape 2 ? Et bien, non. Combien de temps s'est il écoulé entre cette lecture et votre passage à l'acte ? Des semaines ? Des mois ? Combien de choses ont pu évoluer depuis ?
Oubliez ce que vous savez sur cette technologie afin de repartir à date sur une base propre.
🚩Oubliez ses connaissances sur une technologie précise, ne veut pas dire qu'on devient bête d'un seul coup. Bien évidement vous avez des notions que vous allez conserver grâce à d'éventuels sujets connexes que vous maitrisez !
Si je reprends mon cas, découvrir Kubernetes ne veut pas dire que je découvre le monde de la conteunerisation. Je découvre Kubernetes, pas les conteneurs ! 🚩
Ce qui m'amène à mon second point :
- On part rarement de zéro !
Et oui aucune inquiétude ... vous ne savez pas RIEN ! Cela vous paraît contradictoire avec mon premier point ? Et pourtant non !
Gardez à l'esprit que vous possédez un bagage global technologique qui vous permettra de comprendre les choses bien plus rapidement. Et même si précédemment, je vous invite à oublier ce que vous savez sur la technologie ou le logiciel que vous souhaitez apprendre, je ne dis pas de tout oublier ! 😂
Je m'adresse principalement aux gens en manque de confiance pour qui l'étape initiale de la découverte devient une montagne et qui souvent s'arrête à une première approche. Même si le sujet est complexe, capitalisez sur vos connaissances passées ! Un exemple :
Je découvre Kubernetes mais je sais très bien mettre en place une stack Docker de type LAMP. Pourquoi ne pas commencer par là ? Je maîtrise Linux, Apache, Mysql et PHP...
Capitaliser sur vos connaissances vous permettra également de jalonner votre progression. C'est mon troisième point :
- Etablir des jalons logiques de progression, courts et atteignables sur une ou deux journées maximum au départ et s'étalant de plus en plus dans le temps.
Un nouvel exemple concret :
- Installer Kubernetes avec K3S
- Mise en oeuvre de Traefik avec une instance whoami
- Déplacer ce blog sous K3S
- Réaliser une installation cluster ...
Etc, etc ... Il est hors de question de commencer la découverte par l'installation d'un cluster à 6-7 noeuds, il faut commencer par le ... commencement : Les notions et bases, et ensuite monter en complexité.
À l'image de la méthode agile, les jalons courts vous permettront de progresser rapidement et vous procurerons un sentiment de satisfaction immédiate. Cela vous permettra également de faire grandir votre capital confiance sur le sujet avant d'attaquer des sujets plus complexes.
Mais à quel moment je ne découvre plus complètement le sujet ?
C'est un peu la dernière étape de mon processus. Je réponds à cette question en la remplaçant en réalité par une autre :
- À quel moment je me sens prêt à passer cette technologie en production?
Et là... Tout dépend de vous et de votre environnement. J'ai eu la chance au cours de mes années d'expérience de toujours pouvoir expérimenter de nouvelles technologies rapidement en production.
On gradue bien évidement les mises en production : on commence par du non critique, on prend le temps de voir les retours. On corrige avec les retours et on avance ... Les démos ne sont jamais la réalité.
N'avoir aucune certitude
Cette façon de procéder m'amène donc à mon dernier point sur la découverte d'une nouvelle technologie : N'avoir aucune certitude.
À l'inverse du manque de confiance, il ne faut pas non plus en faire un excès ! Il est important quand on découvre quelque chose d'en parler avec ses collègues ou sur des forums, voir des salons.
Il est nécessaire de confronter vos idées avec celles des autres. Votre dernière implémentation est-elle vraiment la bonne ? Est-ce que je peux faire mieux ?
Cette remise en question permanente vous permettra également de mieux appréhender les nouveautés de la technologie. Car la découvrir est une chose, mais garder la maîtrise du sujet sur le long terme en est une autre !
Exemple concret avec Traefik : son passage de la 1.X à la version 2.X qui a amené de gros changements au niveau de la configuration.
Pourquoi passer à la 2.X ? Je peux très bien rester en 1.X qui est maintenu ? Oui mais... pendant combien de temps encore ? Quelles nouveautés vais-je rater en 2.X ? L'incertitude me pousse à aller de l'avant et à apprendre cette nouvelle version !
Enfin n'oubliez pas une chose essentielle :
C'est en forgeant qu'on devient forgeron
Travailler votre sujet aussi souvent que vous le pouvez et la connaissance viendra d'elle même !
Il n'existe donc pas vraiment de méthode particulière afin de passer d'une technologie à une autre. Parfois ce passage va être facilité par le bon tutoriel ou le bon article trouvé au moment opportun... coup de chance ou expertise de la recherche Google ! ( Ou un bon rédacteur que vous suivez régulièrement 😊 )
Dans tous les cas de figure, il sera bon d'essayer. Toujours essayer, encore essayer, et d'améliorer constamment votre connaissance sur le sujet. Tout connaître ? Il faut être honnête, de nos jours il devient difficile de connaître l'intégralité d'une technologie. Et pour moi l'essentiel n'est pas dans l'absolue connaissance de cette technologie. La question est plutôt : est-ce utile ? Pour moi très clairement non, c'est plus votre capacité à constamment vous remettre en question qui vous permettra de devenir un expert, car quoi qu'il arrive la technologie évoluera. Serez-vous en mesure de suivre ces évolutions ?
En tout cas n'hésitez pas à m'apporter des remarques ou des commentaires sur Twitter !