Les microservices constituent une approche architecturale et organisationnelle du développement logiciel, dans laquelle le logiciel se compose de petits services indépendants qui communiquent via des API bien définies. Ces services sont détenus par de petites équipes auto-contenues.

Les architectures de microservices simplifient la mise à l'échelle et accélèrent le développement des applications, pour des innovations et des délais de mise sur le marché optimisés.

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.

Architecture monolithique ou de microservices

Fragmenter une application monolithique en microservices

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.

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.

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.

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.

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.

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.

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.

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.


AWS intègre des composants qui prennent en charge toutes les architectures d'application, peu importe l'échelle, la charge ou la complexité.

Puissance de traitement des microservices.

Amazon EMR

Amazon Elastic Container Service

Un service de gestion de conteneurs hautement évolutif et à hautes performances, qui prend en charge les conteneurs Docker et vous permet d'exécuter facilement des applications sur un cluster géré d'instances Amazon EC2.
En savoir plus »

Grâce à Amazon ECS, Coursera peut à présent déployer des modifications logicielles en quelques minutes, au lieu de quelques heures dans un environnement isolé en ressources.
En savoir plus »

Amazon EMR

AWS Lambda

AWS Lambda vous permet d'exécuter du code sans avoir à mettre en service ou gérer des serveurs. Il vous suffit de charger votre code : Lambda fait le nécessaire pour l'exécuter et le dimensionner en assurant une haute disponibilité.
En savoir plus »

Localytics utilise AWS Lambda pour développer des microservices permettant à leurs équipes de développement de créer des outils d'analytique personnalisés sans service d'assistance. En savoir plus »


Stockage de données sécurisé, durable et évolutif.    

Amazon ElastiCache

Amazon ElastiCache améliore les performances des services en vous permettant de récupérer des informations à partir de caches en mémoire gérés rapides, au lieu de vous en remettre entièrement à des bases de données sur disques, qui sont plus lentes. En savoir plus »

Amazon S3

Amazon S3 constitue pour les développeurs et le personnel informatique une solution de stockage d'objets très fiable, sécurisée et évolutive, adaptée à des quantités variables de données. En savoir plus »

Amazon DynamoDB

Un service de base de données NoSQL rapide, flexible et entièrement géré pour toutes les applications nécessitant une latence constante d’une milliseconde, quelle que soit l'échelle.  En savoir plus »

Amazon RDS

Configurez, exploitez et mettez à l'échelle facilement une base de données relationnelle dans le cloud. Faites votre choix parmi six moteurs de base de données courants, notamment Oracle, Microsoft SQL Server, PostgreSQL, MySQL et MariaDB. En savoir plus »

Amazon Aurora

Un moteur de base de données relationnelle qui associe la vitesse et la fiabilité des bases de données commerciales haut de gamme à la simplicité et la rentabilité des bases de données open source. Profitez d'un débit jusqu'à 5 fois supérieur à celui d'une base de données MySQL standard exécutée sur le même matériel. En savoir plus »

Remind a réduit les temps de réponse de l'application de 200 % en développant une plate-forme en tant que service (PaaS) pour les microservices sur Amazon ECS. 
En savoir plus »


Des services de mise en réseau avec un haut débit et une latence inférieure à milliseconde.

AWS Cloud Map

AWS Cloud Map est un outil de découverte de service pour toutes vos ressources cloud. Grâce à Cloud Map, vous pouvez définir des noms personnalisés pour vos ressources d'applications. Il maintient l'emplacement mis à jour de ces ressources qui changent de façon dynamique.

En savoir plus »

AWS App Mesh

AWS App Mesh facilite le contrôle et la surveillance des microservices s'exécutant sur AWS. App Mesh standardise la manière dont vos microservices communiquent, en vous offrant une visibilité de bout en bout et en contribuant à assurer une haute disponibilité à vos applications.

En savoir plus »

Équilibreur de charge d'application

Application Load Balancer équilibre les charges du trafic HTTP et HTTPS sur la couche d'application (couche 7) et fournit un routage de requête avancé pour la fourniture d'architectures d'applications modernes, incluant les microservices et les conteneurs.

En savoir plus »

Équilibreur de charge du réseau

Le Network Load Balancer permet un équilibrage de charge haute performance qui opère au niveau de la couche de connexion réseau (couche 4). Vous pouvez ainsi acheminer les connexions vers les microservices en fonction des données du protocole IP. Le Network Load Balancer peut traiter des millions de requêtes à la seconde tout en maintenant des latences extrêmement faibles.

En savoir plus »

Amazon API Gateway

Amazon API Gateway fournit une plateforme complète pour la gestion des API. Amazon API Gateway vous permet de traiter des centaines de milliers d'appels d'API simultanés et se charge de la gestion du trafic, du contrôle des autorisations et des accès, de la surveillance et de la gestion de la version de l'API.

En savoir plus »

Amazon Route 53

Amazon Route 53 est un service web de système de noms de domaine (DNS) cloud évolutif et hautement disponible qui connecte efficacement les requêtes à l'infrastructure s'exécutant dans AWS. Ce service peut être utilisé pour les vérifications de l'état IP et la découverte de service pour les microservices.

En savoir plus »

Airtime offre son expérience sociale à ses clients plus rapidement et de façon plus fiable, le tout sans délai d'attente après la reconception de leur application en tant que microservices s'exécutant sur AWS. En savoir plus »


Publiez et coordonnez des communications inter-processus.

Amazon Simple Notification Service (Amazon SNS)

Amazon SNS est un service de messagerie pub/sub entièrement géré qui facilite le découplage et la mise à l'échelle des microservices, des systèmes décentralisés et des applications sans serveur.
En savoir plus »

Amazon Simple Queue Service (Amazon SQS)

Amazon SQS est un service de file d'attente de messagerie entièrement géré qui facilite le découplage et le dimensionnement des microservices, des systèmes décentralisés et des applications sans serveur.
En savoir plus »

Le groupe Lyft utilise AWS pour être plus productif en tant qu'entreprise et gérer sa croissance exponentielle, en exploitant les produits AWS pour prendre en charge plus de 100 microservices qui améliorent chaque élément de l'expérience client. En savoir plus »


Surveillez les performances du service et l'utilisation des ressources. Effectuez le suivi des architectures complexes pour l'optimisation et la résolution des problèmes.

AWS CloudTrail

Avec CloudTrail, vous pouvez consigner, surveiller en continu et conserver l'activité de votre compte relative aux actions effectuées sur l'ensemble de votre infrastructure. L'historique des événements CloudTrail simplifie l'analyse de la sécurité, le suivi des modifications de ressources et le dépannage. En savoir plus »

Amazon CloudWatch

Utilisez Amazon CloudWatch pour collecter et suivre des métriques, regrouper et contrôler des fichiers journaux, régler des alarmes et réagir automatiquement aux modifications apportées à vos services en cours d'exécution et ressources AWS.
En savoir plus »

AWS X-Ray

Obtenez un plan des composants sous-jacents de votre application et un aperçu de bout en bout des requêtes qui transitent dans celle-ci. Tandis qu'un ensemble de microservices collabore pour gérer une requête, AWS X-Ray offre une vue centralisée des journaux, vous permettant de gérer et de résoudre les problèmes liés aux interactions complexes. En savoir plus »

En utilisant des microservices hébergés sur Amazon ECS, Shippable peut se concentrer sur la livraison des fonctionnalités à ses clients. Il a permis d'accélérer les temps de déploiement des fonctionnalités, d'une fois par semaine à plusieurs fois par jour. En savoir plus »


Gérez le cycle de vie du code, de la validation à l'exécution.

Amazon Elastic Container Registry (Amazon ECR)

Un registre de conteneurs Docker entièrement géré que vous pouvez utiliser pour stocker, gérer et déployer facilement les images de conteneurs Docker. Amazon ECR s'intègre à Amazon Elastic Container Service (Amazon ECS), afin de simplifier les flux de travail, du développement à la production, pour les conteneurs. En savoir plus »

Outils pour développeurs AWS

Les outils pour développeurs AWS sont un ensemble de services conçus pour permettre aux développeurs et aux professionnels de l'informatique de mettre en place des pratiques DevOps pour proposer rapidement et en toute sécurité des logiciels. La combinaison de ces services vous permet de stocker et de contrôler en toute sécurité la version du code source de votre application, et de créer, tester et déployer automatiquement votre application sur AWS ou dans votre environnement sur site. En savoir plus »

Gilt est passé d'un centre de données sur site à AWS, pour profiter de la rapidité et de l'efficacité d'une infrastructure de microservices basée sur le cloud.
En savoir plus »