미래를 주도하다: APISIX Ingress Controller가 Horizon Robotics를 강화하는 방법

Jing Yan

Jing Yan

October 10, 2022

Case Study

개요

Horizon Robotics 소개

Horizon Robotics는 일반 자동차의 고급 운전자 보조 시스템(ADAS) 및 자율 주행(AD)을 위한 에너지 효율적인 컴퓨팅 솔루션의 선두 제공업체입니다. 이 기업은 저전력 하드웨어 컴퓨팅 솔루션과 오픈 소프트웨어 개발 도구를 포함한 고급 하드웨어와 소프트웨어를 결합하여 차세대 운전 경험을 개선하는 데 주력하고 있습니다.

도전 과제

  • Horizon Robotics의 이전 인그레스 컨트롤러인 Traefik 1.x는 세부적인 구성을 지원할 수 없었습니다.

  • Traefik 1.x는 시각적 구성에 대한 특정 규칙이 없어 특정 서비스를 정확히 식별할 수 없었습니다.

  • Horizon Robotics의 원래 구성 파일은 제한적이어서 시간이 많이 소요되는 문서 검색과 유지 보수가 필요했습니다.

결과

  • 매개변수를 적절히 조정함으로써 Horizon Robotics는 데이터 전송 안정성을 향상시키고 메모리 부족(OOM) 및 유사한 문제의 발생을 줄였습니다.

  • Horizon Robotics는 리소스 활용도를 개선하고 여러 클라우드 플랫폼 간의 협업을 촉진했습니다.

  • APISIX의 forward-auth 플러그인을 사용하여 외부 인증을 간소화하고 gRPC 호출을 단순화하며 모니터링 효율성을 개선했습니다.

  • Horizon Robotics는 prometheus 플러그인을 활성화하고 특정 비즈니스 요구 사항에 맞게 조정하여 모니터링 및 운영 효율성을 향상시켰습니다.

배경

자율 주행과 신에너지 기술의 시대에 Horizon Robotics와 같은 기업들은 자율 주행 모델 개발 및 훈련에 많은 투자를 하고 있습니다. 딥러닝 알고리즘과 칩 설계 전문 지식을 바탕으로 Horizon Robotics는 혁신적인 자동차 컴퓨팅 플랫폼에 초점을 맞추고 있습니다. 그들은 지능형 주행을 위한 Horizon Journey Series, 다목적 로봇을 위한 Sunrise Series, 그리고 크로스 플랫폼 AI 개발 도구와 같은 하드웨어를 출시했습니다. "이러한 성장은 게이트웨이의 중요성을 더욱 높였습니다,"라고 Horizon Robotics의 클라우드 네이티브 개발 엔지니어인 Xin Zhang은 말했습니다.

APISIX Ingress Controller를 선택한 이유

APISIX Ingress Controller를 도입하기 전에 Horizon Robotics의 비즈니스 시스템은 Traefik 1.x를 인그레스 컨트롤러로 사용했으며, 이는 여러 도전 과제를 제시했습니다.

  • Traefik 1.x는 모든 규칙을 플러그인을 통해 사용해야 했으며, 더 세부적인 구성을 할 수 있는 유연성이 부족했습니다.

  • Traefik 1.x는 웹 브라우저에서 요청 URL을 기반으로 서비스를 직접 식별할 수 없었습니다.

  • Traefik 1.x의 기본 구성 파일(ConfigMap)은 제한된 속성 집합을 가지고 있어 기본 설정을 위해 공식 문서를 자주 참조해야 했습니다. 이 문제는 NGINX의 기본 구성과의 매개변수 차이로 인해 더욱 복잡해져 유지 보수가 더 어려워졌습니다.

"이러한 문제에 직면하여 우리 기술 팀은 인그레스 컨트롤러를 교체할 시점이라고 결정했습니다,"라고 Zhang은 말합니다. "처음에는 Traefik을 2.0 버전으로 업그레이드하여 이러한 문제를 해결하려고 생각했지만, 이 업그레이드는 새로운 CRD를 도입하고 상당한 마이그레이션 비용을 수반했습니다. 따라서 우리는 다른 인그레스 컨트롤러 옵션도 탐색하기로 했습니다."

Horizon Robotics는 초기 선택 단계에서 Apache APISIX, Kong, Envoy를 주로 평가했습니다. 그러나 APISIX Ingress Controller를 제외하고는 이러한 대안 솔루션들이 기능이나 성능 측면에서 특정 요구 사항을 완전히 충족시키지 못했습니다. 결과적으로 Horizon Robotics는 최종적으로 APISIX Ingress Controller를 선택했습니다. 게이트웨이의 일부 표준 기능 외에도 Horizon Robotics는 다음과 같은 측면에 특히 관심을 가졌습니다:

  • 광범위한 플러그인 지원: APISIX는 강력한 플러그인 생태계를 자랑하며, apisix-ingress-controller를 사용하여 편리하게 구성할 수 있습니다. 이러한 플러그인은 ApisixRoute 아래에서 특정 백엔드에 맞게 조정될 수도 있습니다.

  • 사용자 친화적인 시각적 구성: APISIX Dashboard는 각 apisix route를 명확하게 보여줍니다. 동일한 도메인이 여러 namespaces 또는 YAML 파일에 걸쳐 구성된 경우, 통합된 APISIX Dashboard를 통해 Horizon Robotics는 경로 접두사를 검색하여 잠재적인 충돌을 빠르게 식별할 수 있습니다.

  • 세밀한 검증: APISIX Ingress Controller는 관리하는 CRD에 선언된 리소스를 엄격하게 검증합니다. CRD에 잘못된 서비스가 지정된 경우, ApisixRoute event에 오류 메시지가 기록되어 변경이 적용되지 않도록 합니다. 이 검증은 잘못된 구성으로 인한 문제를 완화하는 데 도움이 됩니다.

  • 다양한 기능 세트: APISIX는 핫 업데이트 및 플러그인 지원, 요청 재작성, 여러 인증 방법, 다국어 플러그인 개발 등을 포함한 많은 기능을 제공합니다.

  • 활발한 커뮤니티 참여: 다른 오픈소스 커뮤니티와 달리 APISIX는 Slack, GitHub, 메일링 리스트에서 활발히 참여하는 유지 관리자와 기여자들의 활기찬 커뮤니티를 자랑합니다.

  • 인상적인 성능: 아래 차트는 APISIX가 스트레스 테스트에서 Envoy보다 약 20% 더 나은 성능을 보여줍니다. 이 성능 차이는 CPU 코어 수가 증가함에 따라 더 두드러집니다.

Ingress Controller

Apache APISIX Ingress Controller의 성공 사례

중앙 집중식 트래픽 허브 개선

Horizon Robotics는 APISIX Ingress Controller를 다양한 소스(예: 명령줄 도구, 웹 애플리케이션, SaaS 플랫폼, OpenAPI)에서 들어오는 트래픽의 중앙 게이트웨이로 사용하여 주목할 만한 성과를 거두었습니다. 또한, forward-auth 플러그인을 사용하여 외부 인증을 통해 서비스에 안전하게 접근할 수 있도록 했습니다.

Architecture1

이 혁신적인 아키텍처는 게이트웨이 계층 내의 도메인 이름을 통해 들어오는 트래픽을 효과적으로 전달합니다. Linux Virtual Server(LVS)를 통한 초기 라우팅은 트래픽을 백엔드 APISIX 노드로 전달하는 과정을 단순화합니다. 이후 APISIX는 미리 정의된 라우팅 규칙에 따라 트래픽을 적절한 포드로 효율적으로 분배합니다. 특히, APISIX Ingress Controller의 기본 포트를 9180에서 80으로 조정함으로써 트래픽 라우팅을 더욱 간소화하여 시스템의 트래픽 관리 효율성을 전반적으로 향상시켰습니다.

Architecture2

상당한 효율성 개선

AI 모델 훈련에 종사하는 기업들은 종종 대용량 파일 업로드가 필요한 시나리오를 마주합니다. "Horizon Robotics 모델 훈련 시스템에서 R&D 팀은 네트워크를 통해 수집한 데이터를 시스템에 업로드하며, 데이터 크기는 일반적으로 수백 GB 이상입니다,"라고 Zhang은 말합니다. 이 문제를 해결하기 위해 Horizon Robotics는 APISIX 2.13을 도입하고 매개변수를 조정한 후 APISIX의 스트리밍 업로드를 활성화했습니다. 이 단계는 대용량 파일의 원활한 업로드를 보장하고 메모리 관련 문제를 완화했습니다. 결과적으로 Horizon Robotics의 AI 모델 훈련 프로젝트는 효율성이 크게 개선되어 기술적 진보가 더욱 원활해졌습니다.

Oversized

전략적 멀티 클라우드 최적화

멀티 클라우드 서비스 상호 작용에서 일부 비즈니스 트래픽은 처음에 Horizon Robotics의 로컬 IDC에 도달합니다. 그곳에서 APISIX Ingress Controller를 거쳐 포드로 전달됩니다. 포드 내에서 일부 서비스는 도메인 이름을 사용하여 Acloud의 서비스에 접근해야 합니다. 이 단계는 Horizon Robotics가 사용하는 다양한 클라우드 제공업체 간에 서비스가 원활하게 이동할 수 있도록 하여 필수 리소스에 접근하면서 리소스 활용도를 최적화했습니다. 또한, 서비스가 다른 서비스를 호출하는 시나리오도 존재하며, 주로 멀티 클라우드 훈련을 위해 다른 서비스가 협력하여 Horizon Robotics가 더 복잡한 작업을 수행할 수 있도록 합니다. 또한, Horizon Robotics는 적절한 클러스터를 선택하고 로컬 IDC 진입점을 통해 해당 클라우드 클러스터에 작업을 제출할 수 있습니다. 이 기능은 멀티 클라우드 환경에서 컴퓨팅 리소스를 효율적으로 관리하고 분배할 수 있도록 했습니다.

Multi-cloud

간소화된 플러그인 통합

APISIX가 forward-auth 플러그인 지원을 신중하게 통합한 후, Horizon Robotics는 자체 플러그인에서 APISIX의 공식 플러그인으로 전환하기로 전략적 결정을 내렸습니다. 이 전환은 추가적인 gRPC 호출 계층을 제거하고 회사의 모니터링 프로세스를 크게 간소화했습니다. 결과적으로 이 개선은 통합 유연성을 크게 강화하고 보안 조치를 강화하여 Horizon Robotics의 로보틱스 기술에서의 위치를 더욱 공고히 했습니다.

forward-auth

고급 애플리케이션 모니터링

APISIX의 강력한 기능을 최대한 활용하기 위해 Horizon Robotics는 애플리케이션 모니터링을 위해 prometheus 플러그인을 활성화했습니다. Horizon Robotics는 실시간 동시성, QPS, APISIX의 실시간 API 성공률, APISIX의 실시간 대역폭을 포함한 비즈니스 요구 사항에 맞게 맞춤화된 조정과 최적화를 수행했습니다. 이러한 변경 사항은 Horizon Robotics가 APISIX를 더 세밀하게 모니터링할 수 있도록 했습니다.

Application Monitoring

요약

Horizon Robotics는 중요한 비즈니스 시나리오에서 Apache APISIX Ingress Controller를 효과적으로 활용하여 효율성과 적응성을 높였습니다. 그들은 AI 모델 훈련을 위한 대용량 파일 업로드를 간소화하고, 멀티 클라우드 서비스 상호 작용을 최적화하며, 외부 인증을 단순화하고, 맞춤형 애플리케이션 모니터링을 구현했습니다. 이러한 개선 사항은 Horizon Robotics의 기술과 운영을 크게 발전시켰습니다.

더 많은 사용자들이 Apache APISIX Ingress Controller를 프로덕션 환경에 통합함에 따라, Apache APISIX Ingress Controller를 사용하는 사용자들이 커뮤니티 내에서 자신들의 사용 사례를 공유하도록 권장합니다.

Tags: