Architecture de microservices - Apprendre, créer et déployer des microservices



Ce blog explique en détail l'architecture des microservices. Il comprend également les avantages et les inconvénients et une étude de cas qui explique l'architecture d'UBER.

Architecture des microservices:

De mon , vous devez avoir une compréhension de base de l'architecture des microservices.Mais, être un professionnel avec nécessitera plus que les bases. Dans ce blog, vous approfondirez les concepts architecturaux et les implémenterez à l'aide d'une étude de cas UBER.

Dans ce blog, vous découvrirez les éléments suivants:





  • Définition de l'architecture des microservices
  • Concepts clés de l'architecture de microservices
  • Avantages et inconvénients de l'architecture de microservices
  • UBER - Étude de cas

Vous pouvez vous référer au , pour comprendre les principes de base et les avantages des microservices.

Ce ne sera juste que si je vous donne la définition des microservices.



obtenir la longueur du tableau js

Définition des microservices

En tant que tel, il n'y a pas de définition appropriée de Microservices aka Microservice Architecture, mais vous pouvez dire qu'il s'agit d'un cadre qui se compose de petits services déployables individuellement effectuant différentes opérations.

Les microservices se concentrent sur un domaine métier unique qui peut être implémenté en tant que services déployables totalement indépendants et les implémenter sur différentes piles technologiques.

Différences entre l



Figure 1: Différence entre l'architecture monolithique et microservice - Architecture microservice

Reportez-vous au diagramme ci-dessus pour comprendre la différence entre l'architecture monolithique et microservice.Pour une meilleure compréhension des différences entre les deux architectures, vous pouvez vous référer à mon blog précédent

Pour vous permettre de mieux comprendre, laissez-moi vous présenter quelques concepts clés de l'architecture des microservices.

Concepts clés de l'architecture de microservices

Avant de commencer à créer vos propres applications à l'aide de microservices, vous devez être clair sur la portée et les fonctionnalités de votre application.

Voici quelques directives à suivre lors de la discussion des microservices.

Directives lors de la conception de microservices

  • En tant que développeur, lorsque vous décidez de créer une application, séparez les domaines et soyez clair avec les fonctionnalités.
  • Chaque microservice que vous concevez doit se concentrer uniquement sur un service de l'application.
  • Assurez-vous que vous avez conçu l'application de telle sorte que chaque service puisse être déployé individuellement.
  • Assurez-vous que la communication entre les microservices s'effectue via un serveur sans état.
  • Chaque service peut être transformé en services plus petits, ayant leurs propres microservices.

Maintenant que vous avez lu les consignes de base lors de la conception de microservices, comprenons l'architecture des microservices.

Comment fonctionne l'architecture de microservice?

Une architecture de microservice (MSA) typique doit comprendre les composants suivants:

  1. Clients
  2. Fournisseurs d'identité
  3. API de passerelle
  4. Formats de messagerie
  5. Bases de données
  6. Contenu statique
  7. La gestion
  8. Découverte de service

Reportez-vous au schéma ci-dessous.

Figure 2: Architecture des microservices - Architecture des microservices

Je sais que l'architecture semble un peu complexe, mais laissezjesimplifiez-le pour vous.

1. Clients

L'architecture commence avec différents types de clients, de différents appareils essayant d'exécuter diverses capacités de gestion telles que la recherche, la construction, la configuration, etc.

2. Fournisseurs d'identité

Ces demandes des clients sont ensuite transmises aux fournisseurs d'identité qui authentifient les demandes des clients et communiquent les demandes à API Gateway. Les demandes sont ensuite communiquées aux services internes via une passerelle API bien définie.

3. Passerelle API

Étant donné que les clients n'appellent pas directement les services, API Gateway sert de point d'entrée pour que les clients transmettent les demandes aux microservices appropriés.

Les avantages de l'utilisation d'une passerelle API incluent:

  • Tous les services peuvent être mis à jour à l'insu des clients.
  • Les services peuvent également utiliser des protocoles de messagerie qui ne sont pas compatibles avec le Web.
  • La passerelle API peut exécuter des fonctions transversales telles que la sécurité, l'équilibrage de charge, etc.

Après réception des demandes des clients, l'architecture interne est constituée de microservices qui communiquent entre eux via des messages pour traiter les demandes des clients.

4. Formats de messagerie

Il existe deux types de messages par lesquels ils communiquent:

  • Messages synchrones: Dans la situation où les clients attendent les réponses d'un service, les microservices ont généralement tendance à utiliser REST (transfert d'état de représentation) car il repose sur un état sans état, client-serveur et le Protocole HTTP . Ce protocole est utilisé car il s'agit d'un environnement distribué, chaque fonctionnalité est représentée avec une ressource pour effectuer des opérations
  • Messages asynchrones: Dans la situation où les clients n'attendent pas les réponses d'un service, les microservices ont généralement tendance à utiliser des protocoles tels que AMQP, STOMP, MQTT . Ces protocoles sont utilisés dans ce type de communication car la nature des messages est définie et ces messages doivent être interopérables entre les implémentations.

La question suivante qui peut vous venir à l'esprit est de savoir comment les applications utilisant des microservices gèrent leurs données?

5. Traitement des données

Eh bien, chaque microservice possède une base de données privée pour capturer leurs données et implémenter les fonctionnalités commerciales respectives.En outre, les bases de données des microservices sont mises à jour uniquement via leur API de service. Reportez-vous au schéma ci-dessous:

Figure 3: Représentation des microservices traitant des données - Architecture des microservices

Les services fournis par Microservices sont transférés vers tout service distant qui prend en charge la communication inter-processus pour différentes piles technologiques.

6. Contenu statique

Une fois que les microservices ont communiqué en eux-mêmes, ils déploient le contenu statique sur un service de stockage basé sur le cloud qui peut les fournir directement aux clients via Réseaux de diffusion de contenu (CDN) .

Outre les composants ci-dessus, d'autres composants apparaissent dans une architecture de microservices typique:

7. Gestion

Ce composant est chargé d'équilibrer les services sur les nœuds et d'identifier les pannes.

8. Découverte des services

est a un java

Agit comme un guide pour les microservices pour trouver l'itinéraire de communication entre eux car il maintient une liste de services sur lesquels les nœuds sont situés.

test sur plusieurs navigateurs utilisant du sélénium

Abonnez-vous à notre chaîne YouTube pour obtenir de nouvelles mises à jour ..!

Examinons maintenant les avantages et les inconvénients de cette architecture pour mieux comprendre quand utiliser cette architecture.

Avantages et inconvénients de l'architecture de microservices

Reportez-vous au tableau ci-dessous.

Avantages de l'architecture de microservices Inconvénients du microservice Architecture
Liberté d'utiliser différentes technologiesAugmente les défis de dépannage
Chaque microservice se concentre sur une capacité métier uniqueAugmente le délai dû aux appels à distance
Prend en charge les unités déployables individuellesAugmentation des efforts de configuration et autres opérations
Permet des versions logicielles fréquentesDifficile de maintenir la sécurité des transactions
Assure la sécurité de chaque serviceDifficile de suivre les données à travers différentes limites de service
Plusieurs services sont développés et déployés en parallèleDifficile de déplacer le code entre les services

Apprenons-en davantage sur les microservices en comparant l’architecture précédente d’UBER à l’actuelle.

ÉTUDE DE CAS UBER

L'architecture précédente d'UBER

Comme de nombreuses startups, UBER a commencé son voyage avec une architecture monolithique construite pour une seule offre dans une seule ville. Avoir une base de code semblait nettoyé à ce moment-là et résolvait les problèmes de base d’UBER. Cependant, comme UBER a commencé à se développer dans le monde entier, il a été confronté à divers problèmes en termes d'évolutivité et d'intégration continue.

Figure 4: Architecture monolithique d'UBER - Architecture de microservices

Le diagramme ci-dessus illustre l'architecture précédente d'UBER.

  • Une API REST est présente avec laquelle le passager et le conducteur se connectent.
  • Trois adaptateurs différents sont utilisés avec l'API en leur sein, pour effectuer des actions telles que la facturation, les paiements, l'envoi d'e-mails / messages que nous voyons lorsque nous réservons un taxi.
  • Une base de données MySQL pour stocker toutes leurs données.

Donc, si vous remarquez ici, toutes les fonctionnalités telles que la gestion des passagers, la facturation, les fonctions de notification, les paiements, la gestion des voyages et la gestion des chauffeurs ont été composées dans un seul cadre.

Énoncé du problème

Alors que UBER a commencé à se développer dans le monde entier, ce type de cadre a présenté divers défis. Voici quelques-uns des principaux défis

  • Toutes les fonctionnalités ont dû être reconstruites, déployées et testées encore et encore pour mettre à jour une seule fonctionnalité.
  • La correction des bogues est devenue extrêmement difficile dans un référentiel unique car les développeurs devaient changer le code encore et encore.
  • La mise à l'échelle des fonctionnalités en même temps que l'introduction de nouvelles fonctionnalités dans le monde entier était assez difficile à gérer ensemble.

Solution

Pour éviter de tels problèmes, UBER a décidé de changer son architecture et de suivre les autres sociétés en hyper-croissance comme Amazon, Netflix, Twitter et bien d'autres. Ainsi, UBER a décidé de diviser son architecture monolithique en plusieurs bases de code pour former une architecture de microservices.

Reportez-vous au diagramme ci-dessous pour examiner l'architecture des microservices d'UBER.

Figure 5: Architecture de microservices d'UBER - Architecture de microservices

  • Le changement majeur que nous observons ici est l'introduction d'API Gateway à travers laquelle tous les conducteurs et passagers sont connectés. Depuis l'API Gateway, tous les points internes sont connectés tels que la gestion des passagers, la gestion des chauffeurs, la gestion des trajets et autres.
  • Les unités sont des unités déployables distinctes et individuelles exécutant des fonctionnalités distinctes.
    • Par exemple: si vous souhaitez modifier quoi que ce soit dans les microservices de facturation, il vous suffit de déployer uniquement les microservices de facturation et vous n'avez pas à déployer les autres.
  • Toutes les fonctionnalités étaient désormais mises à l'échelle individuellement, c'est-à-dire que l'interdépendance entre chaque fonctionnalité a été supprimée.
    • Par exemple, nous savons tous que le nombre de personnes qui recherchent des taxis est plus comparativement que les personnes qui réservent réellement un taxi et effectuent des paiements. Cela nous permet de déduire que le nombre de processus travaillant sur le microservice de gestion des passagers est plus que le nombre de processus travaillant sur les paiements.

Dans cefaçon, UBER a bénéficié du déplacementsesarchitecture du monolithique aux microservices.

J'espère que vous avez apprécié la lecture de cet article sur l'architecture des microservices.Je proposerai plus de blogs, qui contiendront également des informations pratiques.
Vous souhaitez en savoir plus sur les microservices?

Si vous souhaitez apprendre les microservices et créer vos propres applications, consultez notre qui vient avec une formation en direct animée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre les microservices en profondeur et vous aidera à maîtriser le sujet.

Vous avez une question pour nous? Veuillez le mentionner dans la section des commentaires de ' Architecture de microservice »Et je vous répondrai.