Microservices et Kubernetes : guide de jardinage pour les écosystèmes logiciels

NGINX | 30 mars 2023

À l’instar du jardinage, le développement logiciel nécessite de comprendre comment différents éléments interagissent pour créer un écosystème à la fois harmonieux et productif. C’est ce qui nous a incités à choisir le jardinage comme thème de l’édition de cette année de notre programme « Microservices March ». Comme dans tout jardin, une mauvaise herbe tenace ne cesse de s’immiscer dans la conversation : quelle est la différence entre les microservices et Kubernetes ?

Bannière avec le titre de cette section — Microservices : les plantes de votre jardin

Les plantes sont les principaux éléments de l’écosystème d’un jardin. Ce sont les organismes vivants qui composent votre jardin et contribuent à sa beauté et à son bon fonctionnement. De même, les microservices sont les principaux composants des applications logicielles modernes. Ce sont des services individuels qui remplissent des fonctions spécifiques et collaborent pour créer une application plus vaste et plus complexe.

À l’instar des plantes, les microservices varient par leur taille, leur forme et leur fonction. Certains sont petits et spécialisés, chargés d’une seule opération. D’autres sont plus importants et plus polyvalents, ou se composent d’un ensemble de composants plus petits. Par exemple, un fraisier est une petite plante qui ne produit que des fraises. Il s’apparente à un microservice qui traite uniquement les transactions par carte bancaire (petit et spécialisé). Une plante plus polyvalente, comme la coriandre, produit non seulement les feuilles utilisées dans la salsa et le guacamole, mais aussi les graines de coriandre. Ce type de plante s’apparente à un service qui gère l’authentification des utilisateurs (un processus plus vaste et plus général).

Bannière avec le titre de cette section — Conteneurs : les pots de vos microservices

La plupart des plantes doivent être plantées dans de la terre afin d’y puiser les nutriments et l’humidité dont elles ont besoin : si vous les laissez à racines nues, elles mourront. Bien qu’il soit tout à fait possible de les planter directement en pleine terre, de nombreux jardiniers optent pour la culture en pots, car elle leur permet d’adapter le terreau, de mieux protéger les plantes contre les nuisibles et de les déplacer dans le jardin (voire de les rentrer pour l’hiver). De même, plusieurs possibilités s’offrent à vous pour héberger vos microservices, la plus courante étant, à juste titre, le « conteneur ». Un microservice conteneurisé comprend tout ce qui est nécessaire à l’exécution de l’application et peut être facilement transféré d’un environnement d’exécution à un autre.

Bannière avec le titre de cette section — Kubernetes : les outils de jardinage

Nous avons donc nos microservices (les plantes) dans nos conteneurs (les pots), mais comment les déployer, les maintenir et les faire évoluer ? Avec des outils ! C’est là qu’intervient Kubernetes. Kubernetes propose de nombreuses fonctionnalités et extensions qui facilitent la gestion et la maintenance des microservices. Il est d’ailleurs considéré comme l’outil de référence pour l’orchestration de conteneurs. Kubernetes offre par exemple des fonctionnalités d’équilibrage de charge automatisé, de découverte de services et d’autoréparation (afin d’alléger la charge de travail de vos équipes de développement en matière de maintenance et de supervision). Et lorsque tout le monde veut que vos microservices (les plantes) produisent davantage ? Kubernetes prend en charge la mise à l’échelle automatique et les mises à jour progressives pour assurer le bon fonctionnement de vos applications de microservices.

Remarque : les alternatives à Kubernetes, telles que Docker Swarm et HashiCorp Nomad, offrent des fonctionnalités très similaires.

Bannière avec le titre de cette section — Microservices sans Kubernetes : l’option « jardin sauvage »

Nous avons démontré l’intérêt d’utiliser Kubernetes pour gérer les microservices et éviter que les applications ne se développent de manière anarchique et incontrôlée. Toutefois, Kubernetes et les conteneurs ne sont pas toujours nécessaires. Selon la complexité de votre application, vous pouvez opter pour une plateforme traditionnelle de machines virtuelles (voire physiques), dont le déploiement ou le provisionnement peut toujours être effectué à l’aide d’outils d’automatisation. Ces outils n’offrent pas le même niveau d’automatisation et d’évolutivité que Kubernetes, mais ce compromis peut vous convenir pour des applications moins complexes ou non critiques. Une autre possibilité consiste à utiliser des plateformes de calcul sans serveur (telles que AWS Lambda) qui vous permettent d’exécuter le code de vos microservices en réponse à des événements sans avoir à vous soucier de l’infrastructure sous-jacente.

Bannière avec le titre de cette section — Dans Kubernetes, tout n’est pas microservices

Les jardiniers avertis savent que le compagnonnage des plantes – par exemple, des œillets d’Inde à côté des tomates – permet de mieux utiliser les ressources et contribue à rendre le jardin plus sain. De même, Kubernetes propose un large éventail de fonctionnalités et de modules complémentaires qui le rendent utile bien au-delà de la gestion des microservices. Kubernetes peut notamment être utilisé pour des applications qui ne reposent pas sur des microservices (comme des modèles de machine learning ou des applications monolithiques). Nous voyons de nombreux clients utiliser Kubernetes pour gérer des microservices et d’autres applications, certains allant même jusqu’à déployer des machines virtuelles (VM) dans Kubernetes ! Cette solution peut être particulièrement intéressante pour les entreprises qui font évoluer leurs applications monolithiques existantes vers une architecture orientée microservices.

Aller au fond des choses

Nous espérons que vous retiendrez deux choses de cet article (outre l’envie d’aller faire un tour dans la pépinière près de chez vous) :

  • Tout ce qui est déployé dans Kubernetes n’est pas nécessairement un microservice. Les fonctionnalités et extensions proposées par Kubernetes en font un outil utile dans une grande variété d’écosystèmes.
  • Les microservices n’ont pas toujours besoin d’être gérés avec Kubernetes. Certaines applications prospèrent grâce à d’autres outils et à une approche de type « jardin sauvage ».

Consultez les ressources suivantes pour en savoir plus sur les principes fondamentaux des microservices :


Partager

À propos de l’auteur

Jenn Gile
Jenn GileResponsable du marketing produit, NGINX

Autres articles de Jenn Gile

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
NGINX | 13/10/2025

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA

Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
NGINX | 03/11/2023

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?

Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
NGINX | 11/03/2020

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX

Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
NGINX | 11/06/2019

Un testeur d’expressions régulières pour NGINX et NGINX Plus

Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.

Caches partagés avec les clusters de cache NGINX Plus, partie 1
NGINX | 24/01/2017

Caches partagés avec les clusters de cache NGINX Plus, partie 1

Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.

Introduction aux microservices
NGINX | 19/05/2015

Introduction aux microservices

Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.