Modèles de composition
La composition logicielle désigne la manière de créer votre produit logiciel. Fondamentalement, il traite d'un diagramme d'architecture logicielle de haut niveau dans lequel différents modules de votre logiciel communiqueront pour des objectifs commerciaux spécifiques. Dans ce chapitre, nous découvrirons les différents modèles de composition logicielle largement utilisés dans les organisations. Dans le microservice, nous divisons chaque fonction en un seul processus. Chacun de ces services sera indépendant et de nature complète.
La décomposition fonctionnelle joue un rôle important dans la création de vos microservices. Il offre agilité, flexibilité et évolutivité à votre application.
Modèle d'agrégateur
Le modèle d'agrégateur est le modèle Web le plus simple pouvant être implémenté lors du développement d'un microservice. Dans ce modèle de composition, un simple module Web agira comme un équilibreur de charge, ce qui signifie qu'il appellera différents services selon les besoins. Voici un diagramme illustrant une application Web de microservice simple avec une conception d'agrégateur. Comme le montre l'image suivante, «l'agrégateur» est chargé d'appeler les différents services un par un. Si nous devons appliquer une logique métier sur les résultats du service A, B et C, nous pouvons implémenter la logique métier dans l'agrégateur lui-même.
Un agrégateur peut à nouveau être exposé comme un autre service au monde extérieur, qui peut être consommé par d'autres en cas de besoin. Lors du développement du service Web de modèle d'agrégateur, nous devons garder à l'esprit que chacun de nos services A, B et C doit avoir ses propres couches de mise en cache et qu'il doit être de nature complète.
Modèle de proxy
Le modèle de microservice proxy est une variante du modèle d'agrégateur. Dans ce modèle, nous utiliserons le module proxy au lieu du module d'agrégation. Le service proxy peut appeler différents services individuellement.
Dans le modèle Proxy, nous pouvons créer un niveau de sécurité supplémentaire en fournissant une couche proxy de vidage. Cette couche agit de manière similaire à l'interface.
Motif enchaîné
Comme son nom l'indique, ce type de modèle de composition suivra la structure en chaîne. Ici, nous n'utiliserons rien entre les couches client et service. Au lieu de cela, nous autoriserons le client à communiquer directement avec les services et tous les services seront enchaînés de telle manière que la sortie d'un service sera l'entrée du service suivant. L'image suivante montre un microservice de modèle chaîné typique.
Un inconvénient majeur de cette architecture est que le client sera bloqué jusqu'à ce que l'ensemble du processus soit terminé. Ainsi, il est fortement recommandé de garder la longueur de la chaîne aussi courte que possible.
Modèle de microservice de branche
Le microservice de branche est la version étendue du modèle d'agrégateur et du modèle de chaîne. Dans ce modèle de conception, le client peut communiquer directement avec le service. En outre, un service peut communiquer avec plusieurs services à la fois. Voici la représentation schématique de Branch Microservice.
Le modèle de microservice de branche permet au développeur de configurer dynamiquement les appels de service. Tous les appels de service se produiront de manière simultanée, ce qui signifie que le service A peut appeler les services B et C simultanément.
Modèle de ressource partagée
Le modèle de ressources partagées est en fait un conglomérat de tous les types de modèles mentionnés précédemment. Dans ce modèle, le client ou l'équilibreur de charge communiquera directement avec chaque service chaque fois que nécessaire. Il s'agit du modèle de conception le plus efficace largement suivi dans la plupart des organisations. Voici une représentation schématique du modèle de conception de ressources partagées.