REL 3: Comment concevez-vous l'architecture de service de votre charge de travail ?
Créez des charges de travail hautement évolutives et fiables à l'aide d'une architecture orientée service (SOA) ou d'une architecture de microservices. La SOA consiste à rendre les composants logiciels réutilisables via les interfaces de service. L'architecture des microservices va plus loin, en particulier en rendant les composants plus petits et plus simples.
Ressources
Amazon API Gateway: Configuring a REST API Using OpenAPI
Implementing Microservices on AWS
Microservices on AWS
Microservices - a definition of this new architectural term
Microservice Trade-Offs
Bounded Context (a central pattern in Domain-Driven Design)
Bonnes pratiques:
-
Choisir comment segmenter votre charge de travail: L'architecture monolithique doit être évitée. Faites votre choix plutôt entre SOA et microservices. Pour chaque choix, comparez les avantages aux complexités : ce qui convient pour un nouveau produit de course est différent de ce dont a besoin une charge de travail conçue pour augmenter d'échelle. Les avantages liés à l'utilisation de segments plus petits sont, entre autres, une plus grande agilité, une plus grande flexibilité organisationnelle et une évolutivité. Les complexités sont une latence accrue, un débogage plus complexe et une charge opérationnelle accrue.
-
Créer des services axés sur des domaines d'activité et des fonctionnalités spécifiques: SOA crée des services avec des fonctions bien définies dictées par les besoins de l'entreprise. Les microservices utilisent des modèles de domaine et un contexte délimité pour limiter ces éléments de façon à ce que chaque service fasse une seule chose. En vous concentrant sur des fonctionnalités spécifiques, vous pouvez différencier les exigences de fiabilité des différents services et cibler les investissements avec plus de précision. Un problème commercial concis et une petite équipe associée à chaque service permet également une mise à l'échelle organisationnelle plus facile.
-
Fournir des contrats de service par API: Les contrats de service sont des accords documentés entre les équipes sur l'intégration de service et incluent une définition d'API lisible par la machine, des limites de taux et des attentes en matière de performance. Une stratégie de gestion des versions permet aux clients de continuer à utiliser l'API existante et de procéder à la migration de leurs applications vers la nouvelle API lorsqu'ils sont prêts. Le déploiement peut se produire à tout moment, tant que le contrat n'est pas enfreint. L'équipe du fournisseur de services peut utiliser la pile technologique de son choix pour satisfaire aux clauses du contrat d'API. De même, le consommateur du service peut utiliser sa propre technologie.
Plan d'amélioration
Choisir comment segmenter votre charge de travail
- SOA et les microservices offrent respectivement une segmentation plus petite, ce qui est préférable pour une architecture moderne évolutive et fiable. Toutefois, si vous avez une bonne raison de choisir une architecture monolithique, vous devez vous assurer qu'elle est modulaire et qu'elle a la possibilité d'évoluer vers SOA ou microservices à mesure que votre produit évolue avec l'adoption par les utilisateurs.
- SOA peut constituer un bon compromis pour parvenir à une segmentation plus réduite
tout en évitant certaines des complexités des microservices.
Microservice Trade-Offs - Si votre charge de travail est appropriée et que votre organisation peut la prendre
en charge, vous devez utiliser une architecture de microservices pour obtenir la meilleure
agilité et la meilleure fiabilité.
Implementing Microservices on AWS - AWS App Mesh peut être utilisé avec des architectures orientées service pour fournir
une découverte et un accès fiables aux services.
What is AWS App Mesh?
Créer des services axés sur des domaines d'activité et des fonctionnalités spécifiques
- Effectuez une analyse de domaine pour définir une conception orientée domaine (DDD)
pour votre charge de travail. Ensuite, vous pouvez choisir un type d'architecture
pour répondre aux besoins de votre charge de travail.
How to break a Monolith into Microservices
Getting Started with DDD when Surrounded by Legacy Systems
Eric Evans “Domain-Driven Design: Tackling Complexity in the Heart of Software”
Implementing Microservices on AWS
- Définissez l'API pour la charge de travail ainsi que ses objectifs de conception,
ses limites et toutes autres considérations liées à son utilisation.
- Définissez l'API
- La définition de l'API doit tenir compte de la croissance et prévoir des paramètres supplémentaires.
- Définissez les disponibilités conçues.
- Votre API peut avoir plusieurs objectifs de conception pour différentes fonctions.
- Établir des limites
- Utilisez des tests pour définir les limites des capacités de votre charge de travail.
- Définissez l'API
Fournir des contrats de service par API
Amazon API Gateway: Configuring a REST API Using OpenAPI
- Une stratégie de gestion des versions permet aux clients de continuer à utiliser l'API existante et de procéder à la migration de leurs applications vers la nouvelle API lorsqu'ils sont prêts.
- Amazon API Gateway est un service entièrement géré qui permet aux développeurs de créer facilement des API à n'importe quelle échelle. Vous pouvez définir votre contrat d'API et l'importer dans API Gateway à l'aide de la spécification OpenAPI (OAS), anciennement appelée spécification Swagger. Avec API Gateway, vous pouvez ensuite gérer les versions et déployer les API.