Impulsionando o Futuro: Como o APISIX Ingress Controller Capacita a Horizon Robotics

Jing Yan

Jing Yan

October 10, 2022

Case Study

Visão Geral

Sobre a Horizon Robotics

Horizon Robotics é uma fornecedora de primeira linha de soluções de computação energeticamente eficientes para sistemas avançados de assistência ao motorista (ADAS) e direção automatizada (AD) em carros comuns. A empresa foca em melhorar a experiência de direção para a próxima geração, combinando hardware e software avançados, incluindo soluções de computação de hardware de baixo consumo e ferramentas de desenvolvimento de software aberto.

Desafios

  • O controlador de ingresso anterior da Horizon Robotics, Traefik 1.x, não suportava configuração granular.

  • O Traefik 1.x não possuía regras específicas para configuração visual e, portanto, não conseguia identificar serviços específicos.

  • Os arquivos de configuração originais da Horizon Robotics eram limitados, exigindo buscas demoradas na documentação e manutenção.

Resultados

  • Ao ajustar adequadamente os parâmetros, a Horizon Robotics melhorou a estabilidade da transmissão de dados e reduziu a ocorrência de problemas como falta de memória (OOM).

  • A Horizon Robotics melhorou a utilização de recursos e promoveu a colaboração em várias plataformas de nuvem.

  • Utilizando o plugin forward-auth do APISIX para autenticação externa, a Horizon Robotics simplificou as invocações gRPC e melhorou a eficiência do monitoramento.

  • A Horizon Robotics melhorou seu monitoramento e eficiência operacional ao ativar o plugin prometheus e personalizá-lo para atender às necessidades específicas do negócio.

Contexto

Na era da direção autônoma e das novas tecnologias de energia, empresas como a Horizon Robotics investiram pesadamente no desenvolvimento e treinamento de modelos de direção autônoma. Com expertise em algoritmos de aprendizado profundo e design de chips, a Horizon Robotics foca em plataformas de computação automotiva inovadoras. Eles lançaram hardwares como a Série Horizon Journey para direção inteligente, a Série Sunrise para robótica versátil e uma ferramenta de desenvolvimento de IA multiplataforma. "Esse crescimento aumentou a importância do gateway", observou Xin Zhang, Engenheiro de Desenvolvimento Cloud-Native da Horizon Robotics.

Por que o APISIX Ingress Controller

Antes de implementar o APISIX Ingress Controller, o sistema de negócios da Horizon Robotics utilizava o Traefik 1.x como controlador de ingresso, o que apresentava vários desafios.

  • O Traefik 1.x limitava a empresa a usar plugins para todas as regras dentro do controlador de ingresso, sem flexibilidade para configurações mais detalhadas.

  • O Traefik 1.x não conseguia identificar diretamente serviços com base em URLs de solicitação em navegadores da web.

  • O arquivo de configuração padrão do Traefik 1.x (ConfigMap) tinha um conjunto limitado de atributos, o que significava consultas frequentes à documentação oficial para configurações padrão. Esse problema foi agravado por discrepâncias de parâmetros com a configuração padrão do NGINX, tornando a manutenção mais desafiadora.

"Enfrentando esses problemas, nossa equipe técnica decidiu que era hora de substituir nosso controlador de ingresso", diz Zhang. "Inicialmente pensamos em atualizar o Traefik para a versão 2.0 para resolver esses problemas, mas essa atualização significava adotar um novo CRD e lidar com custos significativos de migração. Portanto, tentamos explorar outras opções de controladores de ingresso também."

A Horizon Robotics avaliou principalmente o Apache APISIX, Kong e Envoy na fase inicial de seleção. No entanto, em diferentes graus, exceto pelo APISIX Ingress Controller, essas soluções alternativas não conseguiam atender totalmente aos requisitos específicos de funcionalidade ou desempenho. Como resultado, a Horizon Robotics optou pelo APISIX Ingress Controller. Além de alguns recursos padrão dos gateways, a Horizon Robotics tinha interesse particular nos seguintes aspectos:

  • Suporte Extenso a Plugins: O APISIX possui um ecossistema robusto de plugins, que podem ser convenientemente configurados usando o apisix-ingress-controller. Esses plugins também podem ser personalizados para backends específicos sob o ApisixRoute.

  • Configuração Visual Amigável: O APISIX Dashboard fornece uma visão clara de cada route do apisix. Em casos onde o mesmo domínio é configurado em múltiplos namespaces ou arquivos YAML, o APISIX Dashboard integrado permite que a Horizon Robotics identifique rapidamente conflitos potenciais ao pesquisar por prefixos de caminho.

  • Validação Granular: O APISIX Ingress Controller valida rigorosamente os recursos declarados no CRD que ele gerencia. Se um serviço inválido for especificado no CRD, uma mensagem de erro é registrada no event do ApisixRoute, impedindo que a alteração entre em vigor. Essa validação ajuda a mitigar problemas decorrentes de configurações incorretas.

  • Conjunto Diversificado de Recursos: O APISIX oferece muitos recursos, incluindo suporte a atualizações em tempo real e plugins, reescrita de solicitações, múltiplos métodos de autenticação, desenvolvimento de plugins em várias linguagens, etc.

  • Engajamento Ativo da Comunidade: Diferente de outras comunidades de código aberto, o APISIX se beneficia de uma comunidade vibrante de mantenedores e contribuidores que participam ativamente no Slack, GitHub e na lista de e-mails.

  • Desempenho Impressionante: O gráfico abaixo ilustra claramente que o APISIX supera o Envoy em aproximadamente 20% no teste de estresse. Essa diferença de desempenho se torna mais pronunciada com o aumento de núcleos de CPU.

Ingress Controller

Sucessos do Apache APISIX Ingress Controller

Melhoria do Hub Central de Tráfego

A Horizon Robotics alcançou um feito notável ao empregar o APISIX Ingress Controller como o gateway central para o tráfego de entrada de várias fontes, como ferramentas de linha de comando, aplicações web, plataformas SaaS e OpenAPI. A empresa também garantiu acesso seguro aos seus serviços usando o plugin forward-auth para autenticação externa.

Architecture1

Essa arquitetura inovadora canaliza efetivamente o tráfego de entrada através do nome de domínio dentro da camada do gateway. O roteamento inicial através do Linux Virtual Server (LVS) simplifica o processo de encaminhamento, direcionando o tráfego para o nó APISIX backend. Posteriormente, o APISIX distribui eficientemente o tráfego para os pods apropriados, seguindo regras de roteamento pré-definidas. Notavelmente, o ajuste da porta padrão do APISIX Ingress Controller de 9180 para 80 simplifica ainda mais o roteamento de tráfego, aumentando a eficiência geral do gerenciamento de tráfego do sistema.

Architecture2

Melhoria Significativa de Eficiência

Empresas envolvidas no treinamento de modelos de IA frequentemente encontram cenários que exigem o upload de arquivos grandes. "Em nosso sistema de treinamento de modelos da Horizon Robotics, a equipe de P&D faz upload de dados coletados para o sistema via rede, e o tamanho dos dados é tipicamente de várias centenas de GB ou mais", diz Zhang. Para enfrentar esse desafio, a Horizon Robotics implementou o APISIX 2.13 com parâmetros ajustados e habilitou o upload em fluxo do APISIX para os arquivos. Essa etapa garantiu uploads contínuos de arquivos grandes e mitigou problemas relacionados à memória. Como resultado, os projetos de treinamento de modelos de IA da Horizon Robotics viram uma melhoria notável na eficiência, permitindo um progresso tecnológico mais suave.

Oversized

Otimização Estratégica de Multi-Nuvem

Em interações de serviços multi-nuvem, parte do tráfego de negócios inicialmente chega ao IDC local da Horizon Robotics. De lá, ele passa pelo APISIX Ingress Controller antes de chegar ao Pod. Dentro do Pod, alguns serviços precisam acessar os serviços da Acloud usando nomes de domínio. Essa etapa permitiu que esses serviços navegassem sem problemas entre vários provedores de nuvem utilizados pela Horizon Robotics, fornecendo acesso a recursos essenciais enquanto otimizava a utilização de recursos. Além disso, existem cenários onde serviços invocam outros serviços, principalmente para treinamento multi-nuvem, permitindo que diferentes serviços colaborem para auxiliar a Horizon Robotics em tarefas mais complexas. Além disso, a Horizon Robotics pode escolher o cluster apropriado e enviar tarefas para os clusters de nuvem correspondentes através do ponto de entrada do IDC local. Essa capacidade permitiu que eles gerenciassem e distribuíssem tarefas de forma eficiente, aproveitando totalmente os recursos computacionais em seu ambiente multi-nuvem.

Multi-cloud

Integração Simplificada de Plugins

Após a integração cuidadosa do suporte ao plugin forward-auth pelo APISIX, a Horizon Robotics tomou a decisão estratégica de migrar de seu plugin personalizado para o plugin oficial do APISIX. Essa mudança eliminou a necessidade de uma camada adicional de chamadas gRPC e simplificou significativamente os processos de monitoramento da empresa. Consequentemente, essa melhoria aumentou a flexibilidade de integração e reforçou as medidas de segurança, fortalecendo a posição da Horizon Robotics na tecnologia de robótica.

forward-auth

Monitoramento Avançado de Aplicações

Para aproveitar ao máximo os recursos poderosos do APISIX, a Horizon Robotics ativou o plugin prometheus para monitoramento de aplicações. A Horizon Robotics realizou ajustes e otimizações personalizados para atender às suas necessidades de negócios, incluindo o aumento da concorrência em tempo real, QPS, taxa de sucesso de API em tempo real do APISIX e largura de banda em tempo real do APISIX. Essas mudanças forneceram à Horizon Robotics um monitoramento mais granular do APISIX.

Application Monitoring

Resumo

A Horizon Robotics utilizou efetivamente o Apache APISIX Ingress Controller em cenários críticos de negócios, aumentando a eficiência e a adaptabilidade. Eles simplificaram o upload de arquivos grandes para treinamento de modelos de IA, otimizaram interações de serviços multi-nuvem, simplificaram a autenticação externa e implementaram monitoramento de aplicações personalizado. Essas melhorias avançaram notavelmente a tecnologia e as operações da Horizon Robotics.

À medida que mais usuários incorporam o Apache APISIX Ingress Controller em seus ambientes de produção, encorajamos aqueles que utilizam o Apache APISIX Ingress Controller a compartilhar seus casos de uso na comunidade.

Tags: