APISIX renforce le réseau d'un important fournisseur de services cloud CDN

Jing Yan

Jing Yan

January 31, 2023

Case Study

Aperçu

À propos d'UPYUN

UPYUN, un fournisseur leader de services cloud pour les entreprises chinoises, se spécialise dans les solutions CDN (Content Delivery Network) basées sur des scénarios. Avec 10 centres de traitement de données, plus de 1000 nœuds CDN domestiques, près de 100 nœuds CDN mondiaux, 40 000 serveurs et 10 To de bande passante réservée, UPYUN propose des solutions sécurisées pour divers scénarios, traitant un volume quotidien de requêtes dépassant les 150 milliards.

Défis

  • UPYUN a rencontré des difficultés pour gérer les connexions de trafic avec Kong, qui fonctionnait comme sa passerelle pour le réseau public.

  • En ce qui concerne le contrôleur d'entrée, Ingress-Nginx posait des problèmes à UPYUN, notamment des dépendances complexes entre composants, une portabilité médiocre et des capacités sémantiques faibles, ce qui rendait la maintenance de la passerelle difficile.

Résultats

  • APISIX se distingue dans la gestion du trafic, répondant aux besoins de sauvegarde et de répartition de charge grâce à sa capacité de routage dynamique. UPYUN a également amélioré l'uniformité des composants avec l'aide d'APISIX, ce qui a accru l'efficacité du traitement du trafic et de la journalisation.

  • Grâce à l'utilisation des plugins d'APISIX, UPYUN a réussi à mettre en œuvre l'authentification des employés et l'intégration avec Lark, améliorant ainsi la fonctionnalité de sa passerelle pour le réseau public.

  • APISIX a amélioré la surveillance et les contrôles de santé du système d'UPYUN en prenant en charge Prometheus et SkyWalking.

Contexte

Caractéristiques de l'activité d'UPYUN

Les passerelles sont indispensables dans l'écosystème d'activité d'UPYUN. Elles peuvent coordonner, optimiser et assurer le bon fonctionnement de divers services, fournissant à UPYUN des solutions efficaces, sécurisées et stables. Par conséquent, UPYUN a travaillé à l'amélioration de son architecture de passerelle interne.

Scénarios d'activité d'UPYUN

En interne, UPYUN utilise APISIX comme passerelle pour le réseau public et comme contrôleur d'entrée.

  • La passerelle pour le réseau public se concentre sur le traitement du trafic internet, servant de passerelle pour les services externes.

  • Le contrôleur d'entrée se spécialise dans la gestion de l'accès externe aux services au sein du cluster Kubernetes, permettant un routage et un contrôle flexibles du trafic grâce à la configuration des ressources d'entrée.

Points de douleur avant l'utilisation d'APISIX

Avant d'adopter APISIX, UPYUN utilisait Kong comme passerelle pour le réseau public et Ingress-Nginx comme contrôleur d'entrée. Cependant, UPYUN a rapidement rencontré plusieurs problèmes.

  • Charge élevée sur les connexions à la base de données : La connexion à la base de données PostgreSQL dans l'architecture Kong chez UPYUN peut entraîner un nombre considérable de connexions, ce qui peut dégrader les performances de la base de données.

  • Complexité dans le contrôle du système de connexion : Malgré l'ajout de proxys à l'avant, UPYUN rencontre des difficultés pour gérer efficacement le système de connexion lors des mises à jour ou des redémarrages du système, ce qui ajoute de la complexité à la maintenance du système.

  • Complexité opérationnelle avec Ingress-Nginx : Ingress-Nginx pose des défis à UPYUN dans le développement de plugins en raison de dépendances complexes, entravant la portabilité et augmentant la complexité du développement et de la maintenance. De plus, il présente des faiblesses dans les capacités sémantiques, affectant la flexibilité pour les scénarios métier complexes. La nécessité d'une opération de rechargement à chaque modification de règle d'entrée introduit des aspects peu conviviaux, en particulier pour les scénarios reposant sur des connexions persistantes.

En naviguant dans les complexités de la maintenance de la logique existante, ces problèmes ont présenté à UPYUN un défi substantiel. Par conséquent, l'équipe a entamé une quête pour des alternatives plus rationalisées et avancées dans les passerelles afin d'améliorer l'efficacité opérationnelle.

Pourquoi UPYUN a choisi APISIX

Flexibilité accrue avec une architecture de plugins robuste

En utilisant le système de plugins d'Apache APISIX, UPYUN a conçu une suite de plugins internes, englobant des fonctionnalités telles que la validation du système de permissions interne et une limitation de débit précise. Cette initiative stratégique a non seulement permis à l'entreprise de personnaliser les fonctionnalités de manière plus adaptable, mais a également enrichi les clusters de passerelles avec un soutien interne diversifié.

Stabilité exceptionnelle

Dans le domaine des opérations basées sur le cloud, la stabilité est primordiale, en particulier pour les petites entreprises ou celles avec une équipe d'opérations limitée. Le choix d'APISIX comme solution de passerelle garantit non seulement une expérience utilisateur stable pour les utilisateurs externes, mais gère également efficacement les coûts opérationnels du déploiement métier interne.

Communauté open source solidaire

Pour l'équipe technique d'UPYUN, la décision de savoir si une passerelle est open source est un facteur clé. APISIX, étant une solution open source, bénéficie du soutien de sa communauté active, assurant des réponses et des résolutions rapides aux bogues signalés.

Scalabilité impressionnante

Contrairement aux logiciels propriétaires, la scalabilité remarquable d'APISIX offre aux développeurs un moyen fluide de s'adapter et d'intégrer. L'extension multilingue d'APISIX, par exemple, permet à UPYUN de créer des fonctionnalités supplémentaires adaptées à leurs besoins métier dans le contexte de l'expansion de l'activité. Cette fonctionnalité améliore considérablement l'efficacité de développement d'UPYUN et apporte une plus grande commodité pour les itérations et la maintenance ultérieures des fonctionnalités.

Intégration fluide et personnalisation rationalisée

UPYUN a intégré Ingress-Nginx dans certains clusters Kubernetes. En l'absence d'un système de plugins dans Ingress-Nginx auparavant, ils ont personnalisé des plugins spécifiques. Avec un chevauchement fonctionnel notable entre Apache APISIX et NGINX dans les passerelles des centres de données internes et des environnements conteneurisés, UPYUN est prêt à remplacer toutes les passerelles conteneurisées Ingress-Nginx précédemment utilisées par le contrôleur d'entrée Apache APISIX. Cette étape vise à harmoniser les composants au niveau de la passerelle, atténuant la redondance potentielle dans les futurs efforts de développement et d'exploitation.

Support amélioré du rechargement

Le contrôleur d'entrée APISIX est livré avec un support de rechargement, élevant l'efficacité opérationnelle à de nouveaux sommets. Cette fonctionnalité permet des mises à jour dynamiques des configurations sans interruption de service, permettant un déploiement rapide et des manœuvres opérationnelles flexibles. Le résultat est une augmentation substantielle de l'efficacité opérationnelle, rationalisant la maintenance du système pour une plus grande commodité et rapidité.

Mise en œuvre d'APISIX

L'architecture actuelle de la passerelle interne d'UPYUN est illustrée dans le diagramme suivant. Le trafic externe est d'abord acheminé via Apache APISIX, puis dirigé vers le contrôleur d'entrée APISIX via APISIX. Enfin, il atteint les services backend pour un traitement métier ultérieur.

Mise_en_œuvre_d'APISIX

Passerelle pour le réseau public

Contrôle du trafic

La passerelle du réseau public agit comme l'entrée principale du trafic externe, assumant une responsabilité importante qui nécessite un contrôle et une gestion précis de chaque flux entrant dans le centre de données interne. Dans cet aspect crucial, APISIX a offert à UPYUN une gamme de services de contrôle du trafic grâce à ses fonctionnalités puissantes.

Pour commencer, la passerelle APISIX a géré le trafic en traitant l'accès API depuis les nœuds de bord CDN. Cette assistance a non seulement aidé à optimiser les performances des nœuds CDN, mais a également jeté les bases d'une gestion du trafic ultérieure. De plus, APISIX a habilement traité le trafic lié aux pages statiques du site officiel et au support technique, démontrant ses capacités polyvalentes de contrôle du trafic. Cette approche ciblée du traitement du trafic a permis à UPYUN de répondre de manière flexible à diverses exigences d'accès, augmentant finalement l'efficacité globale du système.

Authentification d'identité

Les plugins jouent un rôle central chez UPYUN, en particulier dans le contexte de l'accès des employés à la plateforme interne. Actuellement, les employés passent par une authentification utilisant des méthodes telles que l'e-mail et Lark. Grâce au plugin robuste openid-connect d'Apache APISIX, une intégration transparente avec ces plateformes a été réalisée, facilitant une authentification pratique des identités des employés. Cette application innovante a démontré de manière vivante les capacités puissantes des plugins APISIX, fournissant à UPYUN une solution d'authentification d'identité efficace et unifiée pour accéder à la plateforme de gestion.

Coordination intelligente et protection de la sécurité

Dans des scénarios plus spécifiques, UPYUN a exploité le plugin openid-connect en conjonction avec le plugin serverless-post-function pour réaliser une coordination intelligente avec l'application Feishu. Grâce à l'action collaborative de ces plugins, les informations utilisateur pertinentes, comme le nom d'utilisateur, l'e-mail ou l'identifiant unique dans Lark, ont été transmises au service après avoir traversé la passerelle du réseau public. Une fois que la passerelle obtient les informations d'identifiant pertinentes, elle les transmet efficacement au serveur, permettant des fonctionnalités telles que les notifications et mentions de Lark. Notamment, pendant ce processus, le plugin consumer-restriction peut également imposer des restrictions de permissions spécifiques aux utilisateurs, améliorant la sécurité et la contrôlabilité globales du système.

Contrôleur d'entrée

Changement d'architecture interne

Après l'intégration du contrôleur d'entrée Apache APISIX, l'architecture interne d'UPYUN présente désormais la structure suivante.

Architecture_interne_APISIX

Différant du cadre Ingress-Nginx mentionné précédemment, le plan de données de base a été remplacé par un cluster Apache APISIX. Le contrôleur de niveau supérieur surveille activement les changements dans l'API Server, diffusant ensuite les ressources de configuration à travers tous les nœuds du cluster Apache APISIX via etcd.

Comparaison_APISIX

Une distinction cruciale émerge dans la capacité d'Apache APISIX à effectuer des modifications dynamiques de route, le distinguant de la configuration Ingress-Nginx à droite. Dans Apache APISIX, tout le trafic métier entrant converge via un emplacement unifié, avec la sélection de route exécutée via du code Lua. Cette efficacité se traduit par un déploiement de code rationalisé et facile à gérer. En revanche, le fichier de configuration nginx.conf à droite pour Ingress-Nginx est complexe, nécessitant une opération de rechargement pour chaque modification d'Ingress.

Routage dynamique et configuration déclarative

En capitalisant sur la capacité de routage dynamique d'Apache APISIX, le contrôleur d'entrée Apache APISIX a efficacement mis en œuvre ses fonctionnalités. Son rôle principal consiste à surveiller les changements de ressources dans APIServer, à exécuter des transformations méticuleuses de structures de données, des validations et à calculer le DIFF crucial. La dernière étape consiste à appliquer ces changements à l'API Admin d'Apache APISIX. De plus, le contrôleur d'entrée Apache APISIX introduit une solution de haute disponibilité directement via le mécanisme de leader-election de Kubernetes, éliminant le besoin de composants externes.

En termes de configuration déclarative, UPYUN a opté pour la ressource CRD, appréciée pour sa sémantique robuste. Cette approche structurée de configuration des données permet la mise en œuvre de toute capacité prise en charge par Apache APISIX.

Ressource_CRD

Réalisations après l'utilisation d'APISIX

Amélioration de la gestion du trafic

Apache APISIX a considérablement augmenté l'efficacité de gestion du trafic d'UPYUN. Ses mécanismes de sauvegarde robustes et ses capacités exceptionnelles de gestion de la charge de trafic assurent la stabilité d'UPYUN, en particulier lors de la gestion de volumes de trafic importants. Grâce à un contrôle minutieux du trafic, APISIX relève efficacement les défis liés à la sauvegarde et à la gestion du trafic, fournissant à UPYUN un soutien métier fiable et optimisant les performances du système.

Rationalisation de l'intégration et de l'authentification

APISIX excelle dans l'authentification d'identité et l'intégration de plugins. En utilisant le plugin openid-connect, APISIX accueille efficacement diverses méthodes d'authentification, offrant à UPYUN une solution d'authentification d'identité efficace. La fonctionnalité combinée de plugins tels que serverless-post-function et consumer-restriction facilite la transmission intelligente des données et un contrôle d'accès robuste, améliorant considérablement les capacités d'intégration globales du système.

Amélioration de l'efficacité du traitement des logs

En ce qui concerne le traitement des logs, UPYUN a mis en œuvre plusieurs clusters Apache APISIX en interne, assurant une utilisation unifiée à travers les passerelles des centres de données et les passerelles conteneurisées. Cette cohérence établit une logique standardisée pour le traitement et la consommation ultérieurs des logs. Il est à noter que la fonctionnalité robuste d'Apache APISIX pour le plugin de logs. En interne, UPYUN a choisi le Kafka-Logger, un plugin qui prend en charge les formats de logs personnalisés.

Log_APISIX

Optimisation de la surveillance et des contrôles de santé

En ce qui concerne la surveillance, UPYUN utilise des outils comme Prometheus et SkyWalking, avec Prometheus comme option préférée. Fonctionnant comme un proxy fondamental, Apache APISIX peut surveiller les codes d'état des applications et les requêtes.

Résumé

En tant qu'acteur majeur dans le secteur des services cloud CDN, UPYUN a intégré Apache APISIX dans son infrastructure, en particulier dans la passerelle pour son réseau public et le contrôleur d'entrée. Le système de plugins robuste et les capacités exceptionnelles de gestion du trafic d'APISIX ont joué un rôle important dans l'amélioration significative de la qualité et de l'efficacité opérationnelles d'UPYUN.

En regardant vers l'avenir, UPYUN anticipe une collaboration accrue avec APISIX pour renforcer le CDN basé sur des scénarios, offrant une suite de services incluant le stockage cloud, le traitement cloud, la sécurité cloud et le marketing de trafic.

Tags: