Impulsando el Futuro: Cómo el APISIX Ingress Controller Empodera a Horizon Robotics

Jing Yan

Jing Yan

October 10, 2022

Case Study

Visión general

Acerca de Horizon Robotics

Horizon Robotics es un proveedor líder de soluciones de computación energéticamente eficientes para sistemas avanzados de asistencia al conductor (ADAS) y conducción automatizada (AD) en automóviles convencionales. La empresa se enfoca en mejorar la experiencia de conducción para la próxima generación combinando hardware y software avanzados, incluyendo soluciones de computación de hardware de bajo consumo y herramientas de desarrollo de software abierto.

Desafíos

  • El controlador de entrada anterior de Horizon Robotics, Traefik 1.x, no podía soportar configuraciones granulares.

  • Traefik 1.x carecía de reglas específicas para la configuración visual y, por lo tanto, no podía identificar servicios específicos.

  • Los archivos de configuración originales de Horizon Robotics eran limitados, lo que requería búsquedas tediosas en la documentación y un mantenimiento complicado.

Resultados

  • Al ajustar adecuadamente los parámetros, Horizon Robotics mejoró la estabilidad de la transmisión de datos y redujo la ocurrencia de problemas como la falta de memoria (OOM).

  • Horizon Robotics optimizó la utilización de recursos y fomentó la colaboración entre múltiples plataformas en la nube.

  • Utilizando el plugin forward-auth de APISIX para autenticación externa, Horizon Robotics simplificó las invocaciones gRPC y mejoró la eficiencia del monitoreo.

  • Horizon Robotics mejoró su monitoreo y eficiencia operativa activando el plugin prometheus y adaptándolo a sus necesidades comerciales específicas.

Antecedentes

En la era de la conducción autónoma y las tecnologías de energía renovable, empresas como Horizon Robotics han invertido fuertemente en el desarrollo y entrenamiento de modelos de conducción autónoma. Con experiencia en algoritmos de aprendizaje profundo y diseño de chips, Horizon Robotics se enfoca en plataformas de computación automotriz innovadoras. Han lanzado hardware como la serie Horizon Journey para conducción inteligente, la serie Sunrise para robótica versátil y una herramienta de desarrollo de IA multiplataforma. "Este crecimiento ha aumentado la importancia de su puerta de enlace", señaló Xin Zhang, Ingeniero de Desarrollo Cloud-Native en Horizon Robotics.

Por qué el APISIX Ingress Controller

Antes de implementar el APISIX Ingress Controller, el sistema de negocio de Horizon Robotics utilizaba Traefik 1.x como su controlador de entrada, lo que presentaba varios desafíos.

  • Traefik 1.x limitaba a la empresa a usar plugins para todas las reglas dentro del controlador de entrada, sin flexibilidad para configuraciones más detalladas.

  • Traefik 1.x no podía identificar directamente servicios basados en URLs de solicitud en navegadores web.

  • El archivo de configuración predeterminado de Traefik 1.x (ConfigMap) tenía un conjunto limitado de atributos, lo que significaba consultas frecuentes a la documentación oficial para configuraciones predeterminadas. Este problema se complicaba aún más por las discrepancias de parámetros con la configuración predeterminada de NGINX, haciendo el mantenimiento más desafiante.

"Frente a estos problemas, nuestro equipo técnico decidió que era hora de reemplazar nuestro controlador de entrada", dice Zhang. "Inicialmente pensamos en actualizar Traefik a la versión 2.0 para solucionar estos problemas, pero esta actualización implicaba adoptar un nuevo CRD y lidiar con costos de migración significativos. Por lo tanto, también exploramos otras opciones de controladores de entrada".

Horizon Robotics evaluó principalmente Apache APISIX, Kong y Envoy en la fase inicial de selección. Sin embargo, en diversos grados, excepto por el APISIX Ingress Controller, estas soluciones alternativas no podían satisfacer completamente los requisitos específicos de funcionalidad o rendimiento. Como resultado, Horizon Robotics optó finalmente por el APISIX Ingress Controller. Más allá de algunas características estándar de las puertas de enlace, Horizon Robotics mostró un interés particular en los siguientes aspectos:

  • Amplio Soporte de Plugins: APISIX cuenta con un ecosistema robusto de plugins, que pueden configurarse convenientemente usando apisix-ingress-controller. Estos plugins también pueden personalizarse para backends específicos bajo ApisixRoute.

  • Configuración Visual Amigable: El APISIX Dashboard proporciona una vista clara de cada ruta de apisix. En casos donde el mismo dominio está configurado en múltiples namespaces o archivos YAML, el APISIX Dashboard integrado permite a Horizon Robotics identificar rápidamente conflictos potenciales buscando prefijos de ruta.

  • Validación Detallada: El APISIX Ingress Controller valida rigurosamente los recursos declarados en el CRD que gestiona. Si se especifica un servicio no válido en el CRD, se registra un mensaje de error en el evento de ApisixRoute, evitando que el cambio surta efecto. Esta validación ayuda a mitigar problemas derivados de configuraciones incorrectas.

  • Conjunto Diverso de Características: APISIX ofrece muchas características, incluyendo soporte para actualizaciones en caliente y plugins, reescritura de solicitudes, múltiples métodos de autenticación, desarrollo de plugins en varios lenguajes, etc.

  • Participación Activa de la Comunidad: A diferencia de otras comunidades de código abierto, APISIX se beneficia de una comunidad vibrante de mantenedores y contribuyentes que participan activamente en Slack, GitHub y la lista de correo.

  • Rendimiento Impresionante: El gráfico a continuación muestra claramente que APISIX supera a Envoy en aproximadamente un 20% en la prueba de estrés. Esta diferencia de rendimiento se vuelve más pronunciada con un aumento en los núcleos de CPU.

Ingress Controller

Éxitos del Apache APISIX Ingress Controller

Mejora del Centro de Tráfico Centralizado

Horizon Robotics ha logrado un hito notable al emplear el APISIX Ingress Controller como la puerta de enlace central para el tráfico entrante de diversas fuentes, como herramientas de línea de comandos, aplicaciones web, plataformas SaaS y OpenAPI. La empresa también aseguró el acceso seguro a sus servicios utilizando el plugin forward-auth para autenticación externa.

Arquitectura1

Esta arquitectura innovadora canaliza efectivamente el tráfico entrante a través del nombre de dominio dentro de la capa de puerta de enlace. El enrutamiento inicial a través del Linux Virtual Server (LVS) simplifica el proceso de reenvío, dirigiendo el tráfico al nodo APISIX backend. Posteriormente, APISIX distribuye eficientemente el tráfico a los pods adecuados, siguiendo las reglas de enrutamiento predefinidas. Notablemente, el ajuste del puerto predeterminado del APISIX Ingress Controller de 9180 a 80 simplifica aún más el enrutamiento del tráfico, mejorando la eficiencia general del sistema de gestión de tráfico.

Arquitectura2

Mejora Significativa en la Eficiencia

Las empresas involucradas en el entrenamiento de modelos de IA a menudo enfrentan escenarios que requieren la carga de archivos de gran tamaño. "En nuestro sistema de entrenamiento de modelos de Horizon Robotics, el equipo de I+D carga los datos recopilados al sistema a través de la red, y el tamaño de los datos suele ser de varios cientos de GB o más", dice Zhang. Para abordar este desafío, Horizon Robotics implementó APISIX 2.13 con parámetros ajustados y habilitó la carga en flujo de APISIX para los archivos. Este paso aseguró cargas sin problemas de archivos grandes y mitigó problemas relacionados con la memoria. Como resultado, los proyectos de entrenamiento de modelos de IA de Horizon Robotics experimentaron una mejora notable en la eficiencia, permitiendo un progreso tecnológico más fluido.

Archivos Grandes

Optimización Estratégica Multi-Nube

En las interacciones de servicios multi-nube, parte del tráfico comercial aterriza inicialmente en el IDC local de Horizon Robotics. Desde allí, pasa a través del APISIX Ingress Controller antes de llegar al Pod. Dentro del Pod, ciertos servicios necesitan acceder a los servicios de Acloud utilizando nombres de dominio. Este paso permitió que estos servicios navegaran sin problemas a través de varios proveedores de nube utilizados por Horizon Robotics, proporcionando acceso a recursos esenciales mientras optimizaba la utilización de recursos. Además, existen escenarios donde los servicios invocan a otros servicios, principalmente para entrenamiento multi-nube, permitiendo que diferentes servicios colaboren para asistir a Horizon Robotics en tareas más complejas. También, Horizon Robotics puede elegir el clúster adecuado y enviar tareas a los clústeres de nube correspondientes a través de su punto de entrada IDC local. Esta capacidad les permitió gestionar y distribuir tareas de manera eficiente, aprovechando al máximo los recursos computacionales en su entorno multi-nube.

Multi-nube

Integración Simplificada de Plugins

Después de que APISIX integró cuidadosamente el soporte para el plugin forward-auth, Horizon Robotics tomó la decisión estratégica de transicionar desde su plugin personalizado al plugin oficial de APISIX. Este cambio eliminó la necesidad de una capa adicional de llamadas gRPC y simplificó significativamente los procesos de monitoreo de la empresa. En consecuencia, esta mejora reforzó la flexibilidad de integración y fortaleció las medidas de seguridad, consolidando la posición de Horizon Robotics en la tecnología robótica.

forward-auth

Monitoreo Avanzado de Aplicaciones

Para aprovechar al máximo las potentes características de APISIX, Horizon Robotics ha activado el plugin prometheus para el monitoreo de aplicaciones. Horizon Robotics ha realizado ajustes y optimizaciones personalizados para adaptarse a sus requisitos comerciales, incluyendo el aumento de la concurrencia en tiempo real, QPS, la tasa de éxito de API en tiempo real de APISIX y el ancho de banda en tiempo real de APISIX. Estos cambios proporcionaron a Horizon Robotics un monitoreo más granular de APISIX.

Monitoreo de Aplicaciones

Resumen

Horizon Robotics ha utilizado efectivamente el Apache APISIX Ingress Controller en escenarios comerciales críticos, aumentando la eficiencia y adaptabilidad. Simplificaron la carga de archivos grandes para el entrenamiento de modelos de IA, optimizaron las interacciones de servicios multi-nube, simplificaron la autenticación externa e implementaron un monitoreo de aplicaciones personalizado. Estas mejoras han avanzado notablemente la tecnología y operaciones de Horizon Robotics.

A medida que más usuarios incorporan el Apache APISIX Ingress Controller en sus entornos de producción, animamos a aquellos que utilizan el Apache APISIX Ingress Controller a compartir sus casos de uso dentro de la comunidad.

Tags: