L'architecture de microservices (ou microservices) désigne un style d'architecture utilisé dans le développement d'applications. Elle permet de décomposer une application volumineuse en composants indépendants, chaque élément ayant ses propres responsabilités. Pour diffuser la requête d'un utilisateur unique, une application basée sur des microservices peut appeler plusieurs microservices internes pour composer sa réponse.
Les conteneurs sont un exemple parfait d'architecture de microservices, car ils vous permettent de vous concentrer sur le développement des services sans avoir à vous soucier des dépendances. L'informatique sans serveur est une autre approche courante. Elle permet aux équipes d'exécuter des microservices sans gérer de serveurs ni d'infrastructure, et de faire évoluer automatiquement les fonctions selon la demande.
Découvrez comment Google Kubernetes Engine (GKE) et Cloud Run peuvent vous aider à créer des applications basées sur des microservices à l'aide de conteneurs.
Prêt à vous lancer ? Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Une architecture de microservices est un type d'architecture d'application dans laquelle l'application est développée sous la forme d'un ensemble de services. Elle fournit le framework permettant de développer, déployer et gérer de manière indépendante des diagrammes et des services d'architecture de microservices.
Dans une architecture de microservices, chaque microservice est un service unique conçu pour accueillir une fonctionnalité d'application et gérer des tâches discrètes. Chaque microservice communique avec d'autres services via des interfaces simples afin de répondre à des problématiques métier.
Les applications monolithiques traditionnelles sont conçues comme une seule unité unifiée. Tous les composants sont étroitement couplés et partagent des ressources et des données. Cela peut entraîner des difficultés au niveau de l'évolutivité, du déploiement et de la gestion de l'application, en particulier à mesure que sa complexité augmente. En revanche, l'architecture de microservices décompose une application en une suite de services indépendants de petite taille. Chaque microservice est autonome, avec son propre code, ses propres données et ses propres dépendances. Cette approche présente plusieurs avantages potentiels :
Pour les applications qui ne sont pas encore assez volumineuses ou complexes pour justifier une architecture de microservices entièrement distribuée, le monolithe modulaire est une option intéressante. Cette approche maintient une seule unité de déploiement d'application (un monolithe), mais sépare strictement le codebase de l'application en modules internes fortement cohérents et faiblement couplés en fonction du domaine d'activité. Cette approche offre les avantages organisationnels des microservices (limites claires, développement indépendant) sans la surcharge liée à la gestion d'un système distribué.
De nombreuses organisations de divers secteurs ont adopté une architecture de microservices pour relever des défis métier spécifiques et stimuler l'innovation. Voici quelques exemples :
En général, les microservices sont utilisés pour accélérer le développement d'applications. Les architectures de microservices créées à l'aide de Java sont courantes, en particulier les architectures Spring Boot. Il est également courant de comparer les microservices à une architecture orientée services. Les deux architectures ont le même objectif, c'est-à-dire diviser des applications monolithiques en composants plus petits, mais elles ont des approches différentes. Voici quelques exemples d'architectures de microservices :
Migration de sites Web
Un site Web complexe hébergé sur une plate-forme monolithique peut être migré vers une plate-forme de microservices dans le cloud, basée sur des conteneurs.
Contenu multimédia
Grâce à l'architecture de microservices, les images et les éléments vidéo peuvent être stockés dans un système de stockage d'objets évolutif, et diffusés directement sur le Web ou sur mobile.
Transactions et factures
Le traitement et le règlement des paiements peuvent être séparés sous la forme d'unités de services indépendantes afin que les paiements restent acceptés si la facturation ne fonctionne pas.
Traitement des données
Une plate-forme de microservices peut étendre la compatibilité cloud pour les services de traitement de données modulaires existants.
Pour gérer la complexité et optimiser les performances des systèmes distribués, les architectes s'appuient aujourd'hui sur plusieurs modèles de conception fondamentaux.
Maillage de services
Architecture basée sur des événements (EDA)
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours sans frais.