I love Kubernetes
Mettons d'emblée les choses au clair : je n'ai rien contre Kubernetes 👐
Seulement, je ne peux m'empêcher de trouver suspecte cette fascination des ingénieurs pour la technologie. Et je suis ingénieur. Et j'aime la technologie. Mais la technologie ne saurait être une fin en soi.
Le danger, c'est de faire les choses parce qu'on peut les faire et non parce qu'on le doit. Le danger, c'est l'informatique pour l'informatique, c'est le solutionnisme technologique. Voir à ce sujet l'excellent ouvrage de Evgeny Morozov : Pour tout résoudre, cliquez ici. C'est vrai dans tout domaine, d'ailleurs, pas que l'informatique : "Hmmm qu'il est beau mon gros missile !" 🚀 Ça laisse… rêveur.
Pourquoi est-ce un danger ?
Parce que l'informatique pour l'informatique conduit à des solutions inutilement compliquées, des choses dont on n'a pas besoin.
Parce que la plupart du temps, le problème n'existe même pas : combien d'entreprises ont une pression technique telle qu'elle justifie l'emploi de Kubernetes ? Tout le monde n'est pas Google ou Netflix.
L'informatique pour l'informatique, c'est avoir les inconvénients d'une technologie sans en avoir les bénéfices. Cela conduit invariablement à des systèmes difficiles à maintenir et, in fine, fragiles. Mieux vaut un site Web bien fait en Vanilla JS qu'un site utilisant React en le tordant dans tous les sens.
Alors, pourquoi ? Pourquoi cette tendance naturelle ? Rassurez-vous, moi aussi je lutte contre elle 🤣 Peut-être est-ce le fait d'un cadre scolaire très axé sur le "comment" plutôt que le "quoi" et le "pourquoi" — en France en tout cas.
Je décèle chez les étudiants que j'accompagne (jusqu'à Bac+5) un très grand souci de montrer qu'ils savent faire. C'est important, savoir faire, mais la prise de recul l'est plus encore. Cette prise de recul qui vous fait économiser des semaines de travail : 5' de réflexion versus des semaines de travail.
Personnellement, je comprends Kubernetes sur le principe, et je trouve ça même très beau. Pour autant, dire que je sais m'en servir serait faux. Est-ce grave ? Non, car je n'en ai pas besoin. Des containers, oui, un peu d'orchestration simple (Docker Compose), mais rien de plus.
Cela pour dire qu'une fois dans la vie active, il faut se départir de nos réflexes par trop scolaires. Comment y parvenir ?
En se rappelant quel métier on sert, quel métier on entend faciliter avec l'informatique : banque d'investissement ? logistique ? ressources humaines ? You name it. Chaque domaine va avec ses contraintes, chaque cas d'usage va avec ses contraintes. Il n'y a pas de solution a priori.
Si vous croyez avoir lu "Domain-driven design", bravo, vous avez bien lu 😁 Ce qui fait la différence, c'est la connaissance du métier. En dehors de ça, il n'est point de pragmatisme.
En maîtrisant la technologie sur le bout des doigts, on peut être un bon dev. Pour être un très bon dev, il faut en plus une curiosité insatiable pour le métier et l'envie de faire des choses utiles. Sans cet état d'esprit distinctif et rare, on plafonne tôt ou tard.
Mais bon, au final, cette fascination pour la technologie est ce qui conduit les entreprises à utiliser des microservices alors qu'un bon monolithe modulaire suffirait. Quand tout ça devient ingérable, c'est là que j'interviens. Alors surtout, ne changez rien 😉