La société de recharge et d'échange Kamax utilise les meilleures pratiques pour améliorer la stabilité des applications en ligne à faible coût

Auteur : Kaimax Nouvelle Énergie

Kamax New Energy Technology Co., Ltd. a été créée le 16 mai 2019. Les actionnaires actuels de la coentreprise sont Volkswagen (China) Investment Co., Ltd., China FAW Co., Ltd. et FAW-Volkswagen Co., Ltd. [L'augmentation du capital et des actions sera soumise à l'obtention des approbations de surveillance appropriées (y compris antitrust)], Wanbang Digital Energy Co., Ltd. et Anhui Jianghuai Automobile Group Holdings Co., Ltd., dont le siège est à Changzhou, Jiangsu. Kaimax intègre les avantages des constructeurs automobiles et des sociétés de recharge, en fournissant tout, depuis la R&D et la fabrication d'infrastructures de recharge jusqu'à l'interconnexion intelligente des logiciels, des utilisateurs de recharge privés aux utilisateurs semi-publics, publics et professionnels, de la source d'alimentation électrique industrielle au plate-forme de services. L'expérience terminale permet une connexion transparente entre le front-end et le back-end de chaque format d'entreprise.

Kaimax s'adresse à la nouvelle génération de consommateurs chinois. Il se concentre non seulement sur l'expérience de recharge des propriétaires de voitures électriques privées, mais fournit également aux utilisateurs des services de qualité haut de gamme pour offrir aux utilisateurs une nouvelle expérience de recharge pratique, sans souci, intelligente et efficace. , commençant un voyage pour profiter de la vie. Dans le même temps, Camax s'engage à fournir des services de recharge complets pour les voyages électriques. S'appuyant sur une forte force de R&D, une technologie de base avancée et des services de haute qualité, Camax a également remporté de nombreux prix dans le domaine national de la recharge des véhicules à énergie nouvelle : En 2021, Camax a remporté le « Prix de la meilleure innovation en matière de services d'exploitation dans l'industrie chinoise des piles de recharge » ; en mars 2023, Kaimax a remporté d'un seul coup le « Prix de la station de recharge cinq étoiles de haute qualité », devenant ainsi le premier groupe d'opérateurs de recharge exceptionnels à recevoir une note de cinq étoiles (le niveau cinq étoiles est le niveau le plus élevé et la station la plus standard) ; en juin de la même année, Cammax a remporté le prix 2023 des dix meilleures marques d'opérateurs influents dans l'industrie chinoise de la recharge et de l'échange. Kamax continuera à promouvoir l'optimisation et l'innovation de la vitesse de construction du réseau de recharge et du parcours des utilisateurs de recharge, et se concentrera sur la recherche et le développement d'équipements de recharge de haute puissance et l'exploration de nouveaux services énergétiques, favorisant ainsi le développement vert d'une intégration profonde de les nouvelles énergies et les nouveaux véhicules énergétiques.

La stabilité des entreprises est un grand défi

En 2023, Camex continuera de s'engager en faveur d'une innovation intégrée centrée sur l'utilisateur et s'efforcera de créer des voyages électriques intelligents. Fin mai de cette année, le réseau de recharge de Kamax couvrait 180 villes en Chine, avait construit 1 198 bornes de recharge et 10 490 bornes de recharge, et comptait plus de 1,96 million d'utilisateurs. De retard dans la construction à « modérément avancé », l'industrie des piles de chargement marquera le début d'un grand développement au cours des trois prochaines années, avec un marché de plusieurs centaines de milliards. De nos jours, de nombreuses villes à travers le pays modernisent et augmentent constamment l'installation et l'utilisation de bornes de recharge. Avec le développement de véhicules à énergie nouvelle, les demandes des groupes d'utilisateurs de recharge augmentent rapidement. Avec la croissance rapide de son activité, Kaimax a stabilisé sa structure Le sexe et la convivialité posent également des défis sans précédent.

Camis adopte la méthode SpringBoot traditionnelle pour le développement d'applications, et les applications sont interconnectées via des requêtes HTTP. C'est la simplicité de l'architecture SpringBoot qui aide efficacement les activités de Camis et le nombre de microservices à se développer rapidement. Cependant, à mesure que l'échelle des microservices augmente, on découvre progressivement qu'il existe des problèmes de stabilité et d'efficacité aux différentes étapes de publication et d'exploitation des applications. À mesure que le nombre d’utilisateurs augmente, les besoins correspondants augmentent également et les scénarios commerciaux deviennent de plus en plus complexes. À l'heure actuelle, il est difficile de garantir que tous les scénarios peuvent être couverts en s'appuyant uniquement sur des tests internes. Chaque version d'application nécessite suffisamment de tests et de vérifications en niveaux de gris. Afin de répondre aux exigences commerciales d'itération rapide, comment effectuer plusieurs itérations en parallèle dans l'environnement de développement à faible coût et garantir la stabilité de chaque version commerciale est devenu la clé pour améliorer l'efficacité.

À grande échelle, aussi petit soit-il, le problème peut affecter tout le corps. D'une part, le trafic auquel nous sommes confrontés est aléatoire et imprévisible. Lorsque l'augmentation du trafic dépasse la limite de capacité du service, cela peut ralentir le service, augmenter la charge et provoquer un crash du service. D'un autre côté, l'architecture de microservices distribués est une architecture maillée complexe avec des liens d'appel complexes. À l'heure actuelle, lorsqu'un service (y compris les services externes dépendants) présente des facteurs instables (tels que des appels lents ou des exceptions), il est possible que le système en amont L'appelant est interrompu, provoquant des effets en cascade. Par conséquent, dans la gouvernance des microservices, nous avons besoin de moyens pour éviter ces situations instables.

Face à l'évolution et à la croissance continues de l'architecture des microservices, les étudiants de Kamax Architecture ont également réalisé la nécessité d'introduire des capacités de gouvernance des microservices pour gérer correctement les microservices actuels, améliorant ainsi davantage la stabilité et l'efficacité des microservices. De même, l'entreprise est toujours confrontée à des exigences de développement rapide. Si le framework Spring Boot d'origine est mis à niveau vers Spring Cloud et que diverses fonctionnalités de gouvernance de services de haut niveau sont introduites, cela sera nécessaire pour les étudiants en R&D de Kaimax qui sont actuellement confrontés à un développement commercial rapide. le coût d'investissement est trop élevé.

Implémenter la mise à niveau de l'architecture des microservices sans aucun sens

Existe-t-il un moyen de mettre en œuvre les capacités de gouvernance de nos microservices sans changer le code ? Par exemple, en mettant en œuvre une version en niveaux de gris à lien complet pour éviter les risques de stabilité causés par les changements ; en utilisant les capacités actuelles de limitation et de rétrogradation pour garantir la stabilité de l'état de fonctionnement et en résolvant les risques de stabilité causés par un trafic incertain ; en utilisant des capacités d'authentification pour résoudre les problèmes de sécurité des microservices. risques d’appels intermittents. Autrement dit, comment pouvons-nous améliorer les performances de l'avion en remplaçant le moteur alors que l'avion tourne à grande vitesse ? Plus important encore, il doit être insensible aux passagers de notre avion.

Nous résumons davantage le problème et demandons comment nous pouvons atteindre les capacités de gouvernance des services de n'importe quelle application Java sans modifier le code. Dans ce processus, nous devons garantir une série de facteurs réalistes tels que la stabilité, l'efficacité du diagnostic des problèmes, la durabilité de l'architecture et les performances. .

L'exploration de la technologie sert toujours l'entreprise. Nous avons eu une discussion plus approfondie autour de la solution de Kaimax. Pouvons-nous résoudre le problème de la gestion non intrusive des services aux utilisateurs en unifiant la solution de gestion du trafic nord-sud et est-ouest ?

  1. La passerelle cloud native MSE est un produit de passerelle de nouvelle génération compatible avec la norme K8s Ingress. Il combine une passerelle de trafic, une passerelle de microservices et une passerelle de sécurité WAF en un seul. Il présente les caractéristiques d'une intégration élevée, d'une utilisation facile, d'une extension facile et d'une mise à jour à chaud. . Il ouvre plusieurs sources de services telles que K8s/Nacos et améliore la stabilité des applications de l'ensemble du lien grâce à des moyens tels qu'en ligne et hors ligne sans perte, une échelle de gris de lien complet, une protection contre les surcharges, une auto-réparation des défauts et une dégradation par limitation de courant.

  2. La passerelle native cloud MSE adopte un modèle entièrement géré. Après avoir choisi une passerelle native cloud, les utilisateurs n'ont qu'à se soucier de l'utilisation spécifique de la passerelle et n'ont pas besoin de se soucier du fonctionnement et de la maintenance, de la stabilité, de la surveillance, de l'alarme et d'autres fonctions. de la passerelle native cloud elle-même. Il peut être utilisé immédiatement. , seuil d'utilisation bas.

Étant donné que la passerelle native du cloud peut unifier le trafic et le contrôle des flux via des règles de routage, Higress peut-il être utilisé pour mettre en œuvre les exigences de gestion du trafic d'appels entre les services ?

Transfert et gestion du trafic entre les services

Maintenant que l’idée a été finalisée et que chacun a évalué la stabilité, la sécurité et le coût, ils peuvent rapidement commencer à pratiquer et à explorer la solution. Le premier problème auquel nous sommes confrontés est la manière originale d'appeler le service K8s via le nom de domaine. Comment transférer le trafic vers Higress puis le transmettre au véritable Pod correspondant via Higress ? Et dans ce processus, nous devons considérer la stabilité de la solution.

  • La méthode immédiate qui me vient à l'esprit consiste à modifier les configurations du service et des points de terminaison dans K8 et à utiliser la capacité coreDNS pour transférer le trafic vers Higress.
apiVersion: v1
kind: Service
metadata:
 name: provider
spec:
  type: ClusterIP
  clusterIP: None
---
apiVersion: v1
kind: Endpoints
metadata:
  name: provider
spec:
  subsetS:
    ip: ${higress-slb}
    port: 80
  • Dans un souci de stabilité commerciale, CoreDNS peut être remplacé par le même type de produit privatelinkZone DNS. Dans le même temps, les enregistrements DNS de type CNAME peuvent être configurés pour basculer par lots le nom de domaine *.camsnet.com accessible entre les services vers le cloud natif. passerelle.

Jusqu'à présent, nous avons terminé que le trafic des commandes soit transféré vers la passerelle interne Higress. Ensuite, nous devons configurer les règles de routage Higress pour transférer le trafic vers le service cible réel.

  • Nous synchronisons le service du service de conteneur avec la passerelle dans la passerelle native cloud MSE (version commerciale Higress) et configurons les règles de routage correspondantes pour implémenter le transfert de trafic.

Une fois le trafic transféré via la passerelle native cloud MSE, nous pouvons bénéficier de davantage de capacités de gouvernance.

  • Dans ce processus, nous pouvons configurer directement le routage des étiquettes pour obtenir des capacités de publication en niveaux de gris, puis le combiner avec le suivi des liens pour obtenir des capacités en niveaux de gris de lien complet.
  • Au cours de ce processus, nous pouvons configurer les règles d'authentification JWT sur la route pour réaliser des appels sécurisés entre les services.

Suivi des liens observables et complets

En accédant au service de surveillance en temps réel des applications ARMS - Application Monitoring , Kaimax peut réaliser les capacités de surveillance et de diagnostic de l'application sans modifier une ligne de code. Il peut comprendre rapidement les trois indicateurs les plus critiques de l'application : temps de réponse, débit, et le taux d'erreur. Dans le même temps, selon l'indicateur, les exceptions utilisent la capacité de la chaîne d'appels pour suivre rapidement l'ensemble du microservice.

Dans le même temps, la capacité de suivi des liens fournit également un support technique de base pour les applications permettant d'obtenir des niveaux de gris de lien complet.

Transmission transparente d'étiquette de trafic en liaison complète

Utilisez le mécanisme Tracing Baggage pour transmettre l'identifiant de teinture correspondant sur l'ensemble du lien, car la plupart des frameworks Tracing prennent en charge les concepts et capacités de bagages, tels que : OpenTelemetry, Skywalking, Jaeger, etc. Bien entendu, la capacité ARMS Tracing est également conforme à cette norme. Nous implémentons le plug-in Higress WASM et lisons le x-mse-tag correspondant à la clé de transmission transparente spécifiée telle que x-mse-tag dans le filtre sortant Higress à partir du Bagages à l'emplacement spécifié du protocole Tracing. La valeur est insérée dans l'en-tête Http pour que Higress effectue le routage. Cela permet une transmission transparente en liaison complète d’étiquettes personnalisées.

Une fois que nous avons la capacité de transmission transparente en liaison complète d'étiquettes personnalisées, nous pouvons créer des capacités complètes en niveaux de gris en liaison complète. Qu’est-ce que les niveaux de gris de lien complet ?

Dans le cadre de l'architecture des microservices, certaines exigences sont développées, impliquant des modifications simultanées de plusieurs microservices sur le lien d'appel du microservice. Habituellement, chaque microservice aura un environnement ou un groupe en niveaux de gris pour accepter le trafic en niveaux de gris. Nous espérons utiliser le trafic entrant dans l'environnement en niveaux de gris en amont peut également entrez dans l'environnement en niveaux de gris en aval, garantissant qu'une demande est toujours livrée dans l'environnement en niveaux de gris.Même s'il existe des microservices sur ce lien d'appel qui n'ont pas d'environnement en niveaux de gris, ces applications demandent en aval Vous pouvez toujours revenir à l'environnement en niveaux de gris. Si une version implique plusieurs microservices dans le lien, nous pouvons effectuer en douceur la version en niveaux de gris du lien complet sans nous soucier du risque de trafic en niveaux de gris circulant de manière aléatoire.

Après avoir implémenté la transmission transparente en liaison complète de l'étiquette x-mse-tag, nous pouvons configurer des règles de routage d'étiquettes basées sur x-mse-tag sur le routage Higress pour obtenir une boucle fermée de trafic avec des étiquettes spécifiques dans le nœud qui s'applique. une version spécifique, réalisant ainsi la capacité d'échelle de gris à lien complet des « couloirs de circulation ».

Capacité de protection du trafic

Comment pouvons-nous obtenir des capacités de protection du trafic sans modifier le code ? En prenant comme exemple le contrôle du trafic courant et la dégradation des disjoncteurs, commençons par présenter les capacités de protection du trafic.

  • contrôle de flux

La circulation est très aléatoire et imprévisible. Cela peut être calme une seconde, mais il peut y avoir un pic de trafic la seconde suivante (comme la scène à 0h00 sur Double Eleven). Chaque système et service a une limite supérieure sur la capacité qu'il peut transporter. Si le trafic soudain dépasse la capacité du système, cela peut entraîner le traitement de la demande, le traitement des demandes accumulées est lent, le processeur/la charge monte en flèche et conduit finalement à panne du système. Il faut donc limiter ce trafic soudain et s'assurer que le service ne soit pas submergé lors du traitement des requêtes autant que possible : c'est le contrôle de flux.

  • déclassement du disjoncteur

Les architectures de microservices modernes sont distribuées et composées de nombreux services. Différents services s'appellent entre eux pour former des liens d'appel complexes. Les problèmes ci-dessus auront un effet amplifié sur les appels de liaison. Si un certain lien sur un lien complexe est instable, il peut se produire en cascade, provoquant éventuellement l'indisponibilité de l'ensemble du lien. Par conséquent, nous devons couper le circuit et déclasser les services instables faiblement dépendants et couper temporairement les appels instables pour éviter que les facteurs d'instabilité locaux ne provoquent une avalanche globale.

Kamax réalise de manière transparente des capacités de protection du trafic en accédant aux capacités de protection du trafic de gestion des services MSE (Sentinel Enterprise Edition). Par rapport à la version communautaire, Sentinel Enterprise Edition présente certains avantages en termes d'utilisation et de fonctionnalités.

Plus d'exploration et de pratique

Sans changer le code, nous pouvons développer rapidement des capacités complètes et systématiques de gouvernance des microservices. À l'heure actuelle, Kamax a mis en œuvre une série de fonctionnalités telles que les niveaux de gris de liaison complète, le suivi et l'observabilité de liaison complète, ainsi que la protection du trafic basée sur Higress, permettant à l'architecture actuelle de Kamax de faire face plus sereinement aux défis posés par une activité en croissance rapide.

D'autre part, pour Higress, la mise en œuvre de la solution Kamax a injecté de nouvelles idées dans le développement de l'écosystème Higress. Nous continuons également à améliorer la facilité d'utilisation et la stabilité de Higress, dans l'espoir d'apporter plus d'avantages à davantage d'entreprises. Grande valeur.

Qt 6.6 est officiellement sorti. La fenêtre pop-up sur la page loterie de Gome App insulte son fondateur . Ubuntu 23.10 est officiellement sorti. Autant profiter de vendredi pour mettre à jour ! RISC-V : non contrôlé par une seule entreprise ou un seul pays. Épisode de sortie d'Ubuntu 23.10 : l'image ISO a été "rappelée" de toute urgence en raison de la présence de discours de haine. Les entreprises russes produisent des ordinateurs et des serveurs basés sur des processeurs Loongson. ChromeOS est une distribution Linux utilisant Google Desktop Environnement Un doctorant de 23 ans corrige un "bug fantôme" de 22 ans dans Firefox Sortie de TiDB 7.4 : officiellement compatible avec MySQL 8.0 Microsoft lance la version Windows Terminal Canary
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/3874284/blog/10117925
conseillé
Classement