Docker c'est Cool, Kubernetes c'est hype, mais peut-on faire autrement ?

Dans le monde du DevOps, Docker et Kubernetes sont devenus des références incontournables. Mais je me suis souvent demandé : est-ce vraiment ce qu’il me faut pour mes projets, ou est-ce juste ce que tout le monde utilise ?

Docker c'est Cool, Kubernetes c'est hype, mais peut-on faire autrement ?

Les outils comme Docker et Kubernetes ont redéfini la manière dont nous construisons et déployons nos applications. Ils sont devenus des standards incontournables. Mais dans ce monde de la tech où l’effet de mode est roi, une question cruciale se pose : est-ce vraiment ce dont notre projet ou notre équipe a besoin ? Ou est-ce juste ce que “tout le monde utilise” ou parce que c'est "LE standard" ?

Docker : entre facilité et complexité

Docker reste un allié puissant pour l’isolation, la portabilité et la rapidité de déploiement. Il brille notamment en environnement de développement grâce à Docker Compose. Cependant, dès qu'on parle de production, la gestion multi-conteneurs ou du réseau devient plus épineuse. Il demande souvent une couche au dessus, un orchestrateur.

Kubernetes : le monstre orchestrateur

Kubernetes offre une orchestration automatisée, une haute disponibilité, une évolutivité extraordinaire, une standardisation des façon de déployer des applications et une sécurité renforcée. Sur le papier, c’est fabuleux. En réalité, sa courbe d’apprentissage, sa consommation de ressources et sa complexité rendent son adoption parfois disproportionnée au besoin réel du projet ou de l'équipe.

Et si on optait pour autre chose ?

Des alternatives existent comme les solutions géré par les fournisseurs clouds : Azure Container Apps, Digital Ocean App Platform, Vercel, etc. Des solutions clés en main, simples à déployer, peu coûteuses en maintenance et offrant une disponibilité convenable. Le revers ? Une flexibilité et une évolutivité limitées.

L'autre alternative c'est d'utiliser ce qui fonctionne depuis des années: VM Linux avec SystemD et SSH !

Notre approche chez Paren : minimalisme pragmatique

Nous avons conçu une architecture autour de trois piliers :

  • Infrastructure as Code avec Terraform
  • Configuration as Code avec Ansible
  • Continuous Deployment via GitHub Actions

👉 Chaque étape est automatisée pour réduire les erreurs humaines, garantir cohérence et sécurité, et favoriser la collaboration.

Docker & Kubernetes, mais à bon escient

Nous utilisons Docker en développement, pour les dépendances (Docker Compose) ou les tests d'intégration (Testcontainers). Nous utilisions des containeurs en production via l'offre géré de notre fournisseur cloud. Kubernetes va être prochainement introduit maintenant que nous avons un besoin réel: nos solutions géré par notre fournisseur nous limite trop et nous commençons à avoir un seuil critique d'applications.

Morale de l’histoire

Suivre la hype n'est pas une stratégie. Choisissons nos outils avec discernement :

  • Adapter les solutions à nos besoins réels
    • Est-ce que l'équipe est prête à la courbe d'apprentissage et au changement ?
  • Éviter la complexité inutile
  • Ne pas optimiser trop tôt
  • Oui, les "vieilles" solutions fonctionnent encore !