Tutoriel sur les microservices : qu'est-ce que c'est, Architecture et exemple
Que sont les microservices ?
Microservices est un modรจle d'architecture orientรฉ services dans lequel les applications sont construites comme un ensemble de diverses plus petites unitรฉs de service indรฉpendantes. C'est un gรฉnie logiciel approche qui se concentre sur la dรฉcomposition dโune application en modules ร fonction unique avec des interfaces bien dรฉfinies. Ces modules peuvent รชtre dรฉployรฉs et exploitรฉs indรฉpendamment par de petites รฉquipes qui possรจdent l'intรฉgralitรฉ du cycle de vie du service.
Le terme ยซ micro ยป dรฉsigne le dimensionnement d'un microservice qui doit รชtre gรฉrable par une seule รฉquipe de dรฉveloppement (5 ร 10 dรฉveloppeurs). Dans cette mรฉthodologie, les grandes applications sont divisรฉes en plus petites unitรฉs indรฉpendantes.
Qu'est-ce que le monolithique Architecture ?
En termes simples, vous pouvez dire que l'architecture monolithique est comme un grand conteneur dans lequel tous les composants logiciels d'une application sont regroupรฉs dans un seul package.
Discutons d'un exemple de boutique de commerce รฉlectronique dans le contexte d'une architecture monolithique.

Dans toute application de commerce รฉlectronique, il existe des fonctionnalitรฉs standards telles que la recherche, Revvue et notes, et paiements. Ces fonctionnalitรฉs sont accessibles aux clients via leur navigateur ou leurs applications. Lorsque le dรฉveloppeur du site de commerce รฉlectronique dรฉploie l'application, il s'agit d'une seule unitรฉ monolithique. Le code pour diffรฉrentes fonctionnalitรฉs comme la recherche, RevLa vue, les notes et les paiements sont sur le mรชme serveur. Pour faire รฉvoluer l'application, vous devez exรฉcuter plusieurs instances (serveurs) de ces applications.
Qu'est-ce que le microservice Architecture ?
Microservice Architecture est un style de dรฉveloppement architectural qui permet de crรฉer des applications sous forme d'un ensemble de petits services autonomes dรฉveloppรฉs pour un domaine d'activitรฉ. Il s'agit d'une variante de l'architecture de style structurel qui permet d'organiser les applications sous forme d'un ensemble de services faiblement couplรฉs. Le microservice Architecture contient des services fins et des protocoles lรฉgers.
Prenons un exemple d'application de commerce รฉlectronique dรฉveloppรฉe avec une architecture de microservices. Dans cet exemple d'architecture de microservices, chaque microservice est axรฉ sur une capacitรฉ commerciale unique. Recherche, notation et Review et Payment ont chacun leur instance (serveur) et communiquent entre eux.

Dans le monolithique Architecture, tous les composants fusionnent en un seul module. Mais, dans les microservices ArchiDans leur structure, ils sont rรฉpartis en modules individuels (microservices) qui communiquent entre eux, comme le montre l'exemple de microservices ci-dessus.
La communication entre microservices est une communication sans รฉtat oรน chaque paire de requรชte et de rรฉponse est indรฉpendante. Ainsi, les microservices peuvent communiquer sans effort. Dans le microservice Architecture, les Donnรฉes sont fรฉdรฉrรฉes. Chaque microservice possรจde son magasin de donnรฉes distinct. Suivant dans ce Java Tutoriel sur les microservices, nous dรฉcouvrirons la diffรฉrence entre les microservices et l'architecture monolithique.
Microservices vs monolithiques Architecture
| Microservices | Monolithique Architecture |
|---|---|
| Chaque unitรฉ de lโapplication entiรจre doit รชtre la plus petite et doit รชtre capable dโatteindre un objectif commercial spรฉcifique. | Une base de code unique pour tous les objectifs commerciaux |
| Le dรฉmarrage du service est relativement rapide | Le dรฉmarrage du service prend plus de temps |
| L'isolation des dรฉfauts est facile. Mรชme si un service tombe en panne, un autre peut continuer ร fonctionner. | L'isolation des dรฉfauts est difficile. Si une fonctionnalitรฉ spรฉcifique ne fonctionne pas, le systรจme complet tombe en panne. Afin de rรฉsoudre ce problรจme, l'application doit รชtre reconstruite, retestรฉe et รฉgalement redรฉployรฉe. |
| Tous les microservices doivent รชtre faiblement couplรฉs afin que les modifications apportรฉes ร lโun nโaffectent pas lโautre. | Lโarchitecture monolithique est รฉtroitement couplรฉe. Les modifications dans un module de code affectent lโautre |
| Les entreprises peuvent dรฉployer davantage de ressources vers des services gรฉnรฉrant un retour sur investissement plus รฉlevรฉ | Puisque les services ne sont pas isolรฉs, lโallocation individuelle des ressources nโest pas possible |
| Plus de ressources matรฉrielles pourraient รชtre allouรฉes au service frรฉquemment utilisรฉ. Dans l'exemple de commerce รฉlectronique ci-dessus, un plus grand nombre d'utilisateurs consultent la liste des produits et effectuent des recherches par rapport aux paiements. Ainsi, davantage de ressources pourraient รชtre allouรฉes au microservice de recherche et de liste de produits. | La mise ร lโรฉchelle des applications est ร la fois un dรฉfi et un gaspillage. |
| Les microservices restent toujours cohรฉrents et disponibles en permanence. | Les outils de dรฉveloppement sont surchargรฉs car le processus doit repartir de zรฉro. |
| Les donnรฉes sont fรฉdรฉrรฉes. Cela permet ร chaque microservice d'adopter un modรจle de donnรฉes le mieux adaptรฉ ร ses besoins. | Les donnรฉes sont centralisรฉes. |
| Petites รฉquipes ciblรฉes. Dรฉveloppement parallรจle et plus rapide | Une grande รฉquipe et des efforts considรฉrables de gestion dโรฉquipe sont nรฉcessaires |
| La modification du modรจle de donnรฉes d'un microservice n'affecte pas les autres microservices. | Le changement de modรจle de donnรฉes affecte l'ensemble de la base de donnรฉes |
| Interagit avec d'autres microservices en utilisant des interfaces bien dรฉfinies | N'est pas applicable |
| Les microservices fonctionnent sur le principe qui se concentre sur les produits et non sur les projets | Mettre l'accent sur l'ensemble du projet |
| Aucune dรฉpendance croisรฉe entre les bases de code. Vous pouvez utiliser diffรฉrentes technologies pour diffรฉrents microservices. | Une fonction ou un programme dรฉpend des autres. |
Dรฉfis des microservices
- Les MicroServices s'appuient les uns sur les autres et devront communiquer entre eux.
- Par rapport aux systรจmes monolithiques, il existe davantage de services ร surveiller, dรฉveloppรฉs ร l'aide de diffรฉrents langages de programmation.
- Comme il sโagit dโun systรจme distribuรฉ, il sโagit dโun modรจle intrinsรจquement complexe.
- Diffรฉrents services auront leur mรฉcanisme distinct, ce qui entraรฎnera une grande quantitรฉ de mรฉmoire pour des donnรฉes non structurรฉes.
- Une gestion efficace et un travail dโรฉquipe nรฉcessaires pour รฉviter les problรจmes en cascade
- Reproduire un problรจme sera une tรขche difficile lorsqu'il disparaรฎtra dans une seule version et reviendra dans la derniรจre version.
- Le dรฉploiement indรฉpendant est compliquรฉ avec les microservices.
- Lโarchitecture de microservices entraรฎne de nombreuses opรฉrations supplรฉmentaires.
- Il est difficile de gรฉrer les applications lorsque de nouveaux services sont ajoutรฉs au systรจme
- Un large รฉventail de professionnels qualifiรฉs est nรฉcessaire pour prendre en charge des microservices distribuรฉs de maniรจre hรฉtรฉrogรจne
- Les microservices sont coรปteux, car vous devez conserver diffรฉrents espaces serveur pour diffรฉrentes tรขches commerciales.
SOA contre microservices
Les services SOA sont gรฉrรฉs dans l'organisation par un registre qui fait office de rรฉpertoire. Les applications doivent rechercher les services dans le registre et appeler le service.
Dans un autre monde, SOA C'est comme un orchestre oรน chaque artiste joue avec son instrument tandis que le directeur musical donne des instructions ร tous.
D'un autre cรดtรฉ, les microservices sont une forme d'architecture orientรฉe services dans laquelle les applications sont construites comme un ensemble de diffรฉrents services plus petits au lieu d'un seul logiciel ou application.
Les microservices sont comme une troupe oรน chaque danseur est indรฉpendant et sait ce qu'il doit faire. Ainsi, sโils ratent quelques รฉtapes, ils savent comment revenir sur le bon enchaรฎnement. Maintenant, dans ce didacticiel sur l'architecture des microservices, dรฉcouvrons la diffรฉrence entre SOA et microservices.
Voici une comparaison dรฉtaillรฉe entre SOA et Microservices
| Paramรจtres | SOA | Microservices |
|---|---|---|
| Type de conception | Dans SOA, les composants logiciels sont exposรฉs au monde extรฉrieur pour รชtre utilisรฉs sous forme de services. | Micro Service fait partie de SOA. Il s'agit d'une implรฉmentation de SOA. |
| Dรฉpendance | Les unitรฉs commerciales sont dรฉpendantes. | Ils sont indรฉpendants les uns des autres. |
| Taille du logiciel | La taille du logiciel est plus grande que celle de n'importe quel logiciel conventionnel | La taille du logiciel est toujours petite dans les microservices |
| Pile technologique | La pile technologique est infรฉrieure ร celle du Microservice. | La pile technologique des microservices pourrait รชtre trรจs volumineuse |
| Nature de la demande | De nature monolithique | Full stack dans la nature |
| Indรฉpendant et concentrรฉ | Les applications SOA sont conรงues pour effectuer plusieurs tรขches mรฉtier. | Ils sont conรงus pour effectuer une seule tรขche commerciale. |
| Dรฉploiement | Le processus de dรฉploiement prend du temps. | Le dรฉploiement est simple et prend moins de temps. |
| Coรปt โ efficacitรฉ | Plus rentable. | Less rentable. |
| รvolutivitรฉ | Less par rapport aux microservices. | Trรจs รฉvolutif. |
| Logique mรฉtier | Les composants de logique mรฉtier sont stockรฉs dans un domaine de service unique. Protocoles filaires simples (HTTP avec XML JSON) L'API est pilotรฉe par des SDK/clients. | La logique mรฉtier peut vivre ร travers les domaines du Service Bus de l'entreprise, comme les couches entre les services Middleware |
Outils de microservices
1) Wiremock : tester les microservices
WireMock est une bibliothรจque flexible pour stubbing et moquer les services Web. Il peut configurer la rรฉponse renvoyรฉe par l'API HTTP lorsqu'elle reรงoit une requรชte spรฉcifique. Il est รฉgalement utilisรฉ pour tester les microservices.
Lien de tรฉlรฉchargement:http://wiremock.org/
2) Docker
Docker est un projet open source qui nous permet de crรฉer, dรฉployer et exรฉcuter des applications ร l'aide de conteneurs. En utilisant ces conteneurs, les dรฉveloppeurs peuvent exรฉcuter une application comme un seul package. Il vous permet d'expรฉdier des bibliothรจques et autres dรฉpendances dans un seul package.
Lien de tรฉlรฉchargement:https://www.docker.com/
3) Hystrix
Hystrix est une bibliothรจque Java de tolรฉrance aux pannes. Cet outil est conรงu pour sรฉparer les points d'accรจs aux services, systรจmes et bibliothรจques tierces distants dans un environnement distribuรฉ comme les microservices. Il amรฉliore le systรจme global en isolant les services dรฉfaillants et en empรชchant l'effet en cascade des pannes.
Lien de tรฉlรฉchargement:https://github.com/Netflix/Hystrix
Meilleures pratiques de microservices Architecture
- Magasin de donnรฉes sรฉparรฉ pour chaque microservice
- Conservez un code dโun niveau de maturitรฉ similaire.
- Construction sรฉparรฉe pour chaque service Micro.
- Traitez toujours โ grave comme un apatride.
Rรฉsumรฉ
- Les microservices sont un modรจle d'architecture orientรฉ services dans lequel les applications sont construites comme un ensemble de diverses plus petites unitรฉs de service indรฉpendantes.
- Microservice Architecture est un style de dรฉveloppement architectural qui permet de construire une application comme une collection de petits services autonomes dรฉveloppรฉs pour un domaine d'activitรฉ.
- L'architecture monolithique est comme un grand conteneur dans lequel tous les composants logiciels d'une application sont regroupรฉs dans un seul package.
- Dans un microservice, chaque unitรฉ de l'application entiรจre doit รชtre la plus petite et doit รชtre capable d'atteindre un objectif commercial spรฉcifique.
- Dans l'architecture monolithique, une base de code volumineuse peut ralentir l'ensemble du processus de dรฉveloppement. Les nouvelles versions peuvent prendre des mois. La maintenance du code est difficile
- Deux types de microservices sont 1) sans รฉtat 2) avec รฉtat
- Microservices dans Java dรฉpendent les uns des autres et ils devront communiquer les uns avec les autres. Vous aide ร mettre l'accent sur une fonctionnalitรฉ spรฉcifique et les besoins de l'entreprise
- L'architecture orientรฉe services, connue sous le nom de SOA, est une รฉvolution de l'informatique distribuรฉe basรฉe sur le modรจle de conception de demande ou de rรฉponse pour les applications synchrones et asynchrones.
- Dans SOA, les composants logiciels sont exposรฉs au monde extรฉrieur pour รชtre utilisรฉs sous forme de services, tandis que Micro Service fait partie de SOA. C'est une implรฉmentation de SOA
- Wiremock, Docker et Hystrix sont des outils de microservices populaires
