APISIX améliore les performances du système pour DataVisor
January 23, 2024
Aperçu
À propos de DataVisor
DataVisor est spécialisé dans les plateformes de gestion des fraudes et des risques, permettant aux organisations de contrer dynamiquement les attaques frauduleuses en évolution et de gérer les risques de manière proactive en temps réel. Sa vaste gamme de solutions intègre une technologie de machine learning brevetée, une intelligence native des appareils et un moteur de décision robuste pour assurer une protection tout au long du cycle de vie du client, couvrant divers secteurs et cas d'utilisation. DataVisor occupe une position de premier plan dans l'industrie et est largement adopté par les entreprises Fortune 500 à travers le monde.
Défis
-
DataVisor est confronté à la tâche critique de garantir l'exécution efficace des calculs de contrôle des risques pour prévenir les risques potentiels.
-
Trouver un équilibre entre la sécurité et la préservation d'une excellente expérience utilisateur représente un défi pour DataVisor.
-
Le choix d'un outil de passerelle API stable et à faible latence est crucial pour DataVisor afin de maintenir un fonctionnement fluide du système.
Résultats
-
En utilisant APISIX, DataVisor a rationalisé ses opérations, obtenant une flexibilité accrue grâce à l'encapsulation de plugins spécifiques.
-
APISIX se distingue par sa capacité à réduire considérablement la latence pour DataVisor, ce qui entraîne des temps de traitement plus courts pour les requêtes des utilisateurs.
-
DataVisor a réussi à traiter des requêtes à grande échelle, assurant la stabilité et la fiabilité du système sous des charges élevées avec APISIX, fournissant une base solide pour gérer les pics de trafic utilisateur.
Contexte
Le domaine de la gestion des risques traite des volumes importants de données sensibles et d'informations de transaction, nécessitant des mesures de sécurité renforcées pour se prémunir contre les cyberattaques potentielles et les violations de données. Par conséquent, comme la plupart des entreprises de gestion des risques, DataVisor a besoin d'une solution pour la gestion des passerelles afin d'assurer la sécurité et l'efficacité.
Dans le développement de produits, DataVisor a adopté une solution complète pour la passerelle et l'authentification. APISIX n'est pas seulement un composant autonome dans l'écosystème du produit ; il collabore avec d'autres produits comme AWS API Gateway, Application Load Balancer (ALB), Imperva et un mécanisme d'authentification OAuth intégré. Tous ces outils, chacun équipé de fonctionnalités de passerelle, travaillent ensemble pour faciliter l'accès au trafic au sein du système de DataVisor.
Points de douleur avant l'utilisation d'APISIX
Dans le paysage pré-APISIX, DataVisor a rencontré des défis importants dans l'industrie du contrôle des risques, mettant en évidence le besoin impératif d'une solution transformative pour améliorer l'efficacité et la résilience.
-
Pression sur les performances : Dans l'industrie du contrôle des risques, où les métriques de performance sont cruciales, DataVisor est confronté au défi de garantir l'exécution rapide et efficace des calculs de contrôle des risques. Des retards dans ces calculs pourraient entraîner une perte de contrôle sur les risques potentiels dans cet environnement compétitif et risqué.
-
Équilibre entre sécurité et expérience utilisateur : L'objectif principal des tâches de contrôle des risques est d'intercepter les actions utilisateur potentiellement nuisibles tout en préservant une expérience utilisateur fluide. Le système de DataVisor doit assurer la sécurité des utilisateurs sans compromettre le flux naturel des interactions utilisateur, ce qui représente un équilibre difficile à atteindre.
-
Difficulté avec les outils de passerelle répondant aux exigences : De nombreux outils de passerelle API sur le marché rencontrent des problèmes comme une latence élevée ou des performances erratiques. De tels défis peuvent affecter la stabilité et la disponibilité du système de DataVisor, en particulier lorsque la gestion efficace du trafic commercial est cruciale. Par conséquent, choisir un outil de passerelle API stable et à faible latence est essentiel pour maintenir le bon fonctionnement du système.
Pourquoi APISIX
Lors de la décision d'une solution pour la configuration de production de l'entreprise, DataVisor a soigneusement comparé les options et a opté pour APISIX pour plusieurs raisons :
-
Rentabilité : Par rapport aux passerelles d'application de base des fournisseurs de cloud (comme ALB), APISIX offre des économies significatives pour nos opérations.
-
Haute performance, faible latence : APISIX se distingue par ses performances exceptionnelles. Contrairement à d'autres outils de passerelle API, APISIX non seulement évite les retards notables, mais est également moins sujet aux pics de performance, tels que P99 ou P9999, ce qui garantit une expérience plus fluide sans problèmes de latence significatifs.
-
Concentration sur l'industrie spécifique : Dans le domaine du contrôle des risques, notre système commercial nécessite un temps de calcul rapide du contrôle des risques de 50 millisecondes. Ne pas terminer ce calcul rapidement entraîne le rejet immédiat du résultat du contrôle des risques. L'objectif principal du contrôle des risques est d'intercepter les actions utilisateur potentiellement nuisibles sans perturber leurs activités normales.
Mise en œuvre d'APISIX
Actuellement, DataVisor étend l'utilisation d'APISIX à un nombre croissant de scénarios commerciaux.
Étant donné que DataVisor ne s'engage pas dans des activités commerciales directes et sert principalement divers fournisseurs qui utilisent nos services, APISIX agit comme la passerelle pour le trafic déployé sur le réseau public. Cette approche de déploiement peut sembler quelque peu inhabituelle dans des scénarios pratiques. Typiquement, APISIX pourrait être situé sur un intranet ou une couche en dessous du réseau public. Cependant, la stratégie de l'entreprise de le déployer directement sur le réseau public permet à APISIX de gérer efficacement le trafic provenant de divers canaux commerciaux.
Pour offrir une compréhension plus concrète de la manière dont nous mettons en œuvre APISIX dans notre environnement de production, un cas d'utilisation typique est présenté ci-dessous.
Le client A initie l'accès à notre système via la route rouge pour obtenir un jeton d'accès d'autorisation. Ensuite, il interagit avec le serveur d'autorisation interne de DataVisor ou se connecte à d'autres serveurs d'autorisation, comme Okta, largement utilisé, via APISIX. Le mécanisme d'authentification principal de l'entreprise consiste à acheminer tout le trafic vers Okta pour le processus d'authentification initial.
Une fois que les clients obtiennent différents jetons, les capacités de routage d'APISIX dirigeront ce trafic authentifié vers divers clusters Kubernetes. Actuellement, DataVisor a déployé un cluster Kubernetes actif-actif, avec le trafic étant acheminé vers le cluster A ou le cluster B. Typiquement, il dirige le trafic vers un cluster Kubernetes, tandis que l'autre sert de réserve, ne traitant le trafic que lors de mises à niveau importantes ou de mises à jour de cluster.
En ce qui concerne l'utilisation de la passerelle, DataVisor a opté pour une approche de déploiement relativement simple et standard. Une observation intéressante est que DataVisor peut placer APISIX en dehors de notre cluster Kubernetes. Cette étape est rendue possible par les performances exceptionnelles d'APISIX, nécessitant des ressources CPU minimales. L'utilisation de petites instances en dehors du cluster pour déployer APISIX s'est avérée efficace pour gérer un trafic réseau important.
Dans le cadre de production de DataVisor, l'entreprise a déployé trois nœuds APISIX, chacun potentiellement configuré avec seulement deux cœurs. Elle a également utilisé des mini-ordinateurs avec 2G ou 4G de mémoire pour gérer la charge de trafic. Selon le développeur de DataVisor, les performances d'APISIX devraient rivaliser avec celles de NGINX et OpenResty, et peut-être même dépasser ses attentes initiales.
Personnalisation d'APISIX
Amélioration du processus privilégié
Bien qu'il n'y ait pas de concept de processus privilégié dans NGINX, il est présent dans OpenResty, où il se situe au même niveau que les processus worker. Ce processus est quelque peu spécial car il ne gère pas le trafic réseau entrant—il n'écoute sur aucun port. Cependant, il peut effectuer diverses tâches de calcul et de collecte de données. Par conséquent, DataVisor a étendu ce processus privilégié pour répondre à leurs besoins spécifiques.
Le diagramme ci-dessus fournit un aperçu clair de la relation entre APISIX et les services backend de DataVisor. L'utilisation principale d'APISIX par l'entreprise est pour la réception et la distribution du trafic.
Au niveau de la passerelle, APISIX effectue un prétraitement avant que le trafic n'entre. Ce qui distingue la configuration de DataVisor est l'introduction d'un petit processus au niveau d'APISIX. Ce processus, fonctionnant comme un Sidecar, opère simultanément avec le processus APISIX, qui est responsable de l'exécution de ses tâches désignées. Après cette étape, il transmet les données collectées à APISIX, qui, à son tour, les transmet à la couche supérieure du système pour exécuter des règles commerciales spécifiques. Bien que ce modèle d'utilisation soit relativement rare et généralement non rencontré dans des scénarios commerciaux courants, il peut être applicable dans le contrôle des risques.
Comment la mise en œuvre du processus privilégié est-elle gérée ? Le modèle de DataVisor suit généralement une structure maître-worker, avec les processus worker responsables de la gestion du trafic commercial et le processus maître créant un processus privilégié unique. Dans leur développement, ils limitent le processus privilégié à un seul. Ainsi, DataVisor a conçu une stratégie distincte : dans le processus privilégié, ils créent un autre processus pour gérer des tâches supplémentaires, s'assurant qu'il n'interfère pas avec les responsabilités exigeantes du processus privilégié.
Pour la collecte de données, la communication entre le processus privilégié et les processus worker est facilitée par un shared-dict. Les performances du shared-dict sont particulièrement robustes, répondant aux exigences de la majorité des scénarios.
Développement de plugins
En raison des modifications apportées par DataVisor à APISIX, de nombreuses fonctionnalités du produit encapsulé sont intégrées en profondeur dans le projet, rendant les ajustements dynamiques difficiles. Par conséquent, DataVisor a choisi d'encapsuler des plugins spécifiques, de les intégrer dans le projet APISIX, puis de les modifier à l'aide du Dashboard.
Le processus de développement de plugins avec APISIX est très pratique et facilite la création facile de plugins haute performance. Actuellement, APISIX prend en charge Lua pour le développement de plugins et plusieurs langages de programmation tels que Java, Go et Python. Cette polyvalence permet aux utilisateurs de mettre en œuvre une grande variété de fonctionnalités.
Réalisations après l'utilisation d'APISIX
Le déploiement d'APISIX a entraîné une amélioration globale des performances du système de DataVisor, produisant des résultats de production exceptionnels.
-
Réduction de la latence : L'une des caractéristiques marquantes d'APISIX est sa capacité remarquable à réduire considérablement la latence. Par rapport à d'autres solutions, DataVisor a observé des temps de traitement plus courts pour les requêtes des utilisateurs, un facteur critique pour offrir une meilleure expérience utilisateur.
-
Augmentation du débit : L'introduction d'APISIX a entraîné une augmentation significative du débit, permettant au système de gérer les requêtes concurrentes avec une plus grande efficacité. Contrairement à l'utilisation d'autres produits de passerelle API, DataVisor a réussi à traiter des requêtes à grande échelle, assurant la stabilité et la fiabilité du système sous des charges élevées grâce à APISIX. Ce résultat consolide une base fiable pour gérer les pics de trafic utilisateur.
- Maîtrise facile et multilingue des plugins : Le développement de plugins avec APISIX est exceptionnellement convivial, permettant la création fluide de plugins haute performance. De plus, APISIX prend en charge Lua pour le développement de plugins et divers langages de programmation, y compris Java, Go et Python. Cette polyvalence offre aux utilisateurs la capacité de mettre en œuvre une large gamme de fonctionnalités, ce qui a amélioré l'expérience de développement de DataVisor et a permis aux utilisateurs de tirer parti de leur expertise existante.
Résumé
En résumé, l'expérience d'application de DataVisor avec APISIX est remarquable. En utilisant APISIX, DataVisor a rationalisé ses opérations et assuré la stabilité du système et des temps de traitement plus rapides pour les requêtes à grande échelle. De plus, APISIX a fourni à DataVisor un environnement convivial pour les développeurs, permettant la création, la personnalisation et l'optimisation de plugins haute performance avec facilité. Ces expériences, réussies à la fois dans la mise en œuvre technique et dans l'établissement d'une base solide, contribuent à la résilience de DataVisor dans l'industrie du contrôle des risques.