Apache APISIX permet à WPS Office de gérer des millions de QPS avec facilité

Yilia Lin

Yilia Lin

September 28, 2021

Case Study

Aperçu

À propos de Kingsoft et WPS Office

Kingsoft Office est une filiale de Kingsoft, une entreprise leader en logiciels et services Internet basée en Chine et cotée à la bourse de Hong Kong. Le produit phare — WPS Office — est une suite bureautique tout-en-un qui inclut Writer, Spreadsheet, Presentation et PDF pour gérer les tâches de bureau. En 2022, WPS Office a atteint plus de 494 millions d'utilisateurs actifs mensuels et plus de 1,2 milliard d'installations.

Initialement, Kingsoft utilisait NGINX comme passerelle API pour résoudre les défis opérationnels. La version originale ne disposait que de fonctionnalités essentielles telles que la gestion dynamique des serveurs en amont, la fonctionnalité de liste noire et le pare-feu d'applications web (WAF). Cependant, à mesure que les exigences se sont élargies, Kingsoft Office a entrepris de rechercher des solutions alternatives de passerelle API qui pourraient mieux répondre à leurs besoins évolutifs.

Défis

  • Le système précédent avait des limites pour répondre aux besoins opérationnels et de maintenance fondamentaux, manquant de capacité à évoluer dynamiquement.
  • Le système gère un volume important de trafic et nécessite une passerelle API robuste pour des performances optimales.
  • Il manquait la capacité de charger dynamiquement les modifications, nécessitant un rechargement pour que les modifications prennent effet.

Résultats

  • Mise en œuvre d'une solution offrant des mises à jour dynamiques à haute performance et à faible latence, permettant une personnalisation et une extension fluides.
  • Augmentation significative de la capacité du système à gérer facilement des millions de requêtes par seconde (QPS), assurant une stabilité commerciale inébranlable.
  • Mise en place réussie de mesures de haute disponibilité et amélioration de la sécurité du système pour protéger les opérations critiques.

Contexte

Dans les premières phases, Kingsoft Office a utilisé une passerelle API pour résoudre les problèmes opérationnels, et ils ont développé leur propre solution basée sur OpenResty et Lua. Cette solution permettait des fonctionnalités de gestion dynamique des serveurs en amont, la fonctionnalité de liste noire et le pare-feu d'applications web (WAF). Cependant, il y avait quelques inconvénients dans la phase 1.0.

Par exemple,

  • Seul le serveur en amont était dynamique
  • Un rechargement était nécessaire pour mettre à jour et refléter les nouveaux noms de domaine, ce qui alourdissait la tâche de l'équipe pour changer les nouveaux domaines et routes quotidiennement
  • L'architecture sous-jacente était conçue pour une gestion et une exploitation efficaces, mais elle était simpliste avec des fonctionnalités et une évolutivité limitées

Simultanément, à mesure que leur activité se développait, Kingsoft a été confronté à un nombre croissant d'exigences pour les fonctionnalités de la passerelle API. Par conséquent, ils ont commencé à rechercher une nouvelle solution de passerelle API.

Pourquoi Kingsoft Office a choisi APISIX ?

Fin 2019, lorsque Kingsoft Office a commencé à rechercher des produits de passerelle API, il y avait de nombreux choix populaires. Cependant, des tests ultérieurs ont révélé que les performances des passerelles API évaluées ne répondaient pas à leurs exigences.

Cherchant une solution plus robuste, Kingsoft Office a approfondi ses recherches, et c'est à ce moment-là qu'ils ont découvert Apache APISIX.

Certaines autres passerelles API reposaient sur PostgreSQL comme centre de configuration, ce qui signifiait que la mise à jour des routes ne pouvait être réalisée que par des méthodes non pilotées par événements, nécessitant le rechargement des routes sur chaque nœud.

Kingsoft Office a choisi APISIX en se basant sur trois considérations clés : la performance, l'architecture technique et la communauté.

Architecture technique d'APISIX

1. Performance ultra-élevée

Apache APISIX offre les meilleures performances parmi les autres passerelles API avec un QPS monococe de 18 000 et une latence moyenne de 0,2 ms. Des tests rigoureux et des benchmarks au sein de Kingsoft Office ont confirmé de manière constante la performance supérieure d'APISIX, assurant que Kingsoft Office pouvait gérer des charges élevées et offrir des expériences utilisateur optimales.

2. Architecture évolutive, résiliente et à haute disponibilité

APISIX, utilisant etcd comme centre de configuration, permet une gestion dynamique et efficace des routes, des plugins et d'autres composants critiques. Ce magasin de clés-valeurs distribué a renforcé la flexibilité d'APISIX, permettant des mises à jour fluides et réduisant la charge opérationnelle associée aux changements de configuration manuels. Avec Apache APISIX, Kingsoft Office pouvait profiter de l'approche pilotée par événements, éliminant le besoin de rechargement manuel des routes sur les nœuds individuels.

3. Communauté active et solidaire

Kingsoft Office a reconnu la valeur d'une communauté dynamique et solidaire pour stimuler l'innovation et fournir des ressources. APISIX bénéficiait d'une communauté active et engagée qui contribuait à son développement, partageait les meilleures pratiques et offrait de l'assistance. Cet environnement communautaire favorisait l'innovation et la collaboration, s'alignant parfaitement sur l'engagement de Kingsoft Office à rester à la pointe des avancées technologiques.

Architecture etcd optimisée chez Kingsoft Office

En raison des nombreuses configurations statiques NGINX dans l'architecture originale chez Kingsoft Office, l'équipe a choisi de ne pas utiliser l'interface en ligne de commande d'APISIX pour générer automatiquement les configurations. Au lieu de cela, ils ont utilisé Apache APISIX comme solution de secours et ont migré progressivement les configurations vers APISIX, assurant une transition fluide.

Lors de la mise en œuvre, l'équipe de Kingsoft Office a effectué quelques personnalisations basées sur APISIX, comme l'optimisation de l'architecture etcd. En général, plusieurs machines sont impliquées dans l'architecture de la passerelle API au sein des entreprises, parfois des centaines. De plus, le nombre de workers alourdit la charge des machines.

Par conséquent, lorsque plusieurs machines surveillent la même clé, cela exerce une pression importante sur etcd. Dans de telles circonstances, pour la cohérence des données, etcd exige que tous les événements soient renvoyés aux requêtes d'écoute avant de traiter de nouvelles requêtes. Lorsque plusieurs machines écoutent simultanément, il y a des problèmes comme des délais d'attente d'etcd et des erreurs de surcharge.

Pour résoudre ce problème, Kingsoft Office a développé un proxy etcd, comme illustré dans la partie droite du diagramme d'architecture ci-dessous. Fonctionnant entre Apache APISIX et etcd, le proxy etcd surveille les clés et renvoie les résultats à Apache APISIX après les avoir reçus. Depuis la version 3.2 d'APISIX, le nombre de connexions n'est plus affecté par les ressources, réduisant considérablement la pression sur etcd.

Architecture etcd optimisée chez Kingsoft Office

De plus, à mesure que l'entreprise se développe, le nombre de routes augmente également. Lorsque les routes sont fréquemment mises à jour, la passerelle subit une augmentation de l'utilisation du CPU et des pertes de paquets. L'équipe de Kingsoft Office a résolu le problème de l'inefficacité de l'utilisation de table.sort dans les environnements de code Lua. Apache APISIX a également résolu ce problème dans ses versions mises à jour.

Avantages après l'adoption d'APISIX

1. Gestion facile de millions de QPS

Au niveau commercial, Kingsoft Office opère un écosystème complexe composé de milliers de services méticuleusement conteneurisés et déployés sur une plateforme cloud-native interne. Dans cet environnement dynamique, Apache APISIX joue un rôle central en tant que passerelle principale, facilitant une communication et une interaction fluides entre les différents services et utilisateurs. Spécifiquement adapté aux besoins du département Middle Platform, APISIX gère efficacement le flux massif de requêtes, gérant facilement des millions de requêtes par seconde avec une précision et une fiabilité remarquables.

2. Gestion d'API évolutive et flexible

En adoptant APISIX, Kingsoft Office a dépassé les limites de ses solutions précédentes de gestion d'API, atteignant une évolutivité et une flexibilité qui ont jeté les bases d'une croissance et d'une innovation futures.

En migrant vers APISIX, Kingsoft Office a acquis la capacité de faire évoluer son infrastructure API pour répondre aux demandes d'une base d'utilisateurs en expansion rapide et d'un paysage commercial en évolution. L'architecture modulaire d'APISIX a permis une intégration fluide avec les systèmes et services existants, permettant à l'entreprise d'étendre ses capacités de gestion d'API sans perturber les opérations en cours.

De plus, APISIX a doté Kingsoft Office d'une flexibilité inégalée dans la gestion des API, offrant un contrôle granulaire sur le routage, le trafic et les politiques d'authentification. Cette nouvelle flexibilité a permis à l'entreprise d'adapter ses stratégies de gestion d'API à des cas d'utilisation spécifiques, optimisant les performances et améliorant l'expérience utilisateur.

3. Amélioration de la haute disponibilité et de la sécurité du système

En outre, Kingsoft Office a mis en œuvre plusieurs fonctionnalités pour améliorer la haute disponibilité et la sécurité du système, y compris la distribution proportionnelle du trafic sur plusieurs centres de données et une fonctionnalité de blocage de route en un clic.

En configurant des proportions, la distribution du trafic ou des requêtes sur différents centres de données est optimisée en fonction de ratios prédéfinis. Cela garantit une utilisation efficace des ressources du système et atténue l'impact des défaillances dans un seul centre de données, résultant en un équilibrage de charge, une disponibilité améliorée du système et une tolérance aux pannes accrue.

En cas de problèmes avec une route spécifique ou de besoin de blocage temporaire, les administrateurs peuvent rapidement utiliser la fonctionnalité de blocage de route en un clic pour arrêter instantanément la transmission du trafic ou l'accès pour cette route particulière. Cela protège le système contre les activités malveillantes tout en offrant une approche fluide et pratique pour gérer le trafic réseau et les routes.

Conclusion

Lors de l'application pratique, l'équipe de Kingsoft Office a découvert la flexibilité et la puissance exceptionnelles d'Apache APISIX. La stabilité et la fiabilité d'APISIX ont gagné la confiance de Kingsoft Office, tandis que sa capacité à accueillir des modifications de plugins et des compilations personnalisées offre une ample marge de personnalisation.

L'équipe suit attentivement les changements de produits d'APISIX, assurant que leur version reste synchronisée avec les dernières mises à jour. Avec APISIX en place, Kingsoft Office gère facilement des millions de requêtes par seconde, démontrant la robustesse de la solution et sa capacité à répondre aux demandes d'une base d'utilisateurs en expansion rapide. En adoptant Apache APISIX, Kingsoft Office répond efficacement à ses besoins évolutifs, améliore l'efficacité opérationnelle et se positionne pour une croissance future dans le paysage dynamique des produits de réseau.

Tags: