24/06/2024 – Les micro-services

Introduction

Les applications sont généralement créées via une architecture monolithique. Autrement dit, tous les éléments de l’application qui peuvent être déployés résident dans cette seule application. L’inconvénient, c’est que plus celle-ci est volumineuse, plus il devient difficile de l’enrichir de fonctions et de traiter rapidement les problèmes qui surviennent. Avec une approche basée sur des micro-services plutôt que sur une architecture monolithique, il est possible de résoudre ces problèmes, d’améliorer le développement et de gagner en réactivité.

Définition

Les micro-services désignent à la fois une architecture et une approche de développement logiciel qui consiste à décomposer les applications en éléments les plus simples, indépendants les uns des autres. Contrairement à une approche monolithique classique, selon laquelle tous les composants forment une entité indissociable, les micro-services fonctionnent en synergie pour accomplir les mêmes tâches, tout en étant séparés. Chacun de ces composants ou processus est un micro-service. Granulaire et léger, ce type de développement logiciel permet d’utiliser un processus similaire dans plusieurs applications.

Mais quel est l’intérêt d’une infrastructure basée sur des micro-services ? L’objectif, qui consiste tout simplement à proposer des logiciels de qualité en un temps record, devient atteignable grâce aux micro-services. Pour autant, d’autres éléments entrent également en ligne de compte. La décomposition des applications en micro-services ne suffit pas. Il faut aussi gérer ces micro-services, les orchestrer et traiter les données qui sont générées et modifiées par les micro-services.

Concrètement

Un micro-service est une application qui peut se présenter sous forme de service Windows ou de démon Linux, où même de simple exécutable lancé à la demande qui s’occupe d’une seule et unique tâche. L’action du micro-service est généralement déclenché par la réception d’une requête REST mais d’autres types de communication existent aussi (MQTT, RabbitMQ, etc…) selon ce que l’on souhaite. Le micro-service applique le principe KISS, il est simple et dépourvu de fonctionnalités superflues et doit faire preuve de réactivité. En règle générale tous les micro-services d’une même application suivent le schéma de développement afin de faciliter la maintenance. Lorsque le développeur maitrise l’architecture de base de l’un des micro-services, il les maitrise tous de fait ce qui facilite la maintenance.

L’ajout de nouvelles fonctionnalités se fait simplement par le développement de nouveaux micro-services. Ceux déjà existant n’étant pas modifier il n’y a pas de risque de régression dans l’évolution de l’application comme c’est la cas avec une application monolithique. Les délais de développement, de test et de mise en production sont alors raccourcis.

Au sein d’une telle architecture l’accomplissement de tâches complexes se fait via l’échange de messages entre les différents micro-services.

Conclusion

L’utilisation de micro-services est particulièrement adaptée dans le cas d’architectures distribuées, de processus complexes et critiques nécessitant robustesse et réactivité. Ils sont de nos jour de plus en plus présents et utiles dans le domaine de la production et de l’informatique industrielle. Vous pensez que cette architecture peut vous être utile, ou vous souhaitez approfondir le sujet ?

Alors n’hésitez pas à me contacter pour échanger.

Comments

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *