Infrastructure de communication Service MeshService Mesh communication infrastructure

Tout au long de ce chapitre, nous avons exploré les défis liés à la communication des microservices.Throughout this chapter, we've explored the challenges of microservice communication. Nous avons dit que les équipes de développement doivent être sensibles à la façon dont les services principaux communiquent entre eux.We said that development teams need to be sensitive to how back-end services communicate with each other. Dans l’idéal, la communication entre les services est moins efficace.Ideally, the less inter-service communication, the better. Toutefois, l’évitement n’est pas toujours possible, car les services principaux s’appuient souvent les uns sur les autres pour effectuer des opérations.However, avoidance isn't always possible as back-end services often rely on one another to complete operations.

Nous avons exploré différentes approches pour implémenter une communication HTTP synchrone et une messagerie asynchrone.We explored different approaches for implementing synchronous HTTP communication and asynchronous messaging. Dans chacun des cas, le développeur est chargé d’implémenter le code de communication.In each of the cases, the developer is burdened with implementing communication code. Le code de communication est complexe et fastidieux.Communication code is complex and time intensive. Des décisions incorrectes peuvent entraîner des problèmes de performances significatifs.Incorrect decisions can lead to significant performance issues.

Une approche plus moderne des centres de communication des microservices autour d’une technologie nouvelle et en constante évolution, intitulée maille du service.A more modern approach to microservice communication centers around a new and rapidly evolving technology entitled Service Mesh. Une maille de service est une couche d’infrastructure configurable avec des fonctionnalités intégrées pour gérer la communication entre les services, la résilience et de nombreux problèmes transversaux.A service mesh is a configurable infrastructure layer with built-in capabilities to handle service-to-service communication, resiliency, and many cross-cutting concerns. Il déplace la responsabilité de ces problèmes sur les microservices et dans la couche de maillage de service.It moves the responsibility for these concerns out of the microservices and into service mesh layer. La communication est extraite de vos microservices.Communication is abstracted away from your microservices.

Un composant clé d’une maille de service est un proxy.A key component of a service mesh is a proxy. Dans une application Cloud native, une instance d’un proxy est généralement colocalisée avec chaque microservice.In a cloud-native application, an instance of a proxy is typically colocated with each microservice. Bien qu’ils s’exécutent dans des processus distincts, les deux sont étroitement liés et partagent le même cycle de vie.While they execute in separate processes, the two are closely linked and share the same lifecycle. Ce modèle, connu sous le nom de modèle de side-car, est illustré à la figure 4-24.This pattern, known as the Sidecar pattern, and is shown in Figure 4-24.

Maille de service avec une voiture latérale

Figure 4-24.Figure 4-24. Maille de service avec une voiture latéraleService mesh with a side car

Notez dans la figure précédente Comment les messages sont interceptés par un proxy qui s’exécute parallèlement à chaque microservice.Note in the previous figure how messages are intercepted by a proxy that runs alongside each microservice. Chaque proxy peut être configuré avec des règles de trafic spécifiques au microservice.Each proxy can be configured with traffic rules specific to the microservice. Il comprend les messages et peut les acheminer entre vos services et le monde extérieur.It understands messages and can route them across your services and the outside world.

En plus de la gestion de la communication de service à service, la maille de service prend en charge la découverte de service et l’équilibrage de charge.Along with managing service-to-service communication, the Service Mesh provides support for service discovery and load balancing.

Une fois configuré, un maillage de service est très fonctionnel.Once configured, a service mesh is highly functional. La maille récupère un pool d’instances correspondant à partir d’un point de terminaison de découverte de service.The mesh retrieves a corresponding pool of instances from a service discovery endpoint. Il envoie une demande à une instance de service spécifique, en enregistrant la latence et le type de réponse du résultat.It sends a request to a specific service instance, recording the latency and response type of the result. Il choisit l’instance la plus susceptible de retourner une réponse rapide en fonction de différents facteurs, y compris la latence observée pour les demandes récentes.It chooses the instance most likely to return a fast response based on different factors, including the observed latency for recent requests.

Un maillage de service gère le trafic, la communication et les problèmes de mise en réseau au niveau de l’application.A service mesh manages traffic, communication, and networking concerns at the application level. Il comprend les messages et les demandes.It understands messages and requests. Une maille de service s’intègre généralement avec un orchestrateur de conteneur.A service mesh typically integrates with a container orchestrator. Kubernetes prend en charge une architecture extensible dans laquelle un maillage de service peut être ajouté.Kubernetes supports an extensible architecture in which a service mesh can be added.

Dans le chapitre 6, nous explorons en profondeur les technologies de maille de service, y compris une discussion sur son architecture et les implémentations Open source disponibles.In chapter 6, we deep-dive into Service Mesh technologies including a discussion on its architecture and available open-source implementations.

RésuméSummary

Dans ce chapitre, nous avons abordé les modèles de communication natifs dans le Cloud.In this chapter, we discussed cloud-native communication patterns. Nous avons commencé par examiner comment les clients frontaux communiquent avec les microservices back-end.We started by examining how front-end clients communicate with back-end microservices. En cours de route, nous avons parlé des plateformes de passerelle d’API et de la communication en temps réel.Along the way, we talked about API Gateway platforms and real-time communication. Nous avons ensuite vu comment les microservices communiquent avec d’autres services principaux.We then looked at how microservices communicate with other back-end services. Nous avons examiné la communication HTTP synchrone et la messagerie asynchrone entre les services.We looked at both synchronous HTTP communication and asynchronous messaging across services. Nous avons abordé gRPC, une technologie à venir dans le monde Cloud-native.We covered gRPC, an upcoming technology in the cloud-native world. Enfin, nous avons introduit une nouvelle technologie en constante évolution, intitulée Service Mesh, qui permet de rationaliser la communication des microservices.Finally, we introduced a new and rapidly evolving technology entitled Service Mesh that can streamline microservice communication.

Une mise en évidence spéciale s’est produite sur les services Azure gérés qui peuvent aider à implémenter la communication dans les systèmes natifs du Cloud :Special emphasis was on managed Azure services that can help implement communication in cloud-native systems:

Nous allons ensuite passer aux données distribuées dans les systèmes natifs du Cloud et aux avantages et défis qu’il présente.We next move to distributed data in cloud-native systems and the benefits and challenges that it presents.

RéférencesReferences