Vous êtes ici > Nouvelles

Nouvelles

Pourquoi les applications d'entreprise ont besoin d'une architecture de maillage de service

Date:2021-02-10Chaud:323

Alors que les entreprises se déplacent de plus en plus d'une architecture monolithique à une architecture de microservices, les équipes informatiques sont confrontées au problème d'orchestrer efficacement ces microservices. Lorsque nous avons une seule application créée avec quelques services conteneurisés différents, la communication entre eux peut être facilement gérée. Cependant, les applications d'entreprise avec 100 ou 1000 de microservices différents ont besoin d'une meilleure solution pour l'équilibrage de charge, la surveillance, le routage du trafic et la sécurité.

Entrez dans le serviceArchitecture maille.

Architecture de maillage de service

Un maillage de service est une couche d'infrastructure qui gère la communication service à service et fournit un moyen de router, de surveiller et de sécuriser dynamiquement les applications basées sur les microservices.

Auparavant, la logique régissant la communication interservices était codée dans chaque microservice. Mais ce n'est pas une option réalisable lorsqu'il s'agit d'un grand volume de microservices ou de mise à l'échelle d'applications en ajoutant de nouveaux services.

La solution est d'avoir des mandataires qui gèrent la communication de service à service, fonctionnant à côté de chaque microservice plutôt qu'à l'intérieur de celui-ci. Ceux-ci sont également connus sous le nom de proxys «side-car» et forment ensemble l'architecture maillée abstraite qui gère la communication de microservices.

Pourquoi est-ce nécessaire?

L'objectif des microservices était de créer des applications en tant que collection de services indépendants qui peuvent essentiellement échouer sans provoquer de panne à l'échelle du système. Dans la pratique, cependant, la plupart des applications basées sur les microservices ont commencé à fonctionner avec une communication directe entre les services. À mesure que la complexité des applications et le nombre de microservices augmentaient, cela créait une plus grande interdépendance entre les services, réduisant ainsi l'agilité et la résilience du système.

Et par conséquent, les applications d'entreprise complexes avec un grand nombre de microservices ont besoin d'une architecture de maillage de service.

N'est-ce pas ce que les API ont fait?

Oui, les API remplissent une fonction similaire à un maillage de service, c'est-à-dire Régissent le flux d'informations. La principale différence réside dans le type de communication qu'ils gouvernent.

Les passerelles API gèrent la communication entre une application et d'autres au sein et à l'extérieur de l'architecture d'entreprise.Il fournit un point d'entrée unique dans une application, pour les demandes de tous les clients externes, et gère l'authentification de l'utilisateur, le routage, la surveillance et le traitement des erreurs. Il fait également abstraction de la complexité sous-jacente d'une application, avec ses microservices, auprès de clients externes.

Une architecture de maillage de service gère en revanche la communication entre les microservices au sein d'une application.

Tous les sidecars proxy qui composent le maillage de service sont répertoriés dans un registre de services. Chaque microservice qui souhaite demander des informations (microservice client) verra son side-car proxy rechercher le registre pour trouver les proxys disponibles associés au microservice cible. Il utilise ensuite l'algorithme d'équilibrage de charge défini pour diriger sa requête vers le bon proxy.

Quels problèmes un maillage de service résout-il?

Le maillage de service résout principalement les préoccupations concernant une interdépendance croissante qui se glisse dans les applications basées sur les microservices à mesure qu'elles prennent de la complexité. Voici comment:

Déploiement de plusieurs versions de microservice simultanément

Les sorties canary, ou l'introduction d'une nouvelle version d'un microservice à un nombre ou à un type de demandes de sélection, est un moyen standard de faciliter les ajouts de nouvelles fonctionnalités. Cependant, le routage efficace des demandes entre les anciennes et les nouvelles versions peut être difficile lorsque la logique est codée dans chaque service, car elles ont tendance à avoir des interdépendances sur d'autres services. De même, les versions de microservice de test A/B nécessitent également des capacités de routage dynamique qui sont mieux fournies par un maillage de service.

L'architecture de maillage de service a les règles de routage et peut prendre la décision d'orienter les requêtes de service source vers la bonne version des services cibles. Cette couche de communication découplée réduit la quantité de code écrit pour chaque microservice, tout en gérant mieux la logique de routage interservices.

Visibilité détaillée dans la communication interservices

Dans une architecture de microservices complexe, il peut être difficile de localiser l'emplacement exact d'un défaut. Mais une fois que toutes les communications sont acheminées via un maillage de service, il existe un moyen de collecter des journaux et des métriques de performance sur tous les aspects des microservices. Cela permet de générer plus facilement des rapports détaillés et de tracer facilement le point de défaillance.

Les journaux du maillage de service peuvent également être utilisés pour créer des repères standardisés pour l'application. Par exemple, combien de temps attendre avant de réessayer un service qui a échoué. Une fois que ces règles sont codées dans le maillage de service, le fonctionnement des microservices devient optimisé car le système n'est pas surchargé de pings inutiles à un service en aval défaillant avant la période de délai requis.

Test de microservices

Il est essentiel de tester chaque microservice de manière isolée pour garantir la résilience des applications. Il existe également des cas où vous devez tester le comportement du service lorsque des défauts sont introduits dans les services en aval. Et c'est difficile et risqué à faire si nous forçons ces défauts à se produire dans les services.

Le maillage de service est le moyen idéal pour simuler ces défauts dans les systèmes et étudier la réponse associée.

Tolérance aux défauts

La résilience est l'une des principales raisons pour lesquelles l'architecture des microservices est préférée, et des éléments tels que les disjoncteurs, l'équilibrage de charge, la limitation de vitesse et les délais morts sont ce qui rend cela possible. Ces règles sont généralement codées dans chaque microservice, augmentant ainsi la complexité du système, en plus de prendre du temps à créer.

Encore une fois, le maillage de service peut être utilisé pour améliorer la tolérance aux pannes en enlevant ces fonctionnalités des microservices et en les ajoutant au maillage. Ceux-ci peuvent être implémentés via un ensemble de règles qui régiront tous les microservices au sein de l'application, sans encombrer réellement l'implémentation du microservice.

C'était donc une analyse rapide de l'architecture de maillage de service et pourquoi elle devient une exigence d'infrastructure cruciale pour les applications d'entreprise. Les blogs suivants exploreront en profondeur la mise en œuvre du maillage de service et évalueront les différents outils tels qu'Istio, Linkerd et plus pour la mise en œuvre de l'architecture du maillage de service.

 

 

Précédent:Maille métallique perforée décorative

Prochaine:Revêtement de maille en métal expansé en aluminium

Articles connexes

leave your message