쿠버네티스 기반 5G-V2X
Mediation Cluster 개발
Contents
01 네? 뭐라구요? 나에게 떨어진 미션
02 Mediator, 어떻게 만들었나
03 Mediator의 진화, Mediation Cluster
04 QnA
김성화
Connected Car 플랫폼 개발 4년차
자율주행 플랫폼 Mediator 개발 담당
GiGA FMS G/W 개발 담당
팀 내 Technical Architect 담당
Java & Vert.x 기반 Backend 개발
mail : seonghwa.kim@kt.com
1. 네? 뭐라구요? 나에게 떨어진 미션
네? 뭐라구요? 나에게 떨어진 미션
V2X 자율주행 플랫폼 개발에 참여하게 되다!
01
너 나랑 일 하나 같이 하자!
네? 뭐라구요? 무슨 플랫폼 이요?
5G V2X 자율주행 플랫폼.
네? 뭐라구요? 나에게 떨어진 미션
V2X? 그게 어떤 기술인데?
01
자동차와
무언가가
연결된다!
Something
네? 뭐라구요? 나에게 떨어진 미션
V2X? 그게 왜 필요한데?
01
차의 인식 범위
V2X로 얻을 수 있는 정보 범위
네? 뭐라구요? 나에게 떨어진 미션
V2X? 2가지가 있다고?
01
WAVE C-V2X
Road Side Unit 을 통한 통신
별도의 통신 Unit 인프라 구축 필요
이미 통신 Unit에 내장된 차량과의 통신 기능
LTE/5G 기지국을 통한 V2X 통신
구축된 기지국 활용 가능
V2X 통신을 위한 플랫폼 개발 필요
네? 뭐라구요? 나에게 떨어진 미션
우리 Edge 단은 이런 기능들이 필요하고….
01
신속한 장애 복구
손쉬운 버전 업
표준을 준수하는 메시지 규격
DL 기반으로 만들어진 모델 활용
5G 네트워크 이용한 빠른 데이터 전달
모든 X의 데이터를 중계
Mediator 모니터링
V2V 까지도 커버
데이터 과부하 자동 Scale out
네? 뭐라구요? 나에게 떨어진 미션
우리, 이 모듈을 V2X Mediator 라고 부르자
01
V2X Mediator
모든 X의 데이터를 중계한다
2. Mediator, 어떻게 만들었나
Mediator, 어떻게 만들었나
우리의 Mediator에게 바라는 역할
02
환경에 받는 영향이 적은 구조
Fault Tolerance, Resource Managing에 강력한 구조
수집과 처리, 제공이 서로 영향을 받지 않는 구조
필요한 메시지셋 추가/제외가 유연한 구조
Mediator, 어떻게 만들었나
어디 갖다 놔도 동일한 설치
02
5G Edge에 설치 필요
8 α개의
Mediator, 어떻게 만들었나
어디 갖다 놔도 동일한 설치, Containerize
02
Host OS와 격리된 환경
어디든 동일한 조건에서 Application 설치 가능!
Mediator, 어떻게 만들었나
다양한 상황에 대처할 수 있는 힘
02
Mediator, 어떻게 만들었나
다양한 상황에 대처할 수 있는 힘, Kubernetes
02
. . .Mediator
pod
부하 증가
Mediator
pod
Worker Node1 Worker Node2 WorkerNode N
Mediator, 어떻게 만들었나
여러 메시지셋을 쉽게 수집&처리&제공
02
표준이라는 규격서를 까보니….
PVD,
BSM,
SPaT,
RTCM,
MAP,
RSA,
.
.
.
Mediator, 어떻게 만들었나
여러 메시지셋을 쉽게 수집&처리&제공, Vert.x Framework
02
Netty Based
Event Driven
Multi-Thread
Polyglot
Various Server
libs
Mediator, 어떻게 만들었나
여러 메시지셋을 쉽게 수집&처리&제공, Vert.x Framework
02
etc
5G
Listener
Event Bus
BSM
PVD
RSA
etc
kt Cloud Env.
Mediator, 어떻게 만들었나
How to control Vert.x? TCP Listener Verticle 일부
02
Your own netSocketConnectHandler
Mediator, 어떻게 만들었나
Chain of Responsibility Pattern
02
In method netSocketConnectHandler ()
Mediator, 어떻게 만들었나02
Mediator
pod
. . .
Mediator
pod
Other
Module
pod Other
Module
pod
Other
Module
pod
Other
Module
pod
Other
Module
pod
Other
Module
pod
Other
Module
podOther
Module
pod
Other
Module
pod
Worker Node 1 Worker Node 2 Worker Node N
3. Mediator의 진화, Mediation Cluster
Mediator의 진화, Mediation Cluster03
색연필의 함정
많이 일하는 모듈, 적게 일하는 모듈
Mediator의 진화, Mediation Cluster04
더 필요한 모듈만 분신술을 쓰자, MSA
5G Listener Verticle
PVD BSM EVA
RSA SPaT TIM MAP
RTCM
5G Listener Verticle
PVD
BSM EVA
RSA
SPaT
TIM
MAP
RTCM
5G Listener Verticle
PVD BSM EVA
RSA SPaT TIM MAP
RTCM
5G Listener Verticle
PVD BSM EVA
RSA SPaT TIM MAP
RTCM
PVD
PVD
5G Listener Verticle
Mediator의 진화, Mediation Cluster04
그런데 어떻게 연락을 하지?
5G Listener Verticle Event Bus
Worker Node 1 Worker Node 2 Worker Node 3
EVA 메시지 처리 Verticle
한테 이거 전달 좀 해줘!
나 걔 어디 사는지 몰라….
EVA
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG
“Vert.x의 Cluster 모드를 활용해보자!
그러면 물리적/논리적으로
분리 되어 있어도 문제가 없다는데?”
Cluster 모드를 쓰려면
IMDG가 필요하다.
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG
IMDG
IMDG IMDG
IMDG
Application
Replication
Synchronization
Read/Write
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG
성숙도
성능
Vert.x
레퍼런스
높음 높음 낮음
높음 매우 높음높음
적음 매우 적음많음
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast
Micro Service의
데이터 공유 목적으로 활용 가능
JVM 위에서 Running
별도 설치 불필요
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast
5G Listener Verticle
PVD
BSM EVA
RSA
SPaT
TIM
MAP
RTCM
PVD
PVD
5G Listener Verticle
걱정 말아요!
Verticle들이
어디에 떠있든
하나의 Event Bus
인 것처럼
묶어줄게요!
Mediator의 진화, Mediation Cluster03
따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast
5G Listener
Verticle
아니 그런데….
묶어주긴 할건데….
격리된 환경이라….
컨테이너 내부
Mediator의 진화, Mediation Cluster03
Kubernetes와의 콜라보레이션, HazelcastKubernetesDiscoveryStrategy
5G Listener Verticle
PVD
BSM
EVA
RSA
SPaT
TIM
MAP
RTCM
PVD
PVD
5G Listener Verticle
k8s DNS를
이용해서
컨테이너 환경도
문제 없어요!
DNS or k8s API
Mediator의 진화, Mediation Cluster03
Kubernetes와의 콜라보레이션, HazelcastKubernetesDiscoveryStrategy
Maven pom.xml
Configuration for running Cluster mode
Mediator의 진화, Mediation Cluster03
Hazelcast Cluster Configuration을 자바 코드 내에서 하고싶다면?
코드 예시
Mediator의 진화, Mediation Cluster03
Mediation Cluster Dev Zone 구성도
. . .
Other
modules Other
modules
Other
modules
Other
modules
Other
modules Other
modules
Other
modules
Worker Node 1 Worker Node 2 Worker Node N
5G
Listener
PVD
BSM
EVA
RSA
SPaT
TIM
MAP
RTCM
PVD
5G
Listener
DNS or k8s API
QnA

쿠버네티스 기반의 5G V2X Mediation Cluster 개발

  • 1.
  • 2.
    Contents 01 네? 뭐라구요?나에게 떨어진 미션 02 Mediator, 어떻게 만들었나 03 Mediator의 진화, Mediation Cluster 04 QnA
  • 3.
    김성화 Connected Car 플랫폼개발 4년차 자율주행 플랫폼 Mediator 개발 담당 GiGA FMS G/W 개발 담당 팀 내 Technical Architect 담당 Java & Vert.x 기반 Backend 개발 mail : seonghwa.kim@kt.com
  • 4.
    1. 네? 뭐라구요?나에게 떨어진 미션
  • 5.
    네? 뭐라구요? 나에게떨어진 미션 V2X 자율주행 플랫폼 개발에 참여하게 되다! 01 너 나랑 일 하나 같이 하자! 네? 뭐라구요? 무슨 플랫폼 이요? 5G V2X 자율주행 플랫폼.
  • 6.
    네? 뭐라구요? 나에게떨어진 미션 V2X? 그게 어떤 기술인데? 01 자동차와 무언가가 연결된다! Something
  • 7.
    네? 뭐라구요? 나에게떨어진 미션 V2X? 그게 왜 필요한데? 01 차의 인식 범위 V2X로 얻을 수 있는 정보 범위
  • 8.
    네? 뭐라구요? 나에게떨어진 미션 V2X? 2가지가 있다고? 01 WAVE C-V2X Road Side Unit 을 통한 통신 별도의 통신 Unit 인프라 구축 필요 이미 통신 Unit에 내장된 차량과의 통신 기능 LTE/5G 기지국을 통한 V2X 통신 구축된 기지국 활용 가능 V2X 통신을 위한 플랫폼 개발 필요
  • 9.
    네? 뭐라구요? 나에게떨어진 미션 우리 Edge 단은 이런 기능들이 필요하고…. 01 신속한 장애 복구 손쉬운 버전 업 표준을 준수하는 메시지 규격 DL 기반으로 만들어진 모델 활용 5G 네트워크 이용한 빠른 데이터 전달 모든 X의 데이터를 중계 Mediator 모니터링 V2V 까지도 커버 데이터 과부하 자동 Scale out
  • 10.
    네? 뭐라구요? 나에게떨어진 미션 우리, 이 모듈을 V2X Mediator 라고 부르자 01 V2X Mediator 모든 X의 데이터를 중계한다
  • 11.
  • 12.
    Mediator, 어떻게 만들었나 우리의Mediator에게 바라는 역할 02 환경에 받는 영향이 적은 구조 Fault Tolerance, Resource Managing에 강력한 구조 수집과 처리, 제공이 서로 영향을 받지 않는 구조 필요한 메시지셋 추가/제외가 유연한 구조
  • 13.
    Mediator, 어떻게 만들었나 어디갖다 놔도 동일한 설치 02 5G Edge에 설치 필요 8 α개의
  • 14.
    Mediator, 어떻게 만들었나 어디갖다 놔도 동일한 설치, Containerize 02 Host OS와 격리된 환경 어디든 동일한 조건에서 Application 설치 가능!
  • 15.
    Mediator, 어떻게 만들었나 다양한상황에 대처할 수 있는 힘 02
  • 16.
    Mediator, 어떻게 만들었나 다양한상황에 대처할 수 있는 힘, Kubernetes 02 . . .Mediator pod 부하 증가 Mediator pod Worker Node1 Worker Node2 WorkerNode N
  • 17.
    Mediator, 어떻게 만들었나 여러메시지셋을 쉽게 수집&처리&제공 02 표준이라는 규격서를 까보니…. PVD, BSM, SPaT, RTCM, MAP, RSA, . . .
  • 18.
    Mediator, 어떻게 만들었나 여러메시지셋을 쉽게 수집&처리&제공, Vert.x Framework 02 Netty Based Event Driven Multi-Thread Polyglot Various Server libs
  • 19.
    Mediator, 어떻게 만들었나 여러메시지셋을 쉽게 수집&처리&제공, Vert.x Framework 02 etc 5G Listener Event Bus BSM PVD RSA etc kt Cloud Env.
  • 20.
    Mediator, 어떻게 만들었나 Howto control Vert.x? TCP Listener Verticle 일부 02 Your own netSocketConnectHandler
  • 21.
    Mediator, 어떻게 만들었나 Chainof Responsibility Pattern 02 In method netSocketConnectHandler ()
  • 22.
    Mediator, 어떻게 만들었나02 Mediator pod .. . Mediator pod Other Module pod Other Module pod Other Module pod Other Module pod Other Module pod Other Module pod Other Module podOther Module pod Other Module pod Worker Node 1 Worker Node 2 Worker Node N
  • 23.
    3. Mediator의 진화,Mediation Cluster
  • 24.
    Mediator의 진화, MediationCluster03 색연필의 함정 많이 일하는 모듈, 적게 일하는 모듈
  • 25.
    Mediator의 진화, MediationCluster04 더 필요한 모듈만 분신술을 쓰자, MSA 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM PVD PVD 5G Listener Verticle
  • 26.
    Mediator의 진화, MediationCluster04 그런데 어떻게 연락을 하지? 5G Listener Verticle Event Bus Worker Node 1 Worker Node 2 Worker Node 3 EVA 메시지 처리 Verticle 한테 이거 전달 좀 해줘! 나 걔 어디 사는지 몰라…. EVA
  • 27.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG “Vert.x의 Cluster 모드를 활용해보자! 그러면 물리적/논리적으로 분리 되어 있어도 문제가 없다는데?” Cluster 모드를 쓰려면 IMDG가 필요하다.
  • 28.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG IMDG IMDG IMDG IMDG Application Replication Synchronization Read/Write
  • 29.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG 성숙도 성능 Vert.x 레퍼런스 높음 높음 낮음 높음 매우 높음높음 적음 매우 적음많음
  • 30.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast Micro Service의 데이터 공유 목적으로 활용 가능 JVM 위에서 Running 별도 설치 불필요
  • 31.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM PVD PVD 5G Listener Verticle 걱정 말아요! Verticle들이 어디에 떠있든 하나의 Event Bus 인 것처럼 묶어줄게요!
  • 32.
    Mediator의 진화, MediationCluster03 따로 또 같이, 녀석들을 묶어주는 IMDG, Hazelcast 5G Listener Verticle 아니 그런데…. 묶어주긴 할건데…. 격리된 환경이라…. 컨테이너 내부
  • 33.
    Mediator의 진화, MediationCluster03 Kubernetes와의 콜라보레이션, HazelcastKubernetesDiscoveryStrategy 5G Listener Verticle PVD BSM EVA RSA SPaT TIM MAP RTCM PVD PVD 5G Listener Verticle k8s DNS를 이용해서 컨테이너 환경도 문제 없어요! DNS or k8s API
  • 34.
    Mediator의 진화, MediationCluster03 Kubernetes와의 콜라보레이션, HazelcastKubernetesDiscoveryStrategy Maven pom.xml Configuration for running Cluster mode
  • 35.
    Mediator의 진화, MediationCluster03 Hazelcast Cluster Configuration을 자바 코드 내에서 하고싶다면? 코드 예시
  • 36.
    Mediator의 진화, MediationCluster03 Mediation Cluster Dev Zone 구성도 . . . Other modules Other modules Other modules Other modules Other modules Other modules Other modules Worker Node 1 Worker Node 2 Worker Node N 5G Listener PVD BSM EVA RSA SPaT TIM MAP RTCM PVD 5G Listener DNS or k8s API
  • 37.