SDV

BlueChi 란

Zino. 2025. 3. 19. 05:32

BlueChi

자동차 산업에서 소프트웨어 정의 차량 개념을 실현하기 위한 프로젝트로, 차량이 소프트웨어적으로 새로운 기능을 추가하거나 제거할 수 있도록 설계된 시스템

 

Ecilpse 사에서 개발한 시스템이다

 

deterministic multi-node service controller라 한다.

실행결과를 보장하는 시스템이라는 것이다.

여러개의 노드(PC)가 존재하며 이 노드들을 하나의 시스템처럼 관리할 수 있다는 말이다.

클라우드를 구성할때 K8s로 PC들을 관리하는것과 같은 맥락이다.

즉, BlueChi는 여러 개의 노드에서 실행되는 서비스들을 "일정한 규칙에 따라 예측 가능하게 관리"하는 컨트롤러라는 것이다.

 

 

C언어로 작성되었으며 D-Bus API를 통해 Systemd와 통합되어 실행된다.

D-Bus는 Desktop Bus를 의미하며 여러 PC들간의 통신방식을 의미한다.

그리고 Systemd는 Linux에서 시스템과 서비스 관리를 담당하는 핵심 프로세스를 의미한다.

BlueChi는 여러 노드를 직접 컨트롤하기 위해 각 노드의 Systemd를 D-Bus API를 통해 컨트롤 한다는 것이다.

 

 

BlueChi는 bluechi-controller service, bluechi-agent services, bluechi command line program 으로 구성되어있다.

 

bluechi-controller는 기본 컨트롤러 역할을 하며 primary node에서 실행된다.

-> 중앙 컨트롤러 역할을 하며 여러노드에 있는 bluechi agent들에게 명령을 보내고, 상태를 모니터링하는 핵심 요소이다.

 

bluechi-agent service는 각 노드에서 실행되는 agent 이고 각 노드의 systemd와 통신하여 서비스를 실행, 중지, 재시작 하는 역할을 수행한다.

 

bluechi command line program은 관리자가 명령을 실행할 수 있는 CLI 환경을 말한다.

 

출처 https://bluechi.readthedocs.io/en/latest/architecture/

 

위 그림을 통해 BlueChi의 구조를 확인 할 수 있다.

여기엔 총 3개의 노드가 있고 하나는 Primary 노드이자 bluechi-controller와 bluechi-agent가 실행되는 노드이고

나머지 두개의 노드는 bluechi-agnet만 실행된다.

bluechi-controller와 agent는 D-Bus를 통해 통신을 하고 각 노드에서 bluechi-agent는 systemd와 통신하며 서비스들을 제어하는 것을 확인할 수 있다.

 

 

각 노드에서 bluechi agent service가 상태를 모니터링 하고 bluechi-controller 에게 보고를 하거나

bluechi-controller service가 노드의 bluechi-agent service에게 명령을 주는 방식으로 실행된다.

 

BlueChi는 실행중인 서비스의 변화를 모니터링하고 보고하지만, 직접 조치를 취하지 않는다.

-> 상태 관리는 하는 프로그램이 필요하다.

K8s에서 CRD와 Operator를 만들어 Pod의 상태를 자동으로 관리하는 것처럼, BlueChi에서도 상태를 보고받아 자동으로 조치하는 별도의 프로그램을 개발해야한다.

 

 

즉, K8s에선 파드의 자동복구를 수행하거나 하는 등의 기능이 있지만 BlueChi에는 그런 과정이 없기에 여러 상태에 대한 작업을 수행할 상태 관리자 프로그램이 필요하다.

BlueChi의 bluechi-controller가 감지한 서비스의 실행상태 변화를 D-Bus 메세지나 로그를 통해 확인할 수 있다고 한다.

D-Bus의 메세지를 읽어오는 프로그램을 개발하여 서비스 상태를 지속적으로 모니터링해야한다.

 

이런 모니터링 프로그램을 Mixed Criticality를 가진 task들을 관리할 수 있도록 만들면 SDV에서 BlueChi를 효과적으로 사용할 수 있지 않을까 생각한다.

'SDV' 카테고리의 다른 글

BSW(Basic Software)란  (0) 2025.09.20