Essence Securities adopte APISIX comme passerelle API pour la transformation cloud-native

Yonghui Lu

January 13, 2023

Case Study

Cet article est issu de la présentation donnée par Yonghui Lu, Directeur de la passerelle API chez Essence Securities, lors de l'ApacheCon Asia 2022. Yonghui a partagé les pratiques de la passerelle API cloud-native d'Essence Securities basée sur Apache APISIX.

Aperçu

Défis

  • La pile technologique d'origine était complexe, composée de NGINX, Spring Cloud Gateway et de systèmes développés en interne.
  • Difficulté de gestion du système en raison de l'absence d'une pile technologique unifiée.
  • Travail redondant et coûts élevés dans divers projets métiers.

Objectifs

  • Cloud-native et facile à intégrer avec les systèmes métiers d'Essence Securities.
  • Gérer le déploiement, la surveillance et les alertes.
  • Haute performance et capacité de mise à l'échelle.
  • Personnalisation des fonctions et intégration rapide avec les systèmes.
  • Activer des fonctions puissantes et variées comme la gouvernance du trafic, la sécurité, la conversion de protocole, l'autorisation, l'authentification, etc.

Résultats

  • Promotion de la gouvernance du trafic, gestion sécurisée des pics de trafic.
  • Amélioration de l'efficacité et de la commodité de la R&D.
  • Renforcement du développement cloud-native d'Essence Securities.
  • Amélioration de la sécurité des données et de la gestion des permissions en établissant des domaines indépendants.

À propos d'Essence Securities

Essence Securities Co., Ltd. (Essence Securities) est l'une des principales sociétés de valeurs mobilières en Chine. Depuis sa création en 2006, Essence Securities est rapidement devenue l'une des 15 premières sociétés de valeurs mobilières de Chine avec un historique éprouvé de services de haute qualité pour les secteurs privé et public. Elle compte quatre filiales indépendantes et plus de 120 succursales de détail dans 25 provinces majeures à travers le pays.

Les activités principales d'Essence Securities vont du courtage en valeurs mobilières, au conseil en investissement, aux services de conseil financier liés aux transactions et investissements en valeurs mobilières, à la souscription et au parrainage de valeurs mobilières, à l'investissement en valeurs mobilières et à la gestion d'actifs, ainsi qu'à d'autres activités approuvées par la Commission de régulation des valeurs mobilières de Chine.

Pourquoi choisir APISIX ?

Depuis 2021, Essence Securities a commencé à migrer ses applications vers le cloud et a lancé un plan de passerelle API. En 2022, elle a commencé à s'engager dans la mise en place d'une passerelle API. Après une comparaison minutieuse, Essence Securities a choisi Apache APISIX parmi une large gamme de solutions de passerelle API pour plusieurs avantages cruciaux :

Haute Performance

Les sociétés de valeurs mobilières ont une caractéristique typique : il y aura des pics de trafic pendant les heures de pointe. Apache APISIX est la passerelle API la plus performante avec un QPS mono-core de 23 000, avec une latence moyenne de seulement 0,6 millisecondes.

"Nous avons besoin que la passerelle API puisse gérer les pics de trafic, et qu'elle ne devienne pas notre prochain goulot d'étranglement. Après avoir comparé certaines passerelles API basées sur OpenResty ou d'autres piles technologiques, Apache APISIX se distingue par son avantage concurrentiel en termes de haute performance et peut répondre à nos exigences pour une passerelle API." a déclaré Yonghui.

Évolutif et Convivial pour les Développeurs

APISIX offre à ses utilisateurs des fonctions riches. Chez Essence Securities, la limitation de débit, le disjoncteur, l'autorisation et l'authentification, ainsi que la mise en production progressive sont les plus utilisés.

Pour cela, Essence Securities a développé en interne certains plugins pour répondre aux besoins internes des groupes métiers. APISIX prend officiellement en charge de nombreux langages de programmation, notamment Java, Golang, Python et Lua. En restant cohérent avec la communauté, Essence Securities a choisi Lua. En conséquence, tout le processus de développement s'est déroulé très facilement. Essence Securities envisage également de contribuer ses plugins développés en interne à la communauté.

Scénarios de Machines Virtuelles et de Conteneurs

Actuellement, la migration des applications vers le cloud est une stratégie cruciale pour Essence Securities. Cependant, il existe encore de nombreux scénarios déployés sur des machines virtuelles.

"Nous devons prendre en compte la compatibilité de ces applications dans les deux états lors de la sélection de la passerelle API, bien que notre plan soit davantage axé sur les conteneurs. APISIX offre un grand soutien dans la compatibilité des scénarios." a déclaré Yonghui.

Piste de Développement Cloud-Native

Apache APISIX est remarquable dans le support des scénarios cloud-native, tandis qu'Essence Securities suit la tendance cloud-native. En utilisant APISIX, APISIX Ingress Controller et Service Mesh, Essence Securities attend également avec impatience les nouvelles avancées et le développement d'APISIX.

Communauté Active

En tant que projet open-source, APISIX est actif dans sa communauté. Les problèmes peuvent être discutés et résolus à temps. En 2022, près de 40 événements communautaires APISIX en personne et en ligne ont été organisés par APISIX. Les personnes familières avec APISIX sont toutes enthousiastes à propos de ces activités.

Comment Essence Securities bénéficie-t-elle de l'utilisation d'APISIX ?

Voici l'architecture de microservices d'Essence Securities, couramment vue dans les scénarios cloud-native.

architecture des exemples d'API fintech

  • Autorité et Authentification : Avant d'utiliser APISIX, l'autorité et l'authentification étaient contrôlées par plusieurs microservices, ce qui entraînait beaucoup de travail de développement redondant.

  • Gouvernance du Trafic : Essence Securities a réalisé la gouvernance du trafic en s'intégrant à APISIX, parmi lesquels les scénarios les plus typiques sont la limitation de débit et la mise en production progressive. Avant d'utiliser APISIX, ces fonctions étaient réalisées par NGINX, ce qui nécessitait de modifier la configuration et de redémarrer les nœuds. En revanche, le tableau de bord visible d'APISIX et sa fonction de rechargement à chaud apportent une commodité significative à la gouvernance du trafic d'Essence Securities.

  • Mise en Production Progressive : APISIX est flexible dans la mise en production progressive, qui peut être réalisée par portion et caractéristiques de trafic, couvrant l'en-tête de la requête, le paramètre de la requête, le cookie, etc. Par exemple, Essence Securities doit rediriger le trafic utilisateur vers les serveurs de version de mise en production progressive par ID utilisateur.

  • Observabilité : Auparavant, Essence Securities devait réaliser la gestion observable par des métriques, des traces et des logs. Il est difficile de réaliser une gouvernance multi-dimensionnelle. Cependant, en activant simplement trois plugins avec des configurations simples, le même effet peut être obtenu après avoir utilisé APISIX. Quel progrès remarquable !

Innovations Basées sur APISIX

Authentification Unique CAS

Essence Securities utilise CAS (Central Authentication Service) comme méthode d'authentification standard, ce qui est adapté pour placer l'authentification sur la passerelle.

Essence Securities étend APISIX et ajoute une nouvelle fonction, l'authentification unique CAS. Il y a plusieurs avantages à le faire.

Placer CAS sur la couche de passerelle permet d'accéder à CAS et d'introduire ses fonctions facilement. Par exemple, il existe des services de certification unifiés pour récupérer les informations des utilisateurs.

De plus, CAS définit les informations de l'utilisateur dans l'en-tête de la requête et les transmet au service en amont pour sauvegarder l'état de connexion de l'utilisateur. Ainsi, il n'est pas nécessaire de se connecter à d'autres systèmes de manière répétée, ce qui permet d'économiser beaucoup de temps aux utilisateurs et d'améliorer la commodité.

plugin d'authentification unique d'Essence Securities

Plugin d'authentification authz - casbin

Le plugin d'authentification authz-casbin d'APISIX est un plugin d'autorisation basé sur Lua Casbin. Ce plugin prend en charge des scénarios d'autorisation puissants basés sur le modèle RBAC (contrôle d'accès basé sur les rôles).

Il prend en charge le stockage de fichiers CSV, la configuration des plugins APISIX et le stockage des politiques en configurant les métadonnées.

Voici un exemple.

exemple de code de la meilleure passerelle API fintech

Chez Essence Securities, il existe un concept important : le domaine. Les utilisateurs auront des permissions différentes dans divers domaines. Par exemple, l'employé A est un gestionnaire du domaine A mais pourrait n'être qu'un observateur dans le domaine B.

gouvernance du trafic de la passerelle API fintech

Lors de la définition des requêtes, des politiques et des rôles, le domaine doit être spécifié. Par conséquent, Essence Securities a modifié le casbin pour correspondre à un tel scénario. Le plugin s'appuie sur le référentiel Lua, qui prend en charge RBAC avec des domaines. Par conséquent, l'exigence ci-dessus peut être satisfaite simplement en appelant l'interface correspondante du référentiel Lua, ce qui est très facile. Cette méthode peut grandement améliorer la sécurité des données et la gestion des permissions.

Observabilité

APISIX fournit une surveillance multi-dimensionnelle telle que les métriques, les traces et la collecte de logs. Toutes ces fonctions peuvent être réalisées par des configurations simples.

Après avoir activé le plugin Prometheus, des métriques comme le délai de requête, la bande passante et le taux de transmission du code d'état HTTP peuvent être observables. Ces informations peuvent être utiles pour le dépannage.

En ce qui concerne l'analyse des traces, lorsque le service en amont est connecté à Skywalking, la trace complète des appels peut être suivie une fois Skywalking activé.

Essence Securities prévoit d'exploiter davantage la valeur de la collecte de logs. Pousser les logs d'accès vers kafka peut aider Essence Securities à analyser et à compter les données.

Plan Futur

Multi-location

Auparavant, les systèmes d'Essence Securities avaient leurs clusters indépendants pour réduire les risques d'erreur et séparer les informations des utilisateurs. Apache APISIX utilise etcd pour son centre de configuration, ce qui est adapté à l'étape actuelle.

Les clusters partagés sont utiles pour la gestion unifiée des ressources et l'amélioration de l'efficacité de l'O&M. Essence Securities combinerait les clusters indépendants avec la multi-location pour amplifier ses capacités de gestion.

Marketplace d'Applications

Essence Securities fournirait de nombreux microservices en tant que produits aux utilisateurs, tels que les plateformes de journalisation, de surveillance, d'alerte et de centre de données, dont la gestion centralisée peut être réalisée par APISIX.

Après l'introduction de la couche de passerelle, de nombreuses gouvernances de passerelle API ont été ajoutées, comme l'authentification, l'autorisation et la gouvernance du trafic.

Surveillance des Données Observables

Le plugin kafka-logger d'APISIX peut aider Essence Securities à pousser les logs d'accès de la passerelle vers kafka. Kafka peut nettoyer, formater et compter les informations, puis obtenir des statistiques plus précieuses, telles que les Top N des appels, les requêtes anormales et les délais de requête.

"Ou nous pouvons obtenir la distribution des codes d'état, la distribution des IP clients, les statistiques de trafic, les heures de pointe et de creux de trafic, la détection de trafic anormal, etc. Cette partie est d'une grande importance pour étendre les capacités observables de notre système." a déclaré Yonghui.

Essence Securities attend également avec impatience plus de coopération avec APISIX Ingress Controller et Service Mesh.

Vous Cherchez un Soutien 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 Essence Securities ? Pour maximiser le soutien d'APISIX, vous avez besoin d'API7. Nous fournissons un soutien approfondi pour APISIX et des solutions de gestion d'API basées sur vos besoins !

Contactez-nous dès maintenant : https://api7.ai/contact.

Tags: