rayon de miel sponsorise la couverture par The New Stack de Kubecon + CloudNativeCon North America 2020.

Au fur et à mesure que de plus en plus d’entreprises mettent en œuvre des maillages de services, elles découvrent ce qui fonctionne et ce qui demande plus de travail, et elles développent de nouvelles pratiques de gestion basées sur ces connaissances. Certaines bonnes pratiques ont été détaillées au cours du dernier mois au cours du mois KubeCon + CloudNativeCon.

«Il y a beaucoup à dire sur chacun de ces maillages de services et leur fonctionnement: leur architecture, pourquoi ils ont été créés, sur quoi ils se concentrent, ce qu’ils font lorsqu’ils sont créés et pourquoi certains d’entre eux ne sont plus là, et pourquoi nous voyons toujours plus  » Lee Calcote, Fondateur de Couche5expliqué lors de sa conversation avec Kush Trivedi, un responsable Layer5 intitulé « Spécifications de Service Mesh et pourquoi elles sont importantes pour votre déploiement. »

Le maillage de services est de plus en plus considéré comme une condition préalable à la gestion des microservices dans les environnements Kubernetes et fournit un plan de contrôle centralisé pour la gestion des accès, des tests, des métriques et d’autres fonctions des microservices. Un tiers des personnes interrogées Le nouveau sondage de pile nos lecteurs ont déclaré que leurs organisations utilisaient déjà le service mesh. Parmi les nombreuses options de maillage de service disponibles; Envoyé, Égal, La gauche et pareillement ne sont que quelques-uns proposés.

Lee Calcote, fondateur de Layer5, lors de son intervention «Spécifications de service Mesh et pourquoi elles sont importantes pour votre déploiement».

Comment éviter les problèmes de maillage de service

Plateforme d’autopartage et concurrent Uber Ascenseur créé et open source le Envoyé Plate-forme il y a quelques années pour obtenir un meilleur contrôle et une meilleure gestion des services et conteneurs s’exécutant sur des clusters Kubernetes. L’envoyé est ensuite devenu un niveau de contrôle de premier plan composant requis d’un réseau de service.

Pendant leur conversation « Fourniture sécurisée d’une configuration Enkoy YAML avec une ligne 100K pour la production,  » Lisa Lu, chercheur à la Stanford Law School et ancien ingénieur logiciel Lyft, et Jyoti Mahapatra, un ingénieur logiciel de l’équipe réseau Lyft, a expliqué comment éviter les problèmes de configuration courants lors de la mise en œuvre et de l’utilisation d’Envoy. Ils ont également discuté de la manière dont certains des garde-corps intégrés à Envoy peuvent aider à réduire les problèmes de version du logiciel et les performances.

Compte tenu des grandes et vastes infrastructures cloud natives de Lyft, Lu et Mahapatra avaient des connaissances de première main sur la gestion d’Envoy à grande échelle.

«Alors que le nombre de services et d’itinéraires que Lyft a sur certains side-cars a augmenté, nous avons des configurations avec plus de 100 000 lignes YAML, ce qui rend la maintenance et les modifications extrêmement complexes et risquées», a déclaré Lu.

Lu et Mahapatra ont décrit les meilleures pratiques pour automatiser les processus de test et de validation des conflits « afin que vos propriétaires de services puissent effectuer des itérations rapidement et indépendamment », a déclaré Lu. « Cela empêche également vos envoyés d’être inondés de révisions de code », a-t-elle déclaré.

L’erreur humaine est une cause majeure de goulots d’étranglement et de défaillances dans les maillages de service. Si un utilisateur néglige un service ou un conflit de routage avec Envoy qui, comme Lu l’a décrit, peut «faire dérailler» un démarrage de service ou un «mépris», Lu a montré comment il était possible de valider la configuration d’amorçage de l’Envoy pour ce faire. Éviter le problème. L’un des correctifs consiste à exécuter le binaire Envoy en mode de validation, a déclaré Lu. Le processus « prend votre configuration binaire et bootstrap et essaie de démarrer Envoy » et « il passera par le processus d’initialisation du serveur autant que possible et s’il n’y a pas d’erreurs, il se terminera avec succès ». Dit Lu.

Un outil de vérification de charge de conflit – un binaire autonome qui peut être utilisé pour n’importe quelle configuration d’amorçage dans un cluster Kubernetes géré par Envoy – vérifie toutes les valeurs et tous les champs définis par Proto et le JSON Les schémas sont valides. Lu dit que les deux vérifications sont effectuées pour toutes les demandes d’extraction et l’intégration continue (CI).

Ces outils «rendent la vérification de ces changements beaucoup plus facile parce que vous, le réviseur, savez déjà que la configuration est une configuration Envoy valide» pour «vous assurer que le changement fait ce qu’il devrait», a déclaré Lu.

Le maillage de service a été comparé à l’inverse du DNS car DNS fournit une inspection verticale du trafic réseau tandis que le maillage de service s’étend latéralement pour assurer la continuité entre les différents services et side-cars au sein d’un cluster.

Mahapatra en a décrit un Vérification du routeur Envoy Outil qui a été développé pour éviter les dysfonctionnements liés au routeur ou même les pannes dans les cas extrêmes. Par exemple, dans un « scénario de changement de haute rivière, un itinéraire qui est incorrectement en haut de la liste … peut perturber tout le trafic », a déclaré Mahapatra, par exemple. La fonction de vérification du routeur permet de minimiser les risques en permettant à l’utilisateur d’exécuter des tests unitaires, d’examiner les restrictions de champ, d’ajouter des restrictions de couverture de code et de tester des configurations de routage complexes en fonction des correspondances d’en-tête, de l’exécution et des conflits de cluster.

Les contributions de Lyft à Envoy continuent souvent, sinon principalement, de fournir des solutions aux problèmes auxquels les développeurs de Lyft sont confrontés. C’était la motivation derrière le développement de l’outil de vérification du routeur pour Envoy, qui n’était pas toujours en mesure de calculer la couverture ou de fournir un support de test pour les vallées et les indicateurs d’exécution, a déclaré Lu.

Pendant ce temps, « il y a encore un certain nombre de fonctionnalités que les utilisateurs veulent », a déclaré Lu. « Il y a donc certainement beaucoup de place pour améliorer le comportement qui peut être testé avec l’outil de vérification du routeur », a déclaré Lu.

Maille de service pour la construction d’une chaîne d’épicerie

Contour d’une épicerie de San Antonio HEB Après la pandémie de formation Divi qui a commencé l’année dernière, la demande de ramassages d’épicerie en bord de route a fortement augmenté. Alors que la chaîne de vente au détail avait déjà développé une application que les clients pouvaient utiliser pour commander en ligne puis faire leurs courses, l’explosion de la demande suggérait qu’une plate-forme logicielle monolithique pour gérer le service était absolument inadéquate.

«Au fur et à mesure que nous développions notre activité, nous nous sommes heurtés à des défis: nous avons eu du mal à livrer rapidement et il y avait de nombreux risques associés au changement et, en fin de compte, aux problèmes de fiabilité. Justin Turner, Senior Engineering Manager chez HEB, a déclaré. «Cela nous a amenés dans notre parcours de modernisation pour nous lancer dans les microservices.»

Pendant leur conversation « Comment HEB Curbside a adopté Linkerd pendant une pandémie», Turner et ingénieur logiciel senior HEB Garrett Griffin Décrit comment l’équipe DevOps a choisi Linkerd pour prendre en charge l’observabilité et d’autres besoins dans l’exécution et le déploiement d’applications et de mises à jour pour l’application de collecte d’épicerie en bordure de route.

«L’hypothèse était qu’un [service mesh] Cela nous aiderait à résoudre certains des défis que nous avons rencontrés dans la construction de nos microservices et des muscles opérationnels qui les soutiennent », a déclaré Turner.

Pour les tests, l’équipe DevOps a utilisé Linkerd pour vérifier ce qui se passerait si les pods étaient étendus à des centaines d’instances pour voir si le proxy était toujours en cours d’injection. « Pendant que je fais ça [test]En fin de compte, nous avons découvert un problème de connexion qui n’avait rien à voir avec Linkerd », a déclaré Griffin. « Cependant, nous avons pu le corriger et passer à autre chose. »

Afin de rechercher des problèmes potentiels de distribution du trafic lors de la mise à l’échelle des pods de service, Griffin a déclaré que l’équipe DevOps a été en mesure de déterminer grâce à des tests qu’avec Linkerd et d’autres outils, il est possible, par exemple, de contrôler le trafic sans augmenter les perturbations.

« Nos grandes craintes concernaient l’injecteur proxy et le plan de contrôle, » mais au cas où « ils ne pourraient pas évoluer ou déployer de nouvelles versions, ils fonctionnaient toujours », a déclaré Griffin. « Cela a apporté un soulagement car nous savions que nous aurions le temps de résoudre le problème si cela se produisait en production. »

L’interopérabilité est essentielle lorsque les réseaux de services vont et viennent

Les organisations disposeront probablement d’au moins plus d’une couche de service API et d’un maillage de services pour leurs clusters. Pour cette raison, l’interopérabilité et donc les spécifications sont également d’une importance cruciale pour les niveaux de contrôle. Par exemple, lors de son discours – «Spécifications du maillage de service et pourquoi elles sont importantes pour votre déploiement» – Calcote a demandé de manière rhétorique:

« Combien de spécifications, combien de normes sont venues à la rescousse, pour ainsi dire, pour comprendre et travailler avec les différents maillages de service? » Dit Calcote.

Calcote a décrit le lors de sa conférence Interface de maillage de service (SMI), les Spécification de performance de maillage de service (SMPS) et Interopérabilité de maillage de services multi-fournisseurs (Hamlet) Caractéristiques.

Un service mesh peut être utilisé pour tester les performances du routeur, la latence du service et d’autres variables. Cependant, il peut être difficile de déterminer les performances du réseau de service Apple à Apple. Lors de l’étude de «résultats publiés à partir de certains des maillages de service [from providers] Cela publie des résultats sur les performances. Vous constaterez que vous utilisez probablement un environnement qui n’est pas exactement le vôtre », a déclaré Calcote. «Ils utilisent également diverses statistiques et mesures pour mesurer [their service meshes] … Et ça n’aide pas. « 

Service Mesh Performance (SMP) a été créé pour trouver un moyen de comparer les performances de différents services. «Le SMP a été développé en combinaison avec le travail avec certains de ces différents mainteneurs de maillage de service et en créant une manière standard d’articuler les performances d’un maillage», a déclaré Calcote.

Outre le maillage de service lui-même, les variables considérées incluent le nombre de clusters, les charges de travail, les types de nœuds, la configuration du plan de contrôle et l’utilisation des bibliothèques clientes, qui ont tous un impact sur les performances.

«Ce qui coûte plus cher, ce qui est plus efficace et ce qui est plus puissant: ce sont toutes des questions ouvertes auxquelles SMP aide à répondre dans votre environnement», a déclaré Calcote.

KubeCon + CloudNativeCon est le sponsor de The New Stack.





Source link

Recent Posts