Apache Kafka and MQTT : Connected Vehicles & V2X

jamangstangs·2022년 5월 19일
0

Kafka

목록 보기
5/5
post-thumbnail

Apache Kafka and MQTT : Connected Vehicles & V2X

Connected Vehicles and V2X

  • V2X : Vehicle to Everything 이라는 의미로, vehicle과 다른 어떤 entity와 소통이 있으며

    • Vehicle이 Entity에 영향을 받거나
    • Vehicle이 Entity에 영향을 주거나

    하는 방식의 Communication 방식이다.

  • V2X는 Vehicular Communication System이며, 아래와 같은 구체적인 type을 모두 포함하는 용어이다.

    • V2I : Vehicle to Infrastructure
    • V2N : Vehicle to Network
    • V2V : Vehicle to Vehicle
    • V2P : Vehicle to Pedestrian
    • V2D : Vehicle to Device
    • V2G : Vehicle to Grid, 전기차가 가진 전력을 전력망으로 재전송하는 기술

Technical Point of View for V2X and Connected Vehicles

MQTT + Kafka View

  • MQTT + Kafka10~20ms사이의 end-to-end Processing(E2E, EndPoint사이의 통신이라고 보자.)을 통해서 ms단위로 이동중인 대용량의 데이터를 위한 Scalable Real-Time Infrastructure을 제공한다.

    1. 모든 Mobility Service와 MQTT+Kafka가 결합하기에 충분한 시간이다.
    2. Backend IT Systems와 MQTT+Kafka가 결합하기에 충분한 시간이다.

    즉, Scalable real-time Infra를 MQTT+Kafka가 제공하는데, 이는 모빌리티 서비스와 IT Service의 BackEnd에 사용되기에 충분히 빠른 E2E Processing 속도를 낼 수 있음을 알 수 있다.

  • MQTT + Kafka는 Hard Real-Time에 쓰이지 않고, deterministic embedded systems에도 쓰이지 않는다.

    • Hard Real-Time : 작업의 시작, 완료에 대한 시간 제약조건을 지키지 못할 경우, 시스템에 치명적인 영향을 준다.
    • Soft Real-Time : 작업 실행에 대한 제약이 있지만, 지키지 못하더라도 시스템에 큰 영향을 끼치지 않는다.

    MQTT가 애초에 불안정한 Network Status에서도 동작하도록 설계되었기에 Hard Real-Time에 쓰이지 못하는 것이라고 볼 수 있다.

Safety Critical V2X View

  • 안전에 민감한 V2X Use Case는 다른 Communication 기술을 요구한다.

    • SideLink : 네트워크 서비스 지역 외에서도 차량 통신을 가능하게 하는 단말간 통신 방식
    • 5G New Radio (5G NR) : 라디오 엑세스 테크노롤지

    위과 같은 기술을 사용하여 Connected Vehicles사이의 연결, Vehicles와 Local Infrastructure의 sidelink를 연결해야 안전에 민감한 서비스를 제공할 수 있다.

Hard vs Soft Real Time View

  • Hard Real-Time한 Service에는 왜 쓰일 수 없을까?
    • Self-Driving Car : 차량 임베디드 시스템에 Image processing, Decision을 한다.
    • 이러한 Use Case는 Deterministic한 행동과 Hard real-time이 요구된다. (위의 용어설명 참고)
  • Soft Real-Time한 Service에는 어떤 종류가 있을까?
    • Emergency Service, Traffic Routing, Parking과 같은 3rd Party는 Soft Real-Time한 서비스이다.
    • 따라서, MQTT+Kafka를 이러한 서비스에서 사용해야한다.

MQTT and Kafka For Connected Vehicles

  • Remote Control, Command of a car에 관한 예시이다. 원격에서 Remote로 자동차 트렁크를 제어하거나, OTA update를 통해 새로운 자동차의 기능을 사는것과 같은 시나리오이다.

  • 기술적으로 분석해보자.

    1. MQTT & Kafka Cluster가 K8S 위에서 동작한다.

      • K8S는 하나의 template을 Data Center 혹은 Cloud 위에서 배포가 가능하게 한다.
      • K8S의 Template : Cluster에 Resource를 어떻게 배치할지 정의한 것
      • 따라서, 원하는 환경(Cloud, On-Premise)에 배포하기 쉽다.
    2. 아래와 같은 환경에서 양방향 통신이 보장되어 있다.

      • 실시간 Scalable, Reliable한 E2E 인프라
    3. 차량, 스마트폰 -> 안에 있는 MQTT Clients는 MQTT Cluster와 통신한다.

      • 수십만개의 Interface의 Connection을 가능하게 한다.
      • Bad network 상태에서 지원이 된다.
    4. Kafka는 Connected Vehicles와 Mobile Devices를 위한 Integration Backbone

      • Data Integration단계에서 제일 중요한 역할, 최상위라고 할 수 있다.

      사용예시는 아래와 같다.

      • Streaming ETL
      • Data Ingestion into IT Applications, DB, Cloud Services

V2X with MQTT and Kafka in a 5G Infrastructure

위의 인프라는 3가지의 카테고리와 네트워크로 나뉜다.

  • Edge : 5G기술로 Local Processing과 Remote Integration을 한다.
  • MEC : Multi-access Edge Computing, 트래픽과 서비스 컴퓨팅을 중앙 집중식 Cloud에서 Network Edge로 이동시켜 고객과 더 가깝게 만든다. AWS Wavelength가 해당 엣지 컴퓨팅 인프라를 제공한다.
    • 이를 위해서는 분산 데이터 센터, 분산 클라우드를 구축해야한다.
    • 위에 그림에서는, low-latency use cases를 위한 지역에 사용하였으며, AWS Wavelength를 사용한다.
  • Public Cloud : 다른 cloud native Applications를 사용하기 위해 AWS, Confluent Cloud를 사용한다.
    • Confluent : Apache Kafka에 기반한 Data Streaming Platform

해당 예제에서는 MQTT도 썼지만, HTTP 또한 Kafka Cluster와 Integration을 위해 사용되었다는 것을 확인할 수 있다. 다른 IT Applications들의 연결또한 아래와 같은 Kafka-Native Interfaces를 통해서 연결이 된다.

  • Kafka Clients
  • Kafka Connect
  • Confluents Cluster Linking

Examples

Autonomic의 TMC Platform

  • Transportation Mobility Cloud (TMC) : connected vehicle data에 접근하는 방식과 Remote Command를 보내는 방식의 표준의 방식
  • 이러한 플랫폼 위에서 운전자의 안전, 집단 management와 같은 smart mobility application을 빌드한다.
  • Autonomic사는 MQTT와 Kafka를 사용하여 수백만의 자동차를 연결할 수 있는 솔루션을 제공한다.
    • car의 data를 kafka로 실시간 전송하여 다른 microservices나 application을 플랫폼에서 사용할 수 있게 mesasge를 배포한다.

Kafka를 자동차의 Data Collector로 사용

  • 아우디가 수십만의 자동차의 데이터를 실시간 수집하는 방식을 예전부터 Connected cars에 적용해왔는데, 이때 데이터를 수집, 프로세스 하는 과정에서 Apache Kafka를 사용한다. 아래 그림을 참고하자.

Conclusion

  • V2V, V2P와 같은 Direct Communication은 Deterministic, Ultra-low Latency가 요구된다.
  • 따라서 해당 도메인에서는 HQTT or Kafka와 같은 기술을 사용하지 않는다. 5G 기술을 사용한다.

출처 : https://www.kai-waehner.de/blog/2021/03/19/apache-kafka-mqtt-part-2-of-5-v2x-connected-vehicles-edge-hybrid-cloud/

profile
자망스탕스

0개의 댓글