Les micro-services sont de petits segments d'une application qui fonctionnent indépendamment les uns des autres, et ils peuvent être déployés de diverses manières. Un microservice sans serveur est déployé au sein d'une architecture serverless.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
Imaginez que vous prenez une application, que vous la découpez en morceaux et que vous l'exécutez comme une collection de petites pièces au lieu d'un tout monolithique. C'est en gros ce qu'est une architecture de micro-services. Chaque élément de l'application est appelé "micro-service" et n'exécute qu'un seul service, fonctionne indépendamment des autres parties de l'application, fonctionne dans son propre environnement et stocke ses propres données. Malgré leur nom, les micro-services ne doivent pas nécessairement être petits. Ce qui les rend "micro", c'est qu'ils ne traitent qu'un seul service et font partie d'une application plus vaste.
Imaginez une application construite de microservices comme une équipe de football américain, dans laquelle chaque joueur joue un rôle distinct, mais où les joueurs forment ensemble une équipe (l'ensemble de l'application) qui accomplit collectivement un but. Ou bien, considérez les micro-services comme les différents systèmes du corps humain (circulatoire, respiratoire, etc.), et l'application comme le corps tout entier.
Du point de vue de l'utilisateur, une application construite avec des micro-services a une interface unique et devrait fonctionner de la même manière qu'une application conçue comme un ensemble. Toutefois, en coulisse, chaque micro-service possède sa propre base de données et fonctionne séparément du reste de l'application. En outre, les micro-services d'une même application peuvent être écrits dans des langues différentes et utiliser des bibliothèques différentes.
Les micro-services sont souvent mis en contraste avec l'architecture monolithique. L'architecture monolithique est la manière classique de construire une application. Une application monolithique est un paquet unique, avec l'interface utilisateur en haut, la logique métier au milieu et la base de données en bas. Habituellement, une application monolithique est hébergée sur un serveur ou un ensemble de serveurs spécifiques. L'un des inconvénients de cette méthode est que toute modification mineure apportée à l'application implique la mise à jour de son ensemble. Un autre inconvénient est que si une partie de l'application tombe en panne, c'est toute l'application qui risque de tomber en panne.
Les micro-services peuvent être déployés de différentes manières ; ils peuvent faire partie d'une architecture sans serveur, être hébergés dans des conteneurs, être développés à l'aide de PaaS ou, en théorie, être utilisés pour créer une application hébergée localement. Toutefois, les avantages de la création d'une application à partir de micro-services sont peut-être plus évidents lorsque l'application est hébergée dans le nuage, soit à l'aide de conteneurs, soit dans une architecture sans serveur.
Les micro-services sans serveur sont déployés au sein de l'infrastructure d'un fournisseur sans serveur et ne fonctionnent que lorsqu'ils sont nécessaires à l'application. Selon sa taille, un micro-service peut également être divisé en fonctions encore plus petites. Pour en savoir plus sur le fonctionnement de l'informatique sans serveur, voir Qu'est-ce que l'informatique sans serveur ?
Cette distinction est encore en cours de définition par la communauté des techniciens, mais en général, un micro-service est plus grand et peut faire plus qu'une fonction. Une fonction est un morceau de code relativement petit qui n'exécute qu'une seule action en réponse à un événement. Selon la manière dont les développeurs ont divisé une application, un micro-service peut être équivalent à une fonction (c'est-à-dire qu'il n'exécute qu'une seule action), ou il peut être composé de plusieurs fonctions.
Pour étendre la métaphore du football, considérez toutes les tâches d'un quarterback : lancer des passes, passer le ballon au running back, etc. Si le quarterback est comme un micro-service dans le contexte de l'équipe (fournissant le service de "quarterbacking"), alors chacune de ces petites activités est une fonction. Toutefois, la ligne de démarcation entre un micro-service et une fonction peut parfois être floue, tout comme certains joueurs d'une équipe de football n'effectuent qu'une seule action, comme le botteur.
Les Cloudflare Workers sont des morceaux de code JavaScript qui sont hébergés dans le réseau latéral de Cloudflare et s'exécutent en réponse à des requêtes HTTP. Les Workers se comportent davantage comme des fonctions, mais offrent la possibilité de travailler également comme des micro-services. Cloudflare ne limite pas la taille ou le type de Workers que les développeurs peuvent créer et déployer.