APISIX améliore considérablement l'efficacité du développement chez Junrunrenli

Peng Yuan

December 12, 2022

Case Study

Aperçu

Défis

  1. Trop de systèmes métier, le trafic CLB (configurable logic block) et les changements fréquents de configuration consomment beaucoup de temps de développement et de maintenance.
  2. Métier à haute concurrence, base de données instable lors de l'exportation de milliards de données, et le problème ne peut être résolu qu'en redémarrant le service ou en publiant une nouvelle version.
  3. Manque d'une plateforme unifiée pour superviser les données métier accessibles.
  4. Trafic important et complexe, manque de stratégie de gestion de trafic efficace.
  5. Des dizaines de millions de requêtes API par jour, une quantité substantielle de données de logs, et une capacité de charge de disque limitée.

Résultats

  1. Apache APISIX fournit à Junrunrenli diverses méthodes d'observabilité et de protection de sécurité, supportant efficacement des dizaines de millions de visites par jour.
  2. Amélioration significative de l'efficacité de livraison des R&D : la configuration de domaine générique prend effet en quelques secondes, et le plan de contrôle réduit la charge de configuration des DevOps.
  3. Réduction des équilibreurs de charge de plus de 200 à seulement 10+, économisant ainsi beaucoup d'argent.

À propos de Junrunrenli Ressources Humaines

Junrunrenli Ressources Humaines est un fournisseur de solutions de ressources humaines axé sur la technologie, offrant principalement des services de ressources humaines tout-en-un pour le marché de l'emploi des cols bleus.

Établie en 2019, Junrunrenli a fourni des services à plus de 1000 clients, couvrant plus de 300W cols bleus. En trois ans, l'équipe de R&D est passée de moins de 20 personnes à plus de 250 et a développé en interne plus de 15 plateformes de services de ressources humaines. En outre, Junrunrenli a construit un écosystème intégré de services de ressources humaines, incluant des applications SaaS pour le côté B et des applications pour le côté C destinées au groupe terminal des cols bleus.

Le rythme de l'innovation entraîne des exigences plus élevées pour l'architecture du système. En plus de la haute disponibilité, de la concurrence et des performances, Junrunrenli nécessite une extensibilité élastique.

Alors, comment Junrunrenli choisit-il une passerelle API ?

Comment APISIX se démarque-t-il ?

L'équipe de Junrunrenli a établi une liste restreinte et a ensuite mené une enquête sur de nombreuses passerelles API. Plusieurs d'entre elles ont été écartées car elles ne répondaient pas pleinement aux besoins de Junrunrenli. Nous pouvons examiner de près l'image ci-dessous de la sélection de la passerelle API par Junrunrenli.

Sélection de la passerelle API par Junrunrenli

L'image ci-dessus indique les fonctionnalités de Apache APISIX, tandis que celles en rouge sont les points sur lesquels Junrunrenli insiste le plus car

  1. Junrunrenli dispose de nombreux systèmes métier internes et d'un écosystème interne auto-construit. Par conséquent, une passerelle API robuste est nécessaire pour soutenir les changements rapides de l'activité de Junrun car Junrunrenli doit configurer et modifier fréquemment les routes. APISIX permet à Junrunrenli de découper et de manipuler les différentes méthodes pour contrôler l'accès aux API.

  2. L'activité de Junrunrenli se concentre sur la réalisation de la même chose en même temps, par exemple, payer des milliards de salaires ou retirer ce montant de fonds. Des centaines de milliers d'utilisateurs cols bleus pointent, signent des contrats, reçoivent des tâches et des salaires simultanément. Par conséquent, le trafic concurrent est énorme, surtout pendant le "Black Friday" chinois, qui double par rapport à l'habituel.

  3. Divers systèmes et besoins personnalisés entraînent le développement autonome de Junrunrenli. "APISIX peut répondre à 99% de nos besoins, mais les 1% restants doivent être développés par nous-mêmes", a déclaré Yuan, expert technique de Junrunrenli. Tout le monde sait que Kong et APISIX sont développés sur la base d'OpenResty NGINX + Lua. Il y aurait un coût supplémentaire si Junrunrenli développait des plugins avec Lua. Heureusement, le plugin externe d'APISIX supporte le langage de programmation Java pour économiser les coûts d'apprentissage. De plus, la communauté d'APISIX est particulièrement active.

Junrunrenli renforce ses systèmes avec APISIX

Ci-dessous se trouve l'aperçu global du diagramme d'architecture de Junrunrenli.

Diagramme d'architecture global de Junrunrenli

Junrunrenli a réalisé les quatre réalisations suivantes après avoir utilisé APISIX.

1. Création de stratégies de routes innovantes pour une gestion efficace des routes

Basé sur Radixtree et etcd, Apache APISIX est capable de correspondance de routes à haute vitesse et de synchronisation rapide de la configuration. Tout cela est conçu pour réaliser des performances rapides et une réponse à très faible latence.

Pendant la période de pointe d'utilisation des systèmes, la base de données MySQL ne pouvait pas répondre lors de l'exportation de millions de données de rapport, rendant le service indisponible, qui ne peut reprendre un fonctionnement normal qu'après des redémarrages. De plus, le cas s'intensifie si l'exportation continue et ne peut être résolu que par de nouvelles versions.

APISIX permet une gestion intelligente des routes en soutenant Junrunrenli avec la configuration de la priorité des routes et l'arrêt d'urgence des API avec le plugin serverless en quelques minutes de configuration.

En outre, les systèmes métier de Junrunrenli, en particulier les systèmes SaaS, doivent supporter l'accès par domaine personnalisé par le client. Par conséquent, l'équipe de Junrunrenli a unifié l'entrée en configurant plusieurs domaines pour le même service. Les configurations peuvent être utilisées dans l'ensemble des systèmes en ne configurant qu'une seule fois.

2. Séparation d'une plateforme PaaS pour un contrôle de sécurité global

Junrunrenli utilise les caractéristiques d'APISIX, telles que la publication canari, le contrôle de sécurité et la reconnaissance d'identité, pour configurer la passerelle PaaS pour le contrôle de sécurité du système métier de niveau supérieur.

L'image ci-dessous montre que Junrunrenli a créé une architecture de passerelle à deux couches basée sur APISIX et a isolé logiquement une passerelle dessus - la plateforme PaaS.

L'utilisateur accède à CLB puis APISIX transfère la requête au système métier. Si la fonction utilisée par l'utilisateur nécessite l'utilisation de la capacité PaaS, elle sera accédée via la passerelle de service PaaS. La plateforme PaaS est une zone fermée à l'intérieur de k8s, contenant de nombreux services essentiels.

Diagramme de contrôle de sécurité de Junrunrenli combiné avec APISIX

3. Le plugin de division de trafic d'APISIX a permis à Junrunrenli de gérer automatiquement le trafic

Le plugin de division de trafic d'APISIX confère à Junrunrenli la capacité de gérer le trafic de ses services principaux, tels que SSO (Single Sign On), le service PaaS et le service de paie.

Il existe deux scénarios :

  • Filtrage par étiquette : Le trafic des utilisateurs de test peut être redirigé vers les services de pré-production en fonction d'étiquettes comme l'en-tête et d'autres paramètres. Ensuite, les ingénieurs de test peuvent vérifier d'abord dans l'environnement de pré-production puis dans l'environnement de production ultérieur.

Après avoir passé la vérification, les ingénieurs peuvent couper le trafic en fonction du poids, puis basculer tout le trafic vers la nouvelle version après une période d'observation.

  • Coexistence multi-version : Il existe plusieurs versions d'un service. De cette manière, différents systèmes métier peuvent visiter différentes versions. Le trafic peut être redirigé vers les bons services en utilisant des étiquettes.

Gestion automatique du trafic après l'utilisation d'APISIX

4. Le plugin Kafka d'APISIX a permis à Junrunrenli de surveiller les données de logs de manière transparente

Amélioration du processus de collecte de logs avec APISIX

Comme on peut le voir sur cette image, APISIX et les services pod sont tous deux déployés sur k8s, et toutes les routes backend sont liées au même service. Le plugin Kafka d'APISIX semble être taillé sur mesure pour la collecte de données de logs.

Les données d'observation montrent qu'il y a des dizaines de millions de requêtes API chaque jour, générant 30 Go de données de logs quotidiennement, et que le volume total de logs atteint plus de 1 To.

Le Skywalking et le Sky Agent ont également été configurés dans le script de démarrage du service sur le pod. Combiné avec le plugin Kafka, l'ensemble de la chaîne d'appel sur Skywalking et le cloud de logs peut être observé selon le requestId et le traceId, et les enregistrements de logs et le temps de consommation des requêtes API de chaque lien sont devenus transparents pour la surveillance des données de logs.

Avantages après l'utilisation d'APISIX par Junrunrenli

1. Soutien au développement métier

Après avoir utilisé APISIX, les fonctionnalités du système de Junrunrenli sont plus riches, et les performances sont plus puissantes. Il fournit diverses méthodes d'observabilité et de protection de sécurité pour les services API, supportant efficacement des dizaines de millions de trafic d'accès quotidien.

2. Amélioration de l'efficacité de livraison des R&D

Avant d'utiliser APISIX, Junrunrenli prenait 10 minutes pour configurer chaque résolution DNS, mais maintenant il ne faut que quelques secondes pour configurer des domaines pan. Il y a plus de 10 systèmes et plus de 100 services avec de nombreuses configurations. Les développeurs devaient modifier la configuration à la fois dans CLB et NGINX. APISIX fournit un plan de données central pour la modification de la configuration, réduisant considérablement la charge de travail des DevOps.

3. Économies de coûts

Économies importantes sur les équilibreurs de charge et réduction de plus de 200 services à seulement 10+.

Plan futur de Junrunrenli

  • Junrunrenli personnalisera le java-plugin-runner et intégrera sentinel pour activer le service de limitation de débit dynamique enfichable et également supporter le contrôle de trafic quotidien et mensuel.

  • L'équipe de Junrunrenli envisage également de stocker les données de logs des requêtes API, puis d'effectuer une identification de contrôle des risques basée sur le moteur de règles, en poussant des informations d'alarme et en intervenant rapidement dans les opérations et la maintenance.

  • Junrunrenli effectuera une gouvernance en couches. Actuellement, il n'y a qu'une seule entrée, et plusieurs clusters APISIX seront fournis plus tard. Par exemple, la plateforme ouverte peut accéder aux services internes de k8s de Junrunrenli à partir d'une entrée séparée.

  • En outre, Junrunrenli combinera les plugins de logs et de sky avec une analyse complète des logs de la chaîne.

Vous cherchez un support APISIX ?

Apache APISIX est une passerelle API cloud-native open-source, dynamique, évolutive et haute performance pour toutes vos API et microservices. Donné à la Fondation Apache Software par API7.ai, APISIX est devenu un projet open-source de premier plan d'Apache.

Vous voulez accélérer votre développement avec confiance comme Junrunrenli Ressources Humaines ? Pour maximiser le support APISIX, vous avez besoin d'API7. Nous fournissons un support approfondi pour APISIX et des solutions de gestion d'API basées sur vos besoins !

Contactez-nous quand vous voulez : https://api7.ai/contact.

Tags: