자동차 산업을 위한 API Gateway 솔루션
November 2, 2022
디지털화와 지능화의 물결 속에서 제조 및 자동차 산업은 전례 없는 기회와 도전에 직면해 있습니다. 자동차는 더 이상 단순한 운송 수단을 위한 기계전자 제품이 아니라, 집과 회사 외의 세 번째 공간으로 진화했습니다. 자동차는 깊은 소프트웨어와 하드웨어 통합을 통해 더욱 지능화되었습니다.
소비자의 관점에서, 운전성과 안전성은 자동차의 기본 구성 요소가 되었습니다. 100년 이상 존재해 온 산업 제품인 자동차에 대해 모든 사람은 더 높은 요구를 가지고 있습니다: 지능형 자동차. 이는 운전자 보조 기능뿐만 아니라 OTA(Over-the-air) 프로그래밍, 음성 제어, 터치 스크린 중앙 컨트롤러 등에서도 나타나며, 이는 자동차 소프트웨어의 실시간 데이터 처리, 컴퓨팅 성능, 제품 반복에 대한 더 높은 요구를 필요로 합니다.
비즈니스 애플리케이션의 관점에서, IoV(차량 인터넷)와 상하류 데이터는 점점 더 복잡해지고 있습니다. 결과적으로 정보의 고립을 깨고, 다양한 시스템의 데이터를 개방하며, 비즈니스 혁신을 가속화하는 것이 제조 및 자동차 회사들의 고민거리가 되었습니다.
기술 변화의 관점에서, 클라우드 네이티브와 오픈소스 소프트웨어는 제조 및 자동차 회사들이 디지털 전환을 가속화할 수 있는 기술적 지원을 제공합니다. 이러한 회사들은 클라우드 네이티브 기술을 잘 활용함으로써 전환의 기회를 잡을 수 있습니다.
오늘날, 운전자 보조 기능이 있는 전기 자동차에는 5,000개 이상의 칩이 탑재되어 있으며, 수억 줄의 코드가 실행됩니다. "소프트웨어 정의 차량(SDV)"의 새로운 시대가 점점 다가오고 있습니다.
Apache APISIX 오픈소스 커뮤니티의 통계와 연구를 분석한 결과, Apache APISIX는 제4차 산업혁명에서 널리 사용되고 있으며, 디지털 공장, 스마트 차량, AI 칩, 자율 주행, 자동차 기업의 마이크로서비스 관리, 자동차 금융, 자동차 B2B 판매, 중고차 B2C 판매 등 다양한 분야를 포괄하고 있습니다.
아래는 몇 가지 예시입니다:
- 디지털 공장: European Factory Platform
- 자동차 회사: Geely Auto, XPeng Motors, Lotus Cars, Li Auto, BeyonCa Autos
- AI & 자율 주행: Horizon Robotics, Momenta
- 자동차 금융: BMW Financial Services
- 음성 인식: AiSpeech
클라우드 네이티브 API 게이트웨이인 Apache APISIX는 자동차, IoT 기기, 모바일 앱 등 다양한 단말기에서 오는 API 요청을 처리할 수 있는 기본 구성 요소입니다. Apache APISIX가 자동차 관련 산업에서 널리 사용되면서, 더 많은 기업 사용자의 요구를 충족시키기 위해 오픈소스 프로젝트가 앞으로 나아가고 있습니다.
우리는 API7 Enterprise와 API7 Cloud를 통해 축적된 산업 솔루션을 제공할 것입니다. 문의 사항이 있으시면 https://api7.ai/contact로 연락주세요.
이어서, 몇 가지 전형적인 사용 사례를 통해 API 게이트웨이와 Apache APISIX가 기업 사용자의 실질적인 문제를 해결하는 방법을 알아보겠습니다.
European Factory Platform, APISIX를 보안 게이트웨이로 사용
EFPF(European Factory Platform)는 유럽 위원회의 Horizon 2020 프로그램에서 지원받는 디지털 제조 플랫폼(DMP) 연합체입니다. 이 연합체에는 Siemens, Airbus SE, 연구소 및 대학 등 10개 유럽 국가의 30개 기업과 조직이 포함되어 있습니다. 이들은 Industry 4.0, IoT, 인공 지능, 빅 데이터, 디지털 제조 등에서 혁신적인 솔루션을 제공합니다.
EFPF는 다양한 도구와 서비스를 제공하며, 이 중 많은 도구와 서비스는 다른 도구와 서비스가 사용할 수 있는 하나 이상의 API를 제공합니다. EFPF 플랫폼은 API 게이트웨이를 사용하여 API 사용을 모니터링, 제어 및 분석할 수 있습니다. 또한, API 게이트웨이는 플랫폼 내 다양한 기업이 노출한 API와 사용자가 상호 작용하는 방식을 정의하는 정책을 허용합니다.
EFPF 플랫폼에서 사용되는 API 관리 도구 또는 API 보안 게이트웨이(ASG)는 Data Spine의 구성 요소입니다. ASG는 모든 API 호출의 경계 게이트웨이이며, EFPF 생태계에서 외부에 노출된 서비스를 제공합니다. 프록시 서비스 역할을 하는 동시에, 진행 중인 서비스 호출에 보안 정책을 적용합니다. EFPF에서 ASG는 Apache APISIX를 사용하여 구현되었습니다.
Apache APISIX를 선택한 이유는 다음과 같습니다:
- 속도: ASG는 Data Spine에서 생태계 내 다른 플랫폼으로의 호출을 프록시하므로 호출의 지연 시간이 최소화됩니다.
- 사용자 정의 플러그인: ASG는 사용자 정의 보안 플러그인을 개발하기 위해 최소한의 코드/구성을 의존해야 합니다.
- 라이선스: ASG 구현을 위해 허가형 라이선스(Apache / MIT)가 선호됩니다.
- MQTT 지원.
이 외에도, API 관리의 다음과 같은 문제도 해결되었습니다:
- API 구성, 생명주기 관리 및 서비스 발견
- API 사양의 일관성과 완전성
- 서비스 제공자와 소비자 간의 인터페이스 계약 관리
EFPF가 제공하는 API 게이트웨이를 통해, 연합체 내 30개 기업은 API를 통해 다양한 유형의 데이터를 제공, 획득 및 교환할 수 있으며, 이를 기반으로 API 권한 관리와 보안 제어를 수행할 수 있습니다.
XPeng Motors, APISIX를 사용하여 스마트 코크핏 구축
XPeng Motors는 중국의 새로운 자동차 제조 세력 중 하나로, 설립 이후 "스마트 카"에 대한 독자적인 연구 개발을 고수하며, Li Auto Inc.와 Nio Inc.와 비교해 가장 높은 비율인 20%를 연구 개발에 투자하고 있습니다.
자동차의 소프트웨어와 하드웨어를 자동차 회사가 독자적으로 개발해야 하는지에 대한 논쟁이 있어왔습니다. 많은 사람들은 자동차 회사가 통합에만 집중하면 된다고 생각하며, 많은 돈과 시간을 투자해 자체 개발하는 것은 비용 효율적이지 않다고 생각합니다. 그러나 다른 관점에서, 소프트웨어와 하드웨어의 자체 개발은 제품의 통일되고 완벽한 사용자 경험을 실현하고, 경험 축적 후 후속 반복에서 유리한 위치를 유지할 수 있습니다.
XPeng Motors의 "스마트 코크핏"을 예로 들어, Apache APISIX의 역할을 소개하겠습니다.
XPeng Motors의 터치 스크린 중앙 컨트롤러에서 사용자는 인터넷에 연결되어 음성 인식 및 제어, 지도 및 내비게이션, 음악, 영화 등 모든 기능을 사용할 수 있으며, 이 뒤의 API는 Apache APISIX를 통해 처리됩니다.
IoV의 애플리케이션과 서비스는 Weibo, WeChat 등의 인터넷 제품과 같은 높은 동시 접속과 트래픽을 가지지 않으며, 안정성과 낮은 지연 시간에 더 중점을 둡니다. 음성 인식 및 내비게이션과 같은 중요한 서비스가 중단되거나 지연되면 사용자는 이를 XPeng Motors의 문제로 여기며, 이는 사용자 만족도와 경험을 크게 떨어뜨립니다.
또한, XPeng Motors는 더 많은 데이터 전송 및 분석을 개발해야 하며, 클라우드의 "뇌"와 자동차의 "뇌"를 연결해야 합니다:
-
운전을 더 안전하게: 운전 습관, 속도, 배터리 수명, 배터리 전력, 타이어 압력 등 기본적인 자동차 데이터와 온도, 날씨, 도로 혼잡도와 같은 실시간 데이터를 결합하여 자동차 운전의 안전성을 높입니다;
-
운전을 더 편안하게: 운전 보조, OTA, 자동 주차 등의 기능은 실시간 데이터 처리와 백그라운드에서 축적된 빅데이터 분석과 분리할 수 없습니다.
위의 기능을 더 완벽하게 구현하기 위해서는 기술적 수준에서 서비스의 가용성과 낮은 지연 시간을 보장해야 하며, 이는 스마트 카가 현재 노력하고 있는 부분입니다.
Apache APISIX를 사용하기 전, XPeng Motors의 스마트 코크핏 기능 하에서, 자동차 기기에서 발행된 API의 실행 순서는 Client API -> Alibaba Cloud SLB(Server Load Balancer) (4계층) -> NGINX (7계층) -> Zuul -> Service였습니다.
위 그림의 가장 왼쪽은 XPeng Motors의 클라이언트 측을 나타냅니다. 클라이언트 요청의 주요 소스는 일반 자동차 클라이언트, 인터넷의 웹 페이지 또는 브라우저, XPeng 공식 앱 또는 기타 앱 및 미니 프로그램입니다.
그런 다음 수집된 트래픽은 운영자 모듈을 거쳐 내부 자체 구축 컴퓨터실의 SLB로 전송되어 표준 4계층 프로토콜 전달을 수행합니다. 이를 트래픽 데이터의 수신 포트로 간주할 수 있으며, 트래픽을 첫 번째 NGINX, 두 번째 NGINX로 변환한 후 최종적으로 Zuul에서 처리합니다.
이 아키텍처는 빠르게 문제에 직면했습니다:
-
API 요청은 두 개의 API 게이트웨이인 NGINX와 Zuul을 거치며, API 전달 과정에서 한 번의 점프 시간이 증가합니다. 그러나 각 조정은 서비스 가용성과 지연 시간 성능에 영향을 미칩니다.
-
이 기능을 회사 내부 시스템과 연결하기 위해 2차 개발을 할 때, NGINX는 C 모듈을 사용하여 개발해야 하며, Zuul은 Java로 작성되어 있습니다. 언어 차이는 개발 주기와 사후 유지 보수 비용을 증가시킵니다.
-
라우트와 SSL 인증서를 업데이트한 후, NGINX를 재시작해야 하며, 서비스가 불가능한 간격이 발생하여 서비스 제공에 일정 정도 영향을 미칩니다.
또한, 기본 구성 요소인 API 게이트웨이는 XPeng Motors 인프라 팀이 유지 관리해야 하는 구성 요소 중 하나입니다. 현재 기능적 수준의 일부 문제점을 고려하여, XPeng Motors는 활발한 커뮤니티, 장기적인 반복, 건강한 개발을 가진 프로젝트를 찾아 아키텍처 수준에서 자체 비즈니스의 사용 및 유지 보수 비용을 줄이기를 희망합니다.
APISIX를 사용한 후, 그들의 아키텍처는 아래와 같이 조정되었습니다.
APISIX를 사용한 후, 처리 흐름이 변경되었음을 알 수 있습니다. 자동차 기기에서 발행된 API의 실행 순서는 Client API -> Alibaba Cloud SLB (4계층) -> APISIX (7계층) -> Service로 변경되었습니다.
실행 순서의 변경에서 볼 수 있듯이, 이전 처리 흐름의 두 번째 NGINX와 Zuul이 APISIX로 대체되었으므로, 링크는 4개의 구성 요소만 거치면 됩니다.
APISIX-DP는 새로운 아키텍처에서 두 가지 역할을 합니다. 첫 번째 역할은 K8s Ingress로 트래픽 입출력 역할을 하는 것이고, 두 번째는 마이크로서비스 게이트웨이 역할입니다. 그렇다면 왜 새로운 프로세스에서 NGINX를 유지하는지 궁금할 수 있습니다. 이는 주로 관련 트래픽을 분배하고, 해당 마이크로서비스 API 게이트웨이를 식별한 후 Service로 전송하기 위함입니다.
XPeng Motors의 실질적인 수준에서, 새로운 프로세스는 APISIX를 통해 다양한 구성 요소를 연결하는 데 도움을 줍니다. 이렇게 하는 장점은 게이트웨이 제품에 대해 더 높은 요구를 제기하며, 강력한 안정성뿐만 아니라 내부의 모든 마이크로서비스 시스템을 지원해야 한다는 것입니다. 또한, 사용자 수준에서 이 연결은 서비스 내에서 더 통일된 트래픽 관리를 가능하게 하며, 전체 통신 링크를 단축하고 지연 시간을 줄입니다.
따라서, APISIX를 도입함으로써 XPeng Motors의 인프라는 기술적 수준에서 더 많은 가능성을 가지게 되었습니다:
- Apache APISIX는 더 많은 등록 및 서비스 발견 구성 요소에 연결할 수 있어, 여러 내부 시스템의 마이그레이션과 아키텍처 조정을 더 유연하게 할 수 있습니다.
- APISIX는 MQTT 플러그인을 가지고 있어 IoT 단말기의 요청을 처리할 수 있습니다.
- APISIX의 아키텍처와 생태계는 더 클라우드 네이티브하며, 이는 향후 멀티 클라우드 및 하이브리드 클라우드 아키텍처에 더 친화적이며, 회사의 기술 진화에 대한 장기적인 계획과 일치합니다.
앞으로, Apache APISIX는 XPeng Motors가 남북 API 트래픽을 처리하는 데 도움을 줄 뿐만 아니라, IoT 기기, K8s Ingress, 서비스 메시 등 더 많은 트래픽을 처리하여 인프라 복잡성과 유지 보수 비용을 줄일 수 있습니다.
Geely Auto, Apache APISIX를 기반으로 글로벌 트래픽 관리 조정
Geely Auto는 1996년에 설립된 민간 소유의 자동차 제조업체로, 주요 사업은 자동차 및 자동차 부품의 제조 및 유통입니다. Geely Auto는 Apache APISIX가 오픈소스로 공개된 지 약 1년 후에 프로덕션 환경에서 APISIX를 사용하기 시작했습니다.
Geely의 사용 시나리오에서, APISIX는 주로 마이크로서비스 게이트웨이 시나리오에서 일부 비즈니스를 구현하는 데 사용됩니다. 아래 그림과 같이, Geely는 내부적으로 일부 관련 기능을 개발하고 사용하고 있습니다.
Geely의 현재 APISIX 적용은 주로 회사 내부 트래픽 관리에 중점을 두고 있으며, 마이크로서비스를 위한 API 게이트웨이에 초점을 맞추고 있습니다.
APISIX를 사용함으로써, Geely는 내부 API를 시장화하여 생산자와 소비자 간의 서비스 분리와 상호 구독을 실현하며, 이에 대한 통합 모니터링 또는 관리를 수행해야 합니다.
비즈니스 유형과 규모가 점점 증가함에 따라, Geely의 글로벌 분포가 더 넓어졌습니다. 따라서, 글로벌 트래픽 처리 또는 데이터 센터 간의 요청이 나타나기 시작했습니다.
이 경우, APISIX는 어떤 역할을 할까요?
외부적으로, 사용자의 요청은 먼저 공용 네트워크에 접근하여 가장 가까운 노드(예: Cluster A)에 도달합니다. 그러나 예를 들어, 해당 노드를 사용할 수 없거나 데이터 주권과 관련된 문제가 발생하면, Cluster A가 사용자의 현재 요청을 처리할 수 없음을 알 수 있습니다. 위의 두 상황을 기반으로, Geely는 내부적으로 다층 네트워크를 구현했습니다.
이 다층 네트워크 아키텍처는 글로벌 트래픽 거버넌스를 달성하고, 크로스 클러스터 스케줄링을 수행하여, 카나리 릴리스와 다국적 데이터 주권 또는 크로스 데이터 센터 시나리오의 고가용성을 실현합니다.
Horizon Robotics, APISIX를 기반으로 멀티 클라우드 서비스 호출 및 인증 구현
Beijing Horizon Robotics Technology R&D Co., Ltd.는 주로 에지 AI 칩의 연구 개발에 종사하며, 선도적인 인공 지능 알고리즘과 칩 설계 능력을 가지고 있습니다.
자동차 등급 인공 지능 칩의 유일한 대량 생산을 달성한 Horizon Robotics는 기본 기술의 지원을 통해 자동차 산업의 혁신과 발전을 촉진하기 위해 노력하고 있습니다.
빠르게 성장하는 AI 회사로서, 비즈니스 관리에 대한 친화성과 안정적인 운영을 보장하는 것이 중요하며, 게이트웨이는 첫 번째 검문소 역할을 합니다.
이전 게이트웨이에서 해결할 수 없는 문제로 인해, Horizon은 게이트웨이를 다시 선택했고, 최종적으로 Apache APISIX Ingress Controller를 회사의 트래픽 게이트웨이로 선택하여 서비스를 통합적으로 제공합니다.
APISIX Ingress의 선택은 주로 다음과 같은 점에 기반합니다:
-
풍부한 플러그인: Apache APISIX는 훌륭한 플러그인 생태계를 가지고 있습니다. APISIX가 지원하는 모든 플러그인은
apisix-ingress-controller
를 사용하여 선언적 구성이 가능하며,ApisixRoute
하의 단일backend
에 대해 사용자 정의 플러그인을 만들 수 있습니다. -
시각적 구성: APISIX Dashboard를 통해 각
apisix route
를 볼 수 있습니다. 동일한 도메인 이름이 여러namespace
또는 여러yaml
파일에 구성된 경우, 충돌이 발생할 때 APISIX Dashboard에서path
접두사를 검색하여 빠르게 찾을 수 있습니다. -
세밀한 검증: APISIX Ingress Controller는 관리하는 CRD에 의해 선언된 리소스를 검증합니다. CRD에 존재하지 않는 Service가 선언된 경우, 오류 메시지는
ApisixRoute
의event
에 저장됩니다. 잘못된 작업은 적용되지 않으므로, 일부 오작동으로 인한 문제를 어느 정도 줄일 수 있습니다. -
풍부한 기능: APISIX는 핫 리로딩 및 핫 플러그인, 프록시 요청 재작성, 다중 요소 인증, 다국어 플러그인 개발 등을 지원합니다. 더 많은 기능은 APISIX 기능을 참조하세요.
-
활발한 커뮤니티: 다른 커뮤니티와 비교하여, APISIX는 많은 활발한 개발자와 GitHub Issues에 대한 빠른 응답을 가지고 있습니다.
-
높은 성능: 아래 그림에서 볼 수 있듯이, Envoy와의 성능 테스트 비교에서 APISIX의 성능은 Envoy의 약 120%입니다. 코어 수가 많을수록 QPS 차이가 더 큽니다.
아키텍처 적용
아래 아키텍처 다이어그램에서 볼 수 있듯이, APISIX Ingress는 전체 트래픽 입구 역할을 합니다.
즉, 데이터 관리 시스템, 문제 분석 시스템, 명령줄 도구, 웹, SaaS 플랫폼 또는 OpenAPI 등 모든 접근 트래픽은 APISIX Ingress를 통해 업스트림(Business Services)으로 들어갑니다.
회사는 특별한 인증 서비스를 가지고 있으므로, Apache APISIX의 forward-auth
플러그인을 직접 사용하여 외부 인증을 구현합니다.
게이트웨이 계층에서, 모든 트래픽은 접근 도메인 이름을 통해 들어갑니다. 이때, 트래픽은 먼저 LVS(Linux Virtual Server)를 통과한 후, LVS는 백엔드 APISIX 노드로 전달합니다. 마지막으로, APISIX는 라우팅 규칙에 따라 트래픽을 분배하고 해당 Pod로 전달합니다.
LVS가 APISIX Ingress를 직접 가리킬 수 있도록, APISIX Ingress의 기본 포트를 9180에서 80으로 변경하여 트래픽을 더 쉽게 전달하고 처리할 수 있도록 했습니다.
실질적 적용
멀티 클라우드 환경에서의 서비스 호출에서, 일부 비즈니스 트래픽은 먼저 로컬 IDC(Internet Data Center)에 도달한 후 APISIX Ingress를 통해 Pod로 전달됩니다. 또한, 일부 서비스는 도메인 이름을 통해 Alibaba Cloud 서비스에 접근하며, 일부 시나리오에서는 서비스 간 호출과 관련된 서비스가 있습니다.
주로 멀티 클라우드 훈련과 관련이 있습니다. 사용자는 IDC를 입구로 사용하며, 클러스터를 선택한 후 해당 클라우드 클러스터에 작업을 제출할 수 있습니다.
Horizon Robotics가 처음 Apache APISIX Ingress를 사용하기 시작했을 때, Apache APISIX는 forward-auth
플러그인을 지원하지 않았으므로, Horizon은 apisix-go-plugin-runner
를 기반으로 사용자 정의 플러그인을 만들었습니다.
그러나 이는 gRPC 호출을 한 층 더 추가하여, 많은 로그를 볼 수 없어 디버깅이 더 어려워졌습니다. 올해 초, Apache APISIX가 forward-auth
플러그인을 지원하게 되었고, Horizon Robotics는 사용자 정의 플러그인을 공식 플러그인으로 교체하여 gRPC 호출을 한 층 줄이고, 더 편리한 모니터링을 가능하게 했습니다.
요약
"소프트웨어 정의 차량"의 맥락에서, API7.ai는 XPeng Motors, Geely Auto, Horizon Robotics와 같은 자동차 회사들이 차량 인터넷의 연결과 데이터를 더 잘 관리할 수 있도록 도와주며, 고객에게 더 안정적인 서비스와 빠른 반복 제품을 제공합니다.
비슷한 요구가 있다면, 저희 웹사이트 https://api7.ai/contact를 방문해 주세요.