OTA 시스템 설계 및 구현

Nexus, Fleet Over-the-air


GoLang gRPC ArgoCD Kubernetes Work
구조
구조

자율주행 차량에 탑재된 소프트웨어 및 펌웨어 버전을 서버에서 식별하고, 최신 업데이트를 안전하게 배포할 수 있는 OTA 시스템을 설계하고 구현하였습니다. 차량 내 소프트웨어는 컨테이너 기반으로 배포되며, 각 차량에 설치된 경량 Kubernetes 환경에서 실행됩니다. ArgoCD를 사용하여 업데이트를 구현하였으며, ArgoCD에서 제공하는 배포 전략을 그대로 사용할 수 있습니다. 사용자는 필요한 경우 직접 선언적 배포 및 버전관리를 자동화할 수 있습니다.

주요 기능으로는:

  • 차량 간 통신은 사내 발급 TLS 인증서를 기반으로 상호 검증 절차(mTLS)를 통한 보안.
  • 배포되는 컨테이너 이미지도 서명하여 인증되지않은 이미지 실행 방지.
  • 차량에 설치된 에이전트(Beacon)를 통해 차량과 중앙 관리 시스템(Nexus) 간의 연동을 간소화
  • 차량 식별 및 접근을 추상화한 프록시(Pylon)를 통해 사용자 및 개발 편의성을 제공.
  • Air-gapped 환경에서도 운용 가능하도록 로컬 컨테이너 이미지 레지스트리를 차량 내에 구축하여, 외부 네트워크 없이 이미지 업데이트 지원.
사용자 관리
사용자 관리
버전 관리
버전 관리

데모를 위한 간단한 UI를 구현하였으며 사용자 및 차량 관리, 차량에 설치된 소프트웨어 버전 관리 컨셉을 제안하였습니다.