Propulser l'avenir : comment APISIX Ingress Controller soutient Horizon Robotics

Jing Yan

Jing Yan

October 10, 2022

Case Study

Aperçu

À propos de Horizon Robotics

Horizon Robotics est un fournisseur de premier plan de solutions de calcul écoénergétiques pour les systèmes d'aide à la conduite avancée (ADAS) et la conduite automatisée (AD) dans les voitures classiques. L'entreprise se concentre sur l'amélioration de l'expérience de conduite pour la prochaine génération en combinant des solutions matérielles et logicielles avancées, y compris des solutions de calcul matériel à faible consommation et des outils de développement logiciel ouverts.

Défis

  • Le contrôleur d'entrée précédent de Horizon Robotics, Traefik 1.x, ne pouvait pas prendre en charge une configuration granulaire.

  • Traefik 1.x manquait de règles spécifiques pour la configuration visuelle et ne pouvait donc pas identifier des services spécifiques.

  • Les fichiers de configuration originaux de Horizon Robotics étaient limités, nécessitant des recherches fastidieuses dans la documentation et une maintenance chronophage.

Résultats

  • En ajustant correctement les paramètres, Horizon Robotics a amélioré la stabilité de la transmission des données et réduit les occurrences de problèmes de mémoire insuffisante (OOM) et similaires.

  • Horizon Robotics a amélioré l'utilisation des ressources et favorisé la collaboration sur plusieurs plateformes cloud.

  • En utilisant le plugin forward-auth d'APISIX pour l'authentification externe, Horizon Robotics a simplifié les appels gRPC et amélioré l'efficacité de la surveillance.

  • Horizon Robotics a amélioré sa surveillance et son efficacité opérationnelle en activant le plugin prometheus et en l'adaptant pour répondre à des besoins métier spécifiques.

Contexte

À l'ère de la conduite autonome et des nouvelles technologies énergétiques, des entreprises comme Horizon Robotics ont massivement investi dans le développement et l'entraînement de modèles de conduite autonome. Avec une expertise en algorithmes d'apprentissage profond et en conception de puces, Horizon Robotics se concentre sur des plateformes de calcul automobile innovantes. Ils ont lancé des produits matériels comme la série Horizon Journey pour la conduite intelligente, la série Sunrise pour la robotique polyvalente, et un outil de développement IA multiplateforme. "Cette croissance a accru l'importance de leur passerelle", a noté Xin Zhang, ingénieur en développement cloud-native chez Horizon Robotics.

Pourquoi le contrôleur d'entrée APISIX

Avant d'implémenter le contrôleur d'entrée APISIX, le système métier de Horizon Robotics utilisait Traefik 1.x comme contrôleur d'entrée, ce qui posait plusieurs défis.

  • Traefik 1.x limitait l'entreprise à l'utilisation de plugins pour toutes les règles au sein du contrôleur d'entrée, sans la flexibilité pour des configurations plus détaillées.

  • Traefik 1.x ne pouvait pas identifier directement les services en fonction des URL de requête dans les navigateurs web.

  • Le fichier de configuration par défaut de Traefik 1.x (ConfigMap) avait un ensemble limité d'attributs, ce qui nécessitait des références fréquentes à la documentation officielle pour les paramètres par défaut. Ce problème était encore compliqué par les différences de paramètres avec la configuration par défaut de NGINX, rendant la maintenance plus difficile.

"Face à ces problèmes, notre équipe technique a décidé qu'il était temps de remplacer notre contrôleur d'entrée", déclare Zhang. "Nous avons d'abord pensé à mettre à niveau Traefik vers la version 2.0 pour résoudre ces problèmes, mais cette mise à niveau impliquait l'adoption d'un nouveau CRD et des coûts de migration importants. Par conséquent, nous avons également exploré d'autres options de contrôleurs d'entrée."

Horizon Robotics a principalement évalué Apache APISIX, Kong et Envoy lors de la phase de sélection initiale. Cependant, à des degrés divers, à l'exception du contrôleur d'entrée APISIX, ces solutions alternatives ne pouvaient pas entièrement répondre aux exigences spécifiques en termes de fonctionnalités ou de performances. Par conséquent, Horizon Robotics a finalement opté pour le contrôleur d'entrée APISIX. Au-delà de certaines fonctionnalités standard des passerelles, Horizon Robotics s'intéressait particulièrement aux aspects suivants :

  • Support étendu des plugins : APISIX dispose d'un écosystème robuste de plugins, qui peuvent être configurés facilement avec apisix-ingress-controller. Ces plugins peuvent également être adaptés pour des backends spécifiques sous ApisixRoute.

  • Configuration visuelle conviviale : Le tableau de bord APISIX offre une vue claire de chaque route apisix. Dans les cas où le même domaine est configuré dans plusieurs namespaces ou fichiers YAML, le tableau de bord intégré d'APISIX permet à Horizon Robotics d'identifier rapidement les conflits potentiels en recherchant des préfixes de chemin.

  • Validation fine : Le contrôleur d'entrée APISIX valide rigoureusement les ressources déclarées dans le CRD qu'il gère. Si un service invalide est spécifié dans le CRD, un message d'erreur est enregistré dans l'événement ApisixRoute, empêchant la modification de prendre effet. Cette validation aide à atténuer les problèmes liés aux mauvaises configurations.

  • Ensemble de fonctionnalités diversifié : APISIX offre de nombreuses fonctionnalités, y compris le support des mises à jour à chaud et des plugins, la réécriture des requêtes, plusieurs méthodes d'authentification, le développement de plugins multilingues, etc.

  • Engagement communautaire actif : Contrairement à d'autres communautés open-source, APISIX bénéficie d'une communauté dynamique de mainteneurs et de contributeurs participant activement sur Slack, GitHub et la liste de diffusion.

  • Performance impressionnante : Le graphique ci-dessous montre clairement qu'APISIX surpasse Envoy d'environ 20 % dans le test de stress. Cette différence de performance devient plus prononcée avec l'augmentation du nombre de cœurs CPU.

Contrôleur d'entrée

Succès du contrôleur d'entrée Apache APISIX

Amélioration du hub de trafic centralisé

Horizon Robotics a réalisé une prouesse notable en utilisant le contrôleur d'entrée APISIX comme passerelle centrale pour le trafic entrant provenant de diverses sources, telles que les outils en ligne de commande, les applications web, les plateformes SaaS et OpenAPI. L'entreprise a également assuré un accès sécurisé à ses services en utilisant le plugin forward-auth pour l'authentification externe.

Architecture1

Cette architecture innovante canalise efficacement le trafic entrant via le nom de domaine au sein de la couche de passerelle. Le routage initial via le serveur virtuel Linux (LVS) simplifie le processus de transfert, dirigeant le trafic vers le nœud APISIX backend. Ensuite, APISIX distribue efficacement le trafic vers les pods appropriés, conformément aux règles de routage prédéfinies. Notamment, l'ajustement du port par défaut du contrôleur d'entrée APISIX de 9180 à 80 simplifie encore plus le routage du trafic, améliorant l'efficacité globale de la gestion du trafic du système.

Architecture2

Amélioration significative de l'efficacité

Les entreprises engagées dans l'entraînement de modèles IA rencontrent souvent des scénarios nécessitant le téléchargement de fichiers de grande taille. "Dans notre système d'entraînement de modèles Horizon Robotics, l'équipe R&D télécharge les données collectées sur le système via le réseau, et la taille des données est généralement de plusieurs centaines de Go ou plus", explique Zhang. Pour relever ce défi, Horizon Robotics a implémenté APISIX 2.13 avec des paramètres ajustés et a activé le téléchargement en continu d'APISIX pour les fichiers. Cette étape a assuré des téléchargements fluides de fichiers volumineux et a atténué les problèmes liés à la mémoire. En conséquence, les projets d'entraînement de modèles IA de Horizon Robotics ont vu une amélioration notable de l'efficacité, permettant un progrès technologique plus fluide.

Fichiers volumineux

Optimisation stratégique multi-cloud

Dans les interactions de services multi-cloud, une partie du trafic métier atterrit initialement au centre de données local (IDC) de Horizon Robotics. De là, il passe par le contrôleur d'entrée APISIX avant d'atteindre le Pod. Dans le Pod, certains services doivent accéder aux services d'Acloud en utilisant des noms de domaine. Cette étape a permis à ces services de naviguer de manière transparente à travers les différents fournisseurs de cloud utilisés par Horizon Robotics, fournissant un accès aux ressources essentielles tout en optimisant l'utilisation des ressources. De plus, certains scénarios où les services invoquent d'autres services existent également, principalement pour l'entraînement multi-cloud, permettant à différents services de collaborer pour aider Horizon Robotics à accomplir des tâches plus complexes. En outre, Horizon Robotics peut choisir le cluster approprié et soumettre des tâches aux clusters cloud correspondants via leur point d'entrée IDC local. Cette capacité leur a permis de gérer et de distribuer efficacement les tâches, en tirant pleinement parti des ressources de calcul dans leur environnement multi-cloud.

Multi-cloud

Intégration simplifiée des plugins

Après qu'APISIX ait intégré de manière réfléchie le support du plugin forward-auth, Horizon Robotics a pris la décision stratégique de passer de son plugin personnalisé au plugin officiel d'APISIX. Ce changement a éliminé le besoin d'une couche supplémentaire d'appels gRPC et a considérablement simplifié les processus de surveillance de l'entreprise. Par conséquent, cette amélioration a grandement renforcé la flexibilité d'intégration et accru les mesures de sécurité, consolidant finalement la position de Horizon Robotics dans la technologie robotique.

forward-auth

Surveillance avancée des applications

Pour tirer le meilleur parti des fonctionnalités puissantes d'APISIX, Horizon Robotics a activé le plugin prometheus pour la surveillance des applications. Horizon Robotics a effectué des ajustements et des optimisations personnalisés pour répondre à ses besoins métier, y compris l'augmentation de la concurrence en temps réel, du QPS, du taux de réussite des API en temps réel d'APISIX, et de la bande passante en temps réel d'APISIX. Ces changements ont fourni à Horizon Robotics une surveillance plus granulaire d'APISIX.

Surveillance des applications

Résumé

Horizon Robotics a efficacement utilisé le contrôleur d'entrée Apache APISIX dans des scénarios métier critiques, augmentant l'efficacité et l'adaptabilité. Ils ont simplifié le téléchargement de fichiers volumineux pour l'entraînement de modèles IA, optimisé les interactions de services multi-cloud, simplifié l'authentification externe et mis en œuvre une surveillance d'applications personnalisée. Ces améliorations ont notablement fait progresser la technologie et les opérations de Horizon Robotics.

Alors que de plus en plus d'utilisateurs intègrent le contrôleur d'entrée Apache APISIX dans leurs environnements de production, nous encourageons ceux qui utilisent le contrôleur d'entrée Apache APISIX à partager leurs cas d'utilisation au sein de la communauté.

Tags: