Pourquoi développer des microservices ?

Qu'est-ce que l'architecture microservice ? L'architecture microservice est composée de petits services qui gravite autour du modèle. Ces microservices travaillent ensemble mais ne dépendent pas les uns des autres. Pourquoi utiliser ce genre d'architecture ?

Autonomie

Les microservices ne dépendent pas des uns des autres : ils sont autonomes. le client se connecte en fait à une API passerelle qu'il le connecte lui-même a un microservice. le microservice renvoi une réponse sous forme d’un fichier JSON où un fichier XML.

Ce fichier est ensuite traité par la vue généralement. Les microservices fonctionnent à l'aide de REST qui permet d'exécuter les méthodes HTTP CRUD tel que GET ou POST.

Les deux choses à connaître pour utiliser un microservice sont l'URL avec les paramètres et ensuite la structure du fichier JSON ou XML lors de la réponse.

Diminuer la complexité

C'est aussi plus simple de parler en termes de petit service que de refaire toute l'architecture du système avec des énormes schémas UML.

Il est important se poser la question quel service vous voulez rendre à l'utilisateur, au client. Par exemple pour le microservice “utilisateur” on pourra inscrire un utilisateur et retourné ces informations.

Attention toutefois à ne pas confondre un microservice avec une entité du domaine.

un microservice peut concerner plusieurs entités par exemple une entité produit et une entité catégorie pourrait être concernées par le microservices enregistrement d'un produit. Donc le microservice utiliserait deux entités du domaine.

Déploiement rapide et continu

Chaque microservice peut être ajouté indépendamment des autres.

Chaque équipe peut travailler sur un microservice sans connaître l'état d'avancement de l'équipe puisque les microservice ne sont pas dépendants les uns des autres. Une équipe peut donc travailler sur un microservice pendant qu’une autre équipe peut travailler sur un autre microservices.

Même l'interface graphique peut être développée avant un microservice puisque on aura juste à connaître la structure du fichier JSON et de l'URL avec les paramètres et installer un serveur mock et le front-end designer pourra s'en servir.

Évolutivité

C'est assez facile d'ajouter un nouveau microservice sans toucher au reste du code et au reste de l'application puisque le microservice est autonome.

De plus, l’implémentation d’un service peut changer sans affecter le reste de l’application.

Meilleure maintenance et testable

Si un microservice ne fonctionne plus l'application continuera de fonctionner puisque les autres services ne dépendent pas de ce microservices. De plus, lorsqu’un microservice ne fonctionne plus c'est très facile de déboguer puisqu’on sait déjà quel microservices ne fonctionne plus et l’erreur est isolée du reste de l’application  du fait de sa petite taille.

Les tests avec REST sont assez faciles à mettre en place avec le statut et le format de la réponse.

Une architecture utilisée par les plus grands

Les grandes compagnies comme Amazon, Uber, eBay, Groupon ou encore Netflix utilisent les microservices.

Conclusion

Les microservices sont une architecture à vraiment prendre en compte. Cette architecture apporte de très grands avantages dans le développement d'applications. De plus, il est possible de créer des microservices avec des frameworks tels que Java Spring ou PHP Symfony.

Commentaires