- AWS
- Microservices
Microservices
Développez des microservices hautement disponibles pour alimenter des applications, quelles que soient leur taille et leur échelle.
Architecture monolithique vs. ou de microservices
Avec les architectures monolithiques, tous les processus sont étroitement couplés et s'exécutent comme un système unique. Cela signifie que si l'un des processus de l'application enregistre un pic de demande, toute l'architecture doit être mise à l'échelle. L'ajout ou l'amélioration de fonctionnalités d'une application monolithique devient plus complexe à mesure de la croissance de la base de code. Cette complexité limite les expérimentations et rend l'implémentation de nouvelles idées difficile. Les architectures monolithiques augmentent les risques en matière de disponibilité des applications, car de nombreux processus dépendants et étroitement couplés renforcent l'impact d'un seul échec de processus.
Avec une architecture de microservices, une application est développée à l'aide de composants indépendants, qui exécutent chaque processus de l'application sous forme de service. Ces services communiquent par le biais d'une interface bien définie et à l'aide d'API légères. Les services sont développés pour des capacités métier, et chaque service exécute une seule fonction. Étant donné qu'ils sont exécutés de manière indépendante, chaque service peut être mis à jour, déployé ou mis à l'échelle pour répondre aux demandes des fonctions spécifiques d'une application.
Caractéristiques des microservices
Autonomie
Tous les services des composants d'une architecture de microservices peuvent être développés, déployés, gérés et mis à l'échelle sans affecter le fonctionnement des autres services. Les services n'ont pas besoin de partager leur code ou leur implémentation avec d'autres services. Les composants individuels communiquent par le biais d'API bien définies.
Spécialisation
Chaque service est conçu pour un ensemble de fonctionnalités et se concentre sur la résolution d'un problème spécifique. Si les développeurs apportent plus de code à un service au fil du temps, et que le service devient complexe, ce dernier peut être fragmenté en services plus petits.
Avantages des microservices
Agilité
Les microservices favorisent l'organisation de petites équipes indépendantes, qui s'approprient leurs services. Les équipes agissent au sein d'un contexte de petite taille et bien compris, et peuvent travailler de manière plus indépendante et rapide. Cela réduit la durée des cycles de développement. Vous tirez ainsi le meilleur parti des niveaux de débit cumulés de l'organisation.
Dimensionnement flexible
Les microservices permettent à chaque service d'être mis à l'échelle de manière indépendante, pour répondre à la demande des fonctionnalités de l'application prises en charge. Cela permet aux équipes de dimensionner correctement les besoins de l'infrastructure, de mesurer de manière plus précise les coûts d'une fonctionnalité, et d'assurer la disponibilité lorsqu'un service enregistre un pic de demande.
Déploiement facile
Les microservices assurent une intégration et une livraison continues, facilitant la mise en place de nouvelles idées et la restauration des modifications si un problème se produit. Le coût réduit des défaillances favorise l'expérimentation, facilite la mise à jour du code et accélère les délais de commercialisation des nouvelles fonctionnalités.
Liberté technologique
Les architectures de microservices ne suivent pas une approche « universelle ». Les équipes peuvent choisir le meilleur outil pour résoudre des problèmes spécifiques. Ainsi, les équipes qui développent les microservices peuvent choisir l'outil le mieux adapté à chaque tâche.
Code réutilisable
La fragmentation de logiciels en petits modules bien définis permet aux équipes d'utiliser les fonctions à des fins diverses. Un service écrit pour une fonction spécifique peut être utilisé comme composant pour une autre fonctionnalité. Une application peut ainsi s'amorcer elle-même, comme les développeurs peuvent créer de nouvelles fonctionnalités sans écrire du code de zéro.
Résilience
L'indépendance du service augmente la résistance de l'application face aux défaillances. Dans une architecture monolithique, la défaillance d'un seul composant peut entraîner la défaillance de l'application toute entière. Avec l'architecture de microservices, les applications gèrent entièrement les échecs des services en dégradant la fonctionnalité, mais sans interrompre l'ensemble de l'application.
La plate-forme la plus complète pour les microservices
Stockage et bases de données
Mise en réseau
Messagerie
Consignation et surveillance
DevOps
Démarrer
Commencez à créer des microservices aujourd'hui avec ces ressources.
Microservices sans serveurs
Déploiement de microservices Java sur Amazon Elastic Container Service
Création d'applications évolutives et de microservices
Exécuter des microservices à conteneurs avec Amazon ECS et ALB
Utilisation d'Amazon API Gateway avec des microservices déployés sur Amazon ECS
Découverte de service : une architecture de référence Amazon ECS