Je m'intéresse à l'architecture en micro service pour l'un de mes projets.
Etant novice en la matière, il y a plusieurs points sur lesquelles je m'interroge:
- Les "API Gateways". J'ai vu qu'il était courant de passer par un API Gateway pour que le front n'ait qu'une seule api à interroger (ainsi si la structure des microservices changent, cela restera transparent pour lui). Est-ce quelque chose de nécessaire ? Est-il possible de le développer soit même pour répondre à 100% de mes besoins ? ou bien vaut-il mieux passer par un API Gateway open source par exemple
- La communication entre microservice. J'ai vu qu'il y avait plusieurs écoles :
- l'orchestration : l'API Gateway gère l'appel aux différents microservices dont il a besoin (ex : pour la création d'un utilisateur, il appelerait d'abord le service des users, puis celui des notifications)
- la chorégraphie : des events sont envoyés dans un message broker auxquels souscrivent les microservices. J'ai l'impression que cela oblige les microservices à connaître tous les évènements lancés par les autres microservices, et que cela peut être limitant.
Quels sont les pour ou les contre de ces deux méthodes ?
- Les tests automatisés. Comment gérer les tests unitiaires et d'intégration dans une architecture où il y a des dépendances entre les services ?
- La sécurisation d'une telle architecture. Entre le browser et l'api gateway, j'ai pensé à utiliser les json web token. Dans quelle mesure, un microservice doit faire confiance au json web token qu'il reçoit de l'api gateway? Comment garantir sa fiabilité ?
Partager