编程知识 cdmana.com

À quel point est - il difficile de suivre l'ensemble du lien pour les déploiements en amont et en aval, multilingues et multi - Cloud?

Introduction:Le suivi des liens peut couvrir toutes les associations IT Système,Meilleures pratiques pour documenter complètement le comportement de l'utilisateur pour invoquer le chemin et l'état entre les systèmes.Un suivi complet de tous les liens peut apporter trois valeurs fondamentales à l'entreprise:Diagnostic de problème de bout en bout,Cardage intersystème dépendant,Personnaliser la pénétration des étiquettes.

Auteur|Au bout du monde.


Valeur du suivi complet des liens


La valeur du traçage des liens réside dans“Liens”,Utilisateurs finaux、Applications d'arrière - plan、Composants Cloud(Base de données、Messages, etc.)Ensemble, les cartes topologiques des trajectoires qui composent le suivi des liens.Plus la topologie est étendue,Plus le suivi des liens peut être utile.Et le suivi de tous les liens est de couvrir toutes les associations IT Système,Meilleures pratiques pour documenter complètement le comportement de l'utilisateur pour invoquer le chemin et l'état entre les systèmes.


Un suivi complet de tous les liens peut apporter trois valeurs fondamentales à l'entreprise:Diagnostic de problème de bout en bout,Cardage intersystème dépendant,Personnaliser la pénétration des étiquettes.


  • Diagnostic de problème de bout en bout:VIP Le client n'a pas passé de commande,Délai de demande de l'utilisateur de test interne,Problèmes d'expérience pour de nombreux utilisateurs finaux,La traçabilité est due à des exceptions à l'application back - end ou aux composants Cloud.Et le suivi complet des liens est le moyen le plus efficace de résoudre les problèmes de bout en bout,Non..


  • Cardage intersystème dépendant:Nouvelles affaires en ligne,Suppression de l'ancienne entreprise,Déplacement de la salle des machines/Mise à jour du schéma,IT Les dépendances entre les systèmes sont complexes,Déjà au - delà de la capacité de toilettage artificiel,Découverte topologique basée sur le traçage de tous les liens,Rendre les décisions de scénario ci - dessus plus agiles、Crédible.


  • Personnaliser la pénétration des étiquettes:Mesure de la pression de liaison complète,Niveaux de gris au niveau de l'utilisateur,Suivi des commandes,Isolation du débit.Traitement hiérarchique basé sur des balises personnalisées&Association des données,Une écologie florissante de tous les liens est née.Et pourtant,Une fois les données déconnectées、Marque manquante,Cela provoquera également une catastrophe logique imprévisible.


Défis et solutions pour le suivi complet des liens


La valeur du suivi complet du lien est proportionnelle à la couverture,Il en va de même pour ses défis..Afin de maximiser l'intégrité du lien,Qu'il s'agisse d'applications frontales ou de composants Cloud,Que ce soit Java Langue ou Go Langues,Qu'il s'agisse d'un Cloud public ou d'une salle informatique auto - construite,Tous doivent suivre le même ensemble de spécifications de liaison,Et réaliser l'interconnexion des données.Unification de la pile de protocole multilingue、Avant/Après/Nuage(Beaucoup.)Liaison d'extrémité、La fusion de données à travers le cloud est trois défis majeurs pour réaliser le suivi de tous les liens,Comme le montre la figure ci - dessous:


1.png


1、Unification de la pile de protocole multilingue


À l'époque des nuages,Les architectures d'applications multilingues sont de plus en plus courantes,Tirer parti des différentes caractéristiques linguistiques,La tendance est d'obtenir une performance optimale et une expérience R & D.Mais,Les différences de maturité entre les langues,De sorte que le suivi complet des liens ne soit pas entièrement cohérent.La pratique actuelle de l'industrie est la suivante:,Assurez - vous que le format de la couche de protocole d'appel à distance est uniforme,Les applications multilingues implémentent l'interception des appels et la transmission contextuelle à l'interne,Cela garantit que les données de liaison sous - jacentes sont complètes.


Mais,La grande majorité des problèmes en ligne ne peuvent pas être localisés et résolus efficacement par la seule capacité de base du suivi des liens,La complexité du système en ligne détermine un excellent Trace Le produit doit être plus complet、Capacité efficace de diagnostic des données,Comme le diagnostic au niveau du Code、Analyse de la mémoire、Analyse du pool de threads、Statistiques non destructives, etc..Tirer pleinement parti des interfaces de diagnostic disponibles dans différentes langues,La capacité maximale de libérer des produits multilingues est Trace La base pour aller de l'avant.


  • Normalisation des protocoles de transmission:Toutes les applications de liaison complète doivent respecter le même ensemble de normes de transmission de protocole,Assurer une transmission complète du contexte de liaison entre les différentes applications linguistiques,Il n'y a pas de problème de rupture de chaîne ou de contexte manquant.Les principaux protocoles de transparence open source actuels incluent Jaeger、SkyWalking、ZipKin Attendez..


  • Maximiser la capacité de libérer des produits multilingues:Suivi des liens en plus des fonctions de base de la chaîne d'appels,Application dérivée étape par étape/Surveillance du service,Suivi de la pile de méthodes,Analyse des performances.Mais la maturité des différentes langues conduit à des capacités de production très différentes,Par exemple, Java La sonde peut être basée sur JVMTI Réaliser de nombreux diagnostics latéraux de haut niveau.Un excellent système de suivi de tous les liens maximisera le dividende technologique différentiel de chaque langue,Au lieu de poursuivre aveuglément la convergence et la médiocrité. Les étudiants intéressés peuvent lire l'article précédent 《Open Source Self - built/Auto - étude sur la tutelle et la commercialisation Trace,Comment choisir》.


2、Nuages avant et arrière(Beaucoup.)Liaison d'extrémité


À l'heure actuelle, la mise en oeuvre du traçage des liens open source se concentre principalement sur la couche d'application de service d'arrière - plan,Dans les terminaux utilisateurs et les composants Cloud(Comme une base de données Cloud)Absence d'un moyen efficace d'enfouissement latéral.La principale raison en est que ces deux derniers sont généralement desservis par un fournisseur de services en nuage ou un fournisseur tiers,Dépend de la convivialité du fournisseur pour les adaptateurs compatibles open source.Et il est difficile pour les entreprises d'intervenir directement dans le développement.


L'effet direct de ce qui précède est que les pages frontales répondent lentement,Il est difficile de localiser directement l'application ou le service qui a causé,Il n'est pas possible de donner explicitement la cause fondamentale de la certitude.Même chose.,Les exceptions aux composants Cloud sont également difficiles à assimiler directement aux exceptions aux applications commerciales,En particulier dans les scénarios où plusieurs applications partagent la même instance de base de données,Des moyens plus détournés sont nécessaires pour vérifier,Le dépannage est très inefficace.


Pour résoudre ces problèmes,Premièrement, les fournisseurs de services en nuage doivent mieux soutenir les normes de liaison open source,Ajouter un point d'enfouissement de la méthode de base,Et prend en charge la transmission transparente de la pile de protocole open source et le retour de données(Comme alicloud ARMS Support de surveillance frontale Jaeger Pénétration du Protocole et traçage de la pile de méthodes).


Deuxièmement,,Parce que différents systèmes peuvent être dus à des problèmes tels que l'attribution,Impossible de compléter l'unification complète de la pile de Protocole de liaison,Pour réaliser une liaison Multi - terminaux,Par Trace Le système fournit un schéma de connexion pour les piles de protocole hétérogènes.


Ouverture hétérogène de la pile de protocole


Pour implémenter une pile de protocole hétérogène(Jaeger、SkyWalking、Zipkin)De,Trace Le système doit soutenir deux capacités:Tout d'abord, la transformation de la pile de protocole et la configuration dynamique,Par exemple, l'extrémité avant descend. Jaeger Accord,Le nouveau système externe en aval utilise ZipKin B3 Accord.Entre les deux Node.js L'application peut recevoir Jaeger Protocole et transmission vers le bas ZipKin Accord,Assurer l'intégrité de transmission du marquage de liaison complète.Deuxièmement, conversion du format de données côté serveur,Les différents formats de données déclarés peuvent être convertis en un format uniforme pour le stockage,Ou compatible du côté de la requête.Le coût d'entretien du premier est relativement faible,Ces derniers sont plus coûteux à compacter,Mais relativement plus flexible.


3、Fusion des données dans le nuage


Beaucoup de grandes entreprises,.Pour des raisons de stabilité ou de sécurité des données,Déploiement Multi - Cloud sélectionné,Par exemple, le système domestique est déployé dans alicloud,Les systèmes outre - mer sont déployés dans AWS Nuage,Les systèmes impliquant des données sensibles au sein de l'entreprise sont déployés dans des salles d'ordinateurs auto - construites, etc.Le déploiement Multi - Cloud est devenu une architecture de déploiement typique sur le cloud,Mais l'isolement du réseau dans différents environnements,Et la diversité des infrastructures,Il pose également d'énormes défis au personnel d'exploitation et d'entretien.


Parce que les environnements Cloud ne peuvent communiquer que par le réseau public,Pour assurer l'intégrité des liens dans le cadre d'une architecture de déploiement Multi - Cloud,Les données de liaison peuvent être rapportées à travers le cloud、Interrogation dans le cloud, etc..Quoi qu'il en soit,L'objectif est de rendre les données multi - Cloud uniformément visibles,Localiser ou analyser rapidement les problèmes au moyen de données complètes sur les liens.


Escalade à travers le nuage


La mise en œuvre de l'escalade des données de liaison à travers le cloud est relativement facile,Facile à entretenir et à gérer,C'est l'approche dominante adoptée par les fournisseurs de Cloud,Comme alicloud ARMS Est la fusion de données multi - Cloud réalisée par l'escalade de données multi - Cloud.


L'avantage de l'escalade à travers le cloud est le faible coût de déploiement,Un ensemble de serveurs pour une maintenance facile;L'inconvénient est que la transmission à travers le cloud prend la bande passante du réseau public,Le coût et la stabilité du trafic public sont des contraintes importantes.L'escalade à travers le cloud convient mieux à une architecture maître - esclave,La plupart des noeuds sont déployés dans un anneau Cloud,Autres nuages/La salle des machines auto - construite ne représente qu'une petite partie du trafic d'affaires,Une entreprise, par exemple. toC Opérations déployées en AfghanistanxNuage,Les applications internes de l'entreprise sont déployées dans la salle des machines auto - construite,C'est une façon plus appropriée d'escalade à travers le cloud,Comme le montre la figure ci - dessous.


2.png


Requête inter - Cloud


La requête inter - Cloud signifie que les données de liaison originales sont stockées dans le réseau Cloud actuel,Envoyer une requête utilisateur séparément,Ensuite, les résultats de la requête sont agrégés pour un traitement unifié,Réduire les coûts de transmission du réseau public.


L'avantage de la requête Cross - Cloud est la petite quantité de données transmises à travers le réseau,En particulier, le nombre réel de requêtes pour les données de liaison est généralement inférieur à un dixième du nombre de données brutes,Permet d'économiser considérablement la largeur de bande du réseau public.L'inconvénient est la nécessité de déployer plusieurs terminaux de traitement de données,Quantile non pris en charge、Global TopN Calcul isocomplexe.Convient mieux à plusieurs architectures principales,Simple épissage de liaison、max/min/avg Les statistiques peuvent être prises en charge.


Il existe deux modes d'implémentation des requêtes dans le cloud,L'un consiste à mettre en place un terminal centralisé de traitement des données à l'intérieur du réseau Cloud,Et connectez - vous au réseau d'utilisateurs via la ligne privée Intranet,Les données de plusieurs utilisateurs peuvent être traitées simultanément;L'autre est de construire un ensemble distinct pour chaque utilisateur VPC Terminal de traitement des données à l'intérieur.Le premier a un faible coût d'entretien,Plus grande élasticité de la capacité;Ces dernières sont plus isolées.


3.png


Autres modalités


En plus des deux options ci - dessus,Dans la pratique, le mode mixte ou le mode de transmission seulement peuvent également être utilisés.


Le mode mixte fait référence à la communication uniforme des données statistiques par l'intermédiaire du réseau public,Traitement centralisé(Peu de données,Haute précision requise),Et les données de liaison sont récupérées par interrogation dans le cloud(Grande quantité de données,Faible fréquence des requêtes).


Le mode transparent seulement signifie que seul le contexte du lien peut être entièrement transparent entre chaque environnement Cloud,Mise en œuvre indépendante du stockage et de la requête des données de liaison.L'avantage de ce modèle est que le coût de mise en oeuvre est extrêmement faible,Il n'y a qu'un seul Protocole de transmission entre chaque nuage,Les solutions concrètes de mise en œuvre peuvent être totalement indépendantes.Par le même TraceId Ou le nom de l'application est concaténé manuellement,Mieux adapté à la fusion rapide des systèmes de stockage,Coût minimal de transformation.


Pratique de l'accès au suivi de tous les liens


Les défis et les solutions pour le suivi complet des liens dans divers scénarios sont décrits en détail ci - dessus,Ensuite, prenez alicloud ARMS Par exemple,Décrivez comment 0 À 1 Construire un ensemble à travers l'avant、Passerelle、Serveur、Un système complet et observable de conteneurs et de composants Cloud.


4.png


  • Header Format de transmission:Adoption uniforme Jaeger Format,Key Pour uber-trace-id, Value Pour {trace-id}:{span-id}:{parent-span-id}:{flags} .


  • Accès frontal:Peut être adopté CDN(Script Injection)Ou NPM Deux modes d'accès à faible Code,Soutien Web/H5、Weex Et divers scénarios d'applet.


  • Accès arrière:
    • Java Priorité recommandée pour l'application ARMS Agent,Aucune modification de code n'est nécessaire pour les points d'enfouissement non intrusifs,Soutien au diagnostic de bord、Statistiques non destructives、Fonctions d'ordre supérieur telles que l'échantillonnage de précision.Les méthodes personnalisées de l'utilisateur peuvent être OpenTelemetry SDK Point d'enfouissement actif.
    • Non Java Application recommandée Jaeger Accès,Et soumettre les données à ARMS Endpoint,ARMS Sera compatible avec la transmission et l'affichage des liens entre les applications multilingues.


Alicloud ARMS Le système actuel de suivi de tous les liens est basé sur Jaeger Accord,Développement en cours SkyWalking Accord,Pour soutenir SkyWalking Migration sans perte des utilisateurs auto - construits.Front End、Java Application et non - application Java L'effet de la chaîne d'appels qui applique le traçage complet du lien est illustré ci - dessous:


5.png


1、Pratiques d'accès frontal


ARMS Support de surveillance frontale Web/H5、Weex、AliPay et Wechat applet,Le présent document est rédigé comme suit: Web Application via CDN Mode d'accès ARMS Exemple de surveillance frontale,Brève description du processus d'accès,Référence détaillée du Guide d'accès ARMS Documents du site officiel de surveillance de première ligne.

  1. Connexion ARMS Console,Cliquez sur le Centre d'accès dans la barre de navigation de gauche,Cliquez pour sélectionner l'avant Web/H5 Accès.
  2. Saisissez le nom de l'application,Cliquez sur créer;CocherSDKOptions requises pour étendre la zone des éléments de configuration,Générer rapidement la page à insérerBICode de la sonde.
  3. Sélectionner le chargement asynchrone,Copiez le code ci - dessous et collez - le sur la pageHTMLMoyenne** **Première ligne à l'intérieur de l'élément,Puis redémarrez l'application.


<script> !(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxx",imgUrl:"https://arms-retcode.aliyuncs.com/r.png?", enableLinkTrace: true, linkType: 'tracing'}; with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d) })(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl"); </script>


Pour réaliser la liaison avant - arrière,Les deux paramètres suivants doivent être inclus dans le Code de la sonde ci - dessus:


  1. enableLinkTrace:true // Indique que la fonction de suivi du lien avant est activée
  2. linkType: 'tracing' // Génération de représentations Jaeger Données de liaison au format du Protocole,Hearder Allow uber-trace-id Transmissible


En plus,Si API Non identique à l'application courante,Ajouter enableApiCors: true Ce paramètre,Et le serveur d'arrière - plan doit également prendre en charge les requêtes inter - domaines et la personnalisationheader Valeur,Pour plus de détails, veuillez consulter la documentation d'association des liens avant et arrière.Pour vérifier que la configuration de suivi des liens avant et arrière est valide,Vous pouvez ouvrir la console pour voir les correspondances API Demande Request Headers Oui Non uber-trace-id Ce logo.


2、Java Pratiques d'accès aux applications


Java Accès recommandé à l'application ARMS JavaAgent,Sonde non intrusive ouverte et prête à l'emploi,Pas besoin de modifier le Code d'entreprise,Référence détaillée du Guide d'accès ARMS Document du site Web du moniteur d'application.


  1. Connexion ARMS Console,Cliquez sur le Centre d'accès dans la barre de navigation de gauche,Cliquez pour sélectionner l'arrière - plan Java Accès.
  2. Sélectionner l'installation manuelle au besoin、Installation de scripts et installation de services de conteneurs de n'importe quelle façon.
  3. Suivez les instructions de fonctionnement pour vous assurer que la sonde est téléchargée et décompressée localement,Configurer correctement appName、LicenseKey Et javaagent Après le démarrage des paramètres,Redémarrer l'application.


3、Non Java Pratiques d'accès aux applications


Non Java Les applications peuvent être ouvertes SDK(Par exemple, Jaeger)Soumettre les données à ARMS Point d'accès,Référence détaillée du Guide d'accès ARMS Document du site Web du moniteur d'application.


  1. Connexion ARMS Console,Cliquez sur le Centre d'accès dans la barre de navigation de gauche,Cliquez pour sélectionner l'arrière - plan Go/C++/.NET/Node.js Attendez le mode d'accès.
  2. Remplacer le point d'accès conformément aux instructions d'exploitation ,Redémarrer l'application une fois la configuration terminée.


Le suivi complet du lien n'est que le début,Ce n'est pas la fin


De 2010 Publié par Google en Dapper Début de la thèse,Le traçage des liens a évolué depuis plus de 10 ans.Mais il y a toujours eu moins de livres ou d'articles approfondis sur le traçage des liens,La plupart des blogs se contentent de présenter quelques concepts open source ou QuickStart,Comment une grande entreprise peut construire un ensemble vraiment utilisable、Ça marche.、Système de suivi des liens facile à utiliser,Quels puits doivent être remplis,À l'abri de quoi?,Il est difficile de trouver un système de comparaison、Réponses complètes.


L'accès complet au suivi des liens est simplement Tracing Point de départ,Choisissez des solutions adaptées à votre architecture d'entreprise,Peut éviter certains virages.Mais le suivi des liens ne se limite pas à regarder la chaîne d'appels et la surveillance du service,Comment activer les entreprises,Dérivé du domaine observable de l'entreprise aide à la décision de l'entreprise?Comment se connecter aux infrastructures observables,Identifier les risques liés aux ressources à l'avance?Il reste encore beaucoup à faire,J'espère que plus d'étudiants se joindront à nous pour partager.


Liens connexes:

1、 ARMS Documents du site officiel de surveillance de première ligne:https://help.aliyun.com/document_detail/106086.html?spm=ata.21736010.0.0.5d3a7f117o1Lty

2、 Documents associés aux liens avant et arrière:https://help.aliyun.com/document_detail/91409.html#title-6rx-0lb-p1o

3、ARMS Document du site Web du moniteur d'application:https://help.aliyun.com/document_detail/97924.html

4、ARMS Document du site Web du moniteur d'application:https://help.aliyun.com/document_detail/118912.html

5、ARMS Console:

https://arms.console.aliyun.com/?spm=ata.21736010.0.0.5d3a7f117o1Lty


Cliquez sur le lien ci - dessous,Découvrez le suivi des liens maintenant!

https://www.aliyun.com/product/xtrace?spm=5176.8140086.J_8058803260.58.4da02c90QhBtVo
Analyse et diagnostic rapides des goulets d'étranglement de performance dans les architectures d'applications distribuées,Améliorer l'efficacité du diagnostic de développement à l'ère des micro - services.



Succès récent


# Le temps des geeks couvre les conversations RocketMQ Directeur technique ronky #

Numérisez le Code QR ci - dessous pour réserver la diffusion en direct

10 Mois 13 Jour(Mercredi)La nuit 20:00, Salle de diffusion en direct non On se voit pas. ~


Points chauds.jpg


Lien vers le texte original:https://developer.aliyun.com/article/793700?

Avis de copyright:Le contenu de cet article est fourni spontanément par les utilisateurs enregistrés d'Alibaba Cloud Real Name,Le droit d'auteur appartient à l'auteur original.,La communauté des développeurs d'alicloud n'a pas de droit d'auteur,N'assume pas non plus la responsabilité juridique correspondante.Voir les règles spécifiques《Alibaba Cloud Developer Community User Service Agreement》Et《Alibaba Cloud Developer Community Intellectual Property Protection Guidelines》.Si vous trouvez du contenu soupçonné de plagiat dans cette communauté,Remplir le formulaire de plainte pour infraction,Une fois vérifié,La communauté supprimera immédiatement les infractions présumées.

版权声明
本文为[Développeur alicloud]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211014024630869z.html

Scroll to Top