Bonjour,
Je me demande sérieusement si je ne perds pas mon temps avec Kubernetes. J'aimerais avoir l'avis de personnes qui ont une expérience concrète de Kubernetes.
Est-ce que le retour sur investissement finit réellement par arriver, ou bien est-ce que l'entreprise dans laquelle je travaille se trompe complètement de stratégie ?
Je suis ingénieur télécom et je travaille dans une grande entreprise du secteur (un FAI, sans donner plus de précisions) J'aimerais avoir des retours d'expérience sur un sujet qui me laisse perplexe : la migration systématique des applications vers Kubernetes.
Je connais les avantages théoriques de Kubernetes. Mais dans mon cas concret, j'ai de plus en plus l'impression que nous avons remplacé une infrastructure simple et fiable par une usine à gaz.
Mon expérience
J'ai connu l'évolution de notre infrastructure :
machines physiques → machines virtuelles → Kubernetes
Je connais les différences entre ces trois approches et les avantages théoriques de Kubernetes. Mais, dans mon expérience concrète, je ne vois pas vraiment ces avantages. Au contraire, j'ai parfois l'impression que Kubernetes nous fait perdre énormément de temps et ajoute une complexité considérable.
Je précise que je ne suis pas un débutant : je comprends les concepts et je ne prétends pas que Kubernetes est inutile dans tous les contextes. Je cherche simplement à comprendre si mon expérience est particulière ou si d'autres ont fait le même constat.
Machines physiques
Pendant environ 10 ans, notre application a fonctionné sur des machines physiques.
Très peu de problèmes matériels. Aucun besoin de scaler : la machine était largement surdimensionnée et pouvait absorber plus de 20 fois la charge normale.
La majorité du temps était consacrée à l'application métier.
Je n'ai quasiment jamais connu de panne matérielle : peut-être une ou deux fois en dix ans, avec le remplacement d'une carte défectueuse.
Machines virtuelles
Même constat : très fiable et peu de différences concrètes pour l'utilisateur (moi et mes collègues)
Les mises à jour de l'infrastructure cloud nécessitaient parfois un redémarrage de la VM, mais l'application était redondante sur plusieurs clusters. Globalement, cela restait relativement simple et fiable.
Kubernetes
Et c'est là que les choses deviennent beaucoup plus compliquées.
L'entreprise dans laquelle je travaille souhaite que toutes les équipes migrent leurs applications vers Kubernetes.
Personnellement, je ne vois pas clairement le bénéfice dans notre cas particulier. Peut-être que les personnes qui s'occupent des budgets et des coûts ont une vision différente, mais je n'ai pas de contact direct avec elles.
La migration de notre application vers Kubernetes a pris environ deux ans, presque à temps plein, avec plusieurs ingénieurs.
Il ne s'agissait pourtant pas de développer une application : c'est un produit acheté auprès d'un fournisseur, qui existait déjà sur machine physique et VM. Notre entreprise a choisi le produit tournant sur Kubernetes pour remplacer le produit tournant sur machine physique (le fournisseur arrête son support)
L'essentiel du travail a consisté à :
- intégrer l'application dans Kubernetes ;
- intégrer l'application dans Flux/Argo, Vault, etc. ;
- gérer les pipelines ;
- résoudre les problèmes d'infrastructure ;
- faire fonctionner toute la chaîne d'automatisation.
En parallèle, mes collègues ont déployé une autre application (différente de la mienne) sur VM en environ deux semaines (le fournisseur ne proposait pas de version Kubernetes) alors que pour l'application que je gère, il a fallu des années pour avoir quelque chose de "fonctionnelle".
Depuis, mes collègues consacrent leur temps à l'application métier. Moi pendant ce temps, j'ai des années à construire et maintenir l'infrastructure.
La question du ROI
En estimation très grossière :
- Machine physique : environ 520 heures sur 10 ans pour configurer l'application métier.
- Kubernetes : plus de 4 000 heures pour migrer et intégrer l'application dans l'écosystème Kubernetes/DevOps.
Et cela sans compter les autres équipes de mon entreprise. Équipes cloud et équipe automatisation.
Alors je me pose une question simple :
Est-ce vraiment rentable pour l'entreprise ?
Kubernetes est censé apporter :
de la scalabilité → Oui mais dans la pratique sur les machines physiquse, je n'ai jamais dû à scaler en 10 ans car c'était suffisamment bien dimensionné.
de l'automatisation → Oui mais sur machine physique/Vm on met la config en 30 secondes et elle y reste. Il y a des backup automatique. vec K8s il faut mettre toute une chaine d'automatisation qui est une succession de plusieurs étapes à valider qui prend 20mn au total. Et ensuite, comme je n'ai pas confiance, je vérifie que mon application métier a bien reçu la nouvelle config. C'est arrivé tellement de fois que quelque chose bug dans la pipeline.
de la résilience (container qui restart automatiquement s'il crash) → Oui mais sur machine physique ou VM, nos applications ne crashaient jamais. Sur Kubernetes, les containers crash toujours pour diverses raisons (on ne sait jamais si quelqu'un bricole dans l'infastructure du cluster)
où est le retour sur investissement ?
Mon entreprise veut mettre quasiment toutes les applications sur Kubernetes. J'ai parfois l'impression que nous passons plus de temps à résoudre des problèmes créés par Kubernetes et toute la chaîne d'automatisation qu'à travailler sur le produit lui-même.
Alors, que se passe-t'il avec moi ? Mon entreprise se plante de vision ou c'est les team K8s et teams automatisaiton qui ont rendu les choses trop complexes ?
J'aimerais particulièrement avoir des retours de personnes qui ont réellement comparé le coût total VM vs Kubernetes, en incluant le temps des équipes d'infrastructure et de platform.
Dans quels cas avez-vous constaté un véritable retour sur investissement avec Kubernetes ?
Merci