Invisible Container Fortress with EB corbos Linux - built on Ubuntu
우분투 기반 EB corbos 리눅스를 이용하는 Invisible Container Fortress
2023년 11월호 지면기사  / 글 | 마커스 셰퍼(Marcus Schafer), Automotive OS소프트웨어 엔지니어, 일렉트로비트(Elektrobit)



차량용 고성능 컴퓨팅(HPC)의 장점 중 하나는 기능을 단일 ECU에 통합하고 기능의 독립성을 보장하면서도 이를 통해 발생하는 시너지 효과를 활용한다는 것이다. 이 글에서는 런타임 환경을 격리하고 간섭 위험 없이 타사(Third-party) 소프트웨어를 원활하게 통합할 수 있는 개념인 리눅스 컨테이너의 강력한 기능에 대해 알아본다.

글 | 마커스 셰퍼(Marcus Schafer), Automotive OS소프트웨어 엔지니어, 일렉트로비트(Elektrobit)




마커스 셰퍼

그는 모든 사람의 경험과 지식을 바탕으로 배우고 혁신할 수 있는 기회를 제공하는 FOSS 모델에 대한 강한 신념으로 인해 개방형 소프트웨어에 대한 열정을 가지고 있다. 그는 소프트웨어 개발에서 서버, 클라우드, 가상화 수준에 초점을 맞추고 있다. 현재 진행 중인 프로젝트에는 자동차 장치에 초점을 맞춘 임베디드 리눅스 배포판 구현이 포함되어 있다.
     

연관기사: EB, SDV 차별성 지원하는 종합 솔루션 기업 (autoelectronics.co.kr)





차에 탑승해 시동을 걸 때, 보통 우리는 운전자를 지원하는 다양한 애플리케이션의 시작을 예상한다. 운영체제(Operating System, OS) 계층은 차량 서비스 기능에서 중요하지 않은 요인이어야 한다. 과거에는 한 기능이 다른 기능을 방해할 수 없도록 여러 (간단한) 전자제어장치(ECU)에 기능을 분리했다. 차량용 고성능 컴퓨팅(HPC)의 장점 중 하나는 기능을 단일 ECU에 통합하고, 기능의 독립성을 보장하면서도 이를 통해 발생하는 시너지 효과를 활용한다는 것이다. 확실한 솔루션은 엔터프라이즈 및 클라우드 컴퓨팅에서 잘 확립된 일련의 기능을 활용하는 것이며, 이를 통칭해 ‘컨테이너(Container)’라고 한다. 이익을 극대화하려면 모든 주요 구현에서 사용되는 널리 확립된 오픈 컨테이너 이니셔티브(Open Container Initiative, OCI) 산업 표준을 준수하는 것이 필수적이다. 많은 애플리케이션에서 가장 많이 이용하는 구현 중 하나는 리눅스를 기반으로 한다.

리눅스의 컨테이너는 소프트웨어 통합자가 호스트 운영체제에서 런타임 환경(Runtime Environment, RTE)을 분리할 수 있도록 하는 개념이다. 이는 주로 폐쇄적인 환경 내에서 소프트웨어를 실행하는 데 사용되었다. 여러 회사가 최종 제품의 부품을 제공하는 자동차 산업에서, 이러한 개념은 시스템의 다른 구성 요소에 영향을 미치거나 부정적인 영향을 미칠 위험 없이 타사 소프트웨어를 통합하는 데 도움이 된다. 소프트웨어 회사는 개별 개발 환경 내에서 애플리케이션을 컨테이너로 구현 및 테스트하며, 불일치나 원치 않는 부작용의 위험 없이 시스템 통합 업체에 컨테이너를 넘길 수 있다. 이러한 프로세스가 대규모로 시행될 수 있도록 하는 기반은 OCI에서 정의한 업계 표준의 존재이다(https://opencontainers.org 참조).

자동차 산업에서 운영체제를 구매하도록 하는 요소는 ‘타사 애플리케이션을 얼마나 간단하고 비용 효율적으로 통합할 수 있는가’라는 질문에 대한 답변과 밀접하게 연결되어 있다. 앞서 설명한 바와 같이, 컨테이너도 하나의 솔루션이지만 여기에는 타사 제공업체가 이 개념을 도입하도록 유도하는 방법에 대한 문제가 수반된다. 일렉트로비트는 기술적인 솔루션 외에도 우분투 기반 EB corbos Linux라는 운영체제를 기반으로 구축하려는 고객 및 파트너를 설득하기 위한 도구 및 컨설팅 서비스에도 초점을 맞추고 있다.

일렉트로비트는 다음과 같은 구성 요소와 서비스로 구성된 컨테이너 시스템을 제공한다. 

OCI 컨테이너 빌드 시스템은 오픈 빌드 서비스(Open Build Service, OBS)와 KIWI 툴링의 일부이다. 일렉트로비트는 OCI 컨테이너를 사내 OBS 인스턴스의 일부로 빌드 및 유지 관리한다. 이 서비스에는 사람이 읽을 수 있는 KIWI 기반 컨테이너 이미지 설명과 컨테이너의 자동 패키징을 통해 OCI 호환 컨테이너를 생성하는 작업이 포함된다. OBS를 직접 사용하는 고객은 이 솔루션을 통해 지원을 받을 수 있다. 컨테이너를 생성하기 위해 다양한 도구를 사용하는 고객은 최종 컨테이너가 OCI를 준수하는 한 프로세스를 유지할 수 있다.

oci-pilot이라는 OCI 툴링 프로젝트는 소프트웨어 구성 요소 패키징용 애플리케이션 런처(Launcher)와 유틸리티를 제공한다. 대상 시스템의 컨테이너를 관리하는 데는 로컬 포드맨(Podman) 레지스트리를 사용한다. oci-pilot 프로젝트와 함께 제공되는 툴링은 OCI 호환 컨테이너를 로컬 레지스트리로 가져오는 등록 유틸리티, 그리고 컨테이너화된 애플리케이션을 실행하는 런처를 제공하므로 궁극적으로 네이티브 애플리케이션처럼 느껴진다.


 



참고
OBS에서 컨테이너 빌드 지원을 사용하는 경우, 이러한 등록 및 런처 도구는 컨테이너 패키징 프로세스와 자동으로 통합된다. 이것은 일렉트로비트에서 생성된 컨테이너 패키지가 패키지 설치 중에 컨테이너화된 애플리케이션을 등록하기 위한 모든 단계를 수행한다는 의미이다. 자신의 컨테이너에서 패키지를 생성하지 않는 고객은 oci-pilot에서 제공하는 도구 패키지의 지원을 받는다.
OCI 호환 컨테이너 호스트(OCI-compliant Container Host)는 도커(Docker)와 함께 가장 널리 사용하는 컨테이너 호스트 도구인 포드맨을 기반으로 하는 강력한 컨테이너 레지스트리 레이아웃을 제공한다. 도커의 경우, 백그라운드에서 데몬(Daemon)이 필요하지만, 포드맨은 독립형 애플리케이션으로 작동한다. 이로 인해, 특히 임베디드 사용 사례에서는 도커보다 포드맨을 선호하는 경우가 많다.

 



우분투 기반 EB corbos Linux는 분할 컨테이너 레지스트리를 제공하도록 설계되었다. 등록된 컨테이너 이미지는 A/B 파티션 기반 업데이트 개념을 이용해 무선(Over-the-air, OTA) 업데이트를 지원하는 추가 읽기 전용 및 선택적으로 암호화된 파티션에 저장된다. 생성된 컨테이너 인스턴스는 overlayfs 기반 쓰기 시 복사(Copy-On-Write) 지원을 통해 실행된다. 모든 쓰기 작업은 추가 파티션을 대상으로 한다. 데이터가 손상되면 쓰기 파티션이 자동으로 재설정된다. 분할 레지스트리로 인해 컨테이너 이미지와 해당 인스턴스의 파티션 기반 분리가 가능하므로 언제든지 재설정 가능한 강력한 컨테이너 엔진을 사용할 수 있다.



그림 1 | 레지스트리 레이아웃



위에서 설명한 솔루션의 경우 다양한 성숙도의 구현이 가능하며, 예시는 다음과 같다.

우분투 기반 EB corbos Linux의 일부로서 일렉트로비트 도구 및 서비스에도 사용되는 OCI 컨테이너 컬렉션을 제공하는 컨테이너 저장소이다.
oci-pilot 프로젝트는 오픈 소스 프로젝트로 개발되어 GitHub(https://github.com/Elektrobit/oci-pilot)에서 호스팅 된다. 도구 패키지는 아티팩토리(Artifactory)의 우분투 배포판 기반 EB corbos Linux의 일부로 제공된다.

컨테이너 호스트 OS 이미지 구현은 컨테이너 레지스트리 및 런타임을 포함하는 현재 설계로, x86 이미지는 QEMU에서 실행하기에 적합하다. AArch64 이미지는 NXP 및 라즈베리 파이 4 보드 제품군을 위해 제공된다.

향후 OCI는 아마존웹서비스(Amazon Web Services, AWS), 구글 컴퓨트 엔진(Google Compute Engine), 마이크로소프트 애저(Microsoft Azure)와 같은 모든 Tier 1 클라우드 서비스 제공업체에서 사용하는 업계 표준으로 거듭나게 될 것이다. 개발에서 테스트에 이르는 모든 워크플로는 표준 공통 유틸리티 및 기술에 의존한다. 우분투 기반 EB corbos Linux는 이 확립된 기술을 활용하는, 완벽하게 호환되는 수단을 제공한다.  고객은 별도의 조정 없이 컨테이너를 그대로 사용할 수 있으므로 확장성이 뛰어난 방식으로 범위를 확장한다. 제안된 컨테이너 패키징 개념에서는 컨테이너를 클린한 방식으로 빌드 및 유지 보수하기 위해 고객이 관심을 가질 수 있는 솔루션도 제공한다.

기존의 표준 오픈 소스 도구(podman, KIWI, OBS)를 사용하여 우분투 배포판 기반 EB corbos Linux의 일부로 OCI 호환 컨테이너 엔진 개념을 제공하면, 커뮤니티 유지 관리가 가능하고 기술이 업계 표준에 어긋날 위험이 낮아진다. 구현은 우분투 기반 EB corbos Linux용 애드온 솔루션으로 제공되며, 이는 OS 구현을 위한 전제 조건은 아니다.

참고자료:
[1] https://opencontainers.org
[2] https://github.com/Elektrobit/oci-pilot
[3] https://github.com/Elektrobit/nautilos-images



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>


  • 100자평 쓰기
  • 로그인



TOP