ACROFAN

[OSS 2018 Berlin] BMW의 Zuul 도입 사례 소개 세션

기사입력 : 2018년 12월 10일 23시 27분
ACROFAN=권용만 | yongman.kwon@acrofan.com SNS
오픈스택 재단(OSF: OpenStack Foundation)은 현지 시각 11월 13일부터 15일까지 독일 베를린 시티큐브 베를린(Citycube Berlin)에서 ‘오픈스택 서밋 베를린(OpenStack Summit Berlin)’을 개최했다. 이번 ‘오픈스택 서밋 베를린’은 ‘오픈 인프라스트럭처(Open Infrastructure)’를 기조로, 35개 이상의 프로젝트에서 200개 이상의 세션과 워크샵들이 50여개 국에서 참석한 전문가 및 관계자들과 함께 진행되었다.

이번 ‘오픈스택 서밋 베를린’은 클라우드 뿐 아니라 엣지 컴퓨팅, CI/CD, AI, 네트워크 가상화(NFV), 컨테이너 인프라에 이르기까지 다양한 형태의 ‘오픈 인프라스트럭처’에서의 혁신 기술들과 사례들에 대해 다루며, 35개 이상의 오픈소스 프로젝트에서 200개 이상의 세션과 워크샵들이 마련되었다. 특히 이번 서밋이 열리는 독일은 오픈스택이 가장 활발하게 사용되는 지역으로도 꼽히는데, 대형 통신사나 엔터프라이즈, 퍼블릭 클라우드 서비스 사업자들이 오픈스택 기반 환경을 활발히 활용하고 있으며, 커뮤니티 규모와 활동 면에서도 활발한 모습을 보이는 지역으로 꼽힌다.

이번 오픈스택 서밋 베를린에서, BMW는 자사의 자동차용 소프트웨어 개발 환경에 Zuul을 적용한 사례를 소개했다. 최근 자동차의 전동화 등으로 많은 ECU와 소프트웨어가 사용됨에 따라, 소프트웨어의 품질 관리와 자동화 측면의 중요성도 커지고 있다. 이에 BMW는 Zuul v3를 도입, 사내의 프로젝트와 외부 파트너들을 아우르는 대규모의 소프트웨어 개발 환경을 효과적으로 관리하고 있다고 소개했으며, Zuul은 개발 환경의 앞단에서, 개발자들이 보내는 코드들에 대한 자동화된 검증과 통합이 이루어지는 환경을 제공해, CI 환경의 효율을 크게 높였다고 밝혔다.

 
▲ BMW의 소프트웨어 엔지니어 Tobias Henkel

 
▲ BMW의 Zuul 도입 사례는 재단과 오픈스택 이외에는 최초의 사례 중 하나로 꼽힌다

BMW의 소프트웨어 엔지니어 Tobias Henkel은 이 자리에서, BMW는 자동차 뿐 아니라 백엔드, 모빌리티 서비스, 파이낸셜 서비스, 인프라에 이르기까지 다양한 영역의 소프트웨어를 개발하고 있다고 소개했다. 그리고 자동차에서의 소프트웨어는 작은 개별 ECU들을 위한 것에서부터 출발하는데, 이 작은 ECU들을 위한 소프트웨어에는 아주 높은 수준의 안전 요구사항이 적용되며, 자동화된 테스트는 소프트웨어 품질에 중요한 부분이라고 소개했다. 그리고 초기의 CI/CD 시스템은 몇 대의 빌드 시스템을 갖춘 젠킨스(Jenkins) 기반 환경으로 충분했다고 덧붙였다.

물론 전자 장치들의 기능과 성능이 높아지면서, 더 많은 코드가 시스템에 사용되며, ECU의 사용 또한 늘어나고 있다. 이는 개발 환경의 입장에서는 CI 시스템의 인스턴스 증가로 이어지며, 이 때는 기존 젠킨스 기반의 시스템에 더 많은 빌드 서버를 구성하면서 대응했다고 밝혔다. 그리고 지금에 이르러서는 자동차의 모든 부분에 소프트웨어가 사용되고, 자동차 내의 많은 ECU들이 긴밀하게 연결되어, 자동차에 사용되는 코드 또한 더욱 많고, 복잡해지고 있다고 강조했다. 또한 개발에 있어서도, 내부 팀 뿐 아니라 외부와의 협력도 많아졌으며, 자동화는 소프트웨어 품질 뿐 아니라 개발 프로세스 자체에도 중요한 부분이 되었다고 밝혔다.

이런 변화에 대응해 BMW는 기존 젠킨스 기반 시스템을 멀티 마스터 노드와 다수의 빌드 서버로 확장했으며, 약 4년 전부터 소규모로 Zuul v2와 v3 환경을 내부의 오픈스택 기반 클라우드로 구성해 활용해 왔었다고 밝혔다. 특히 Zuul v3의 경우 오픈스택 이외의 사용자로는 최초 사례 중 하나로 꼽힌다. 그리고 향후 차량용 소프트웨어 개발은 더 많은 프로젝트가 동시에 진행될 것이며, 많은 팀과 공급자들이 함께 할 것으로 예상되고, 자율주행차의 개발에서 보이는 특징인 복잡한 소프트웨어, 높은 안전성과 보안에 대한 요구, 시뮬레이션의 필요 등은 하나의 예가 될 것이라고 소개했다. 또한 이에 따라 더 큰 규모의 CI 시스템이 필요할 것이라고도 덧붙였다.

BMW는 현재와 미래에 필요한 ‘대규모 CI 시스템’의 구축에 Zuul 프로젝트를 적용해, 이미 대규모 프로젝트들에서 Zuul 기반 환경을 사용하고 있고, 인터내셔널 개발 팀과 파트너들이 이를 활용해 소프트웨어 개발 과정을 진행하고 있다고 밝혔다. 그리고 Zuul의 중요한 장점으로는 ‘확장성’이 꼽혔으며, 프로젝트에 더 많은 자원이 필요할 경우 클라우드를 통해 확장하고, 프로젝트에서 더 많은 개발자들을 지원할 수 있다고 설명했다. 또한 ‘가장 중요한’ 장점으로는 ‘프로젝트 게이팅(Project Gating)’ 기능을 꼽고, 이를 통해 잘못된 코드가 프로젝트에 통합되는 것을 막을 수 있으며, 이를 통해 더 많은 개발자들이 투입되는 상황에서 안정적인 프로젝트 관리가 가능해, 개발 팀의 확장이 가능하다고 소개했다.

 
▲ CI 시스템에 대한 요구 사항으로는 크게 다섯 가지가 꼽혔다

 
▲ 오픈스택과 쿠버네티스, 오픈시프트 환경 기반에서 구성되어 유연함을 갖췄다

BMW가 CI 시스템에 요구하는 점은 크게 다섯 가지 정도로 요약된다. 먼저, ‘프로젝트 격리’는 회사가 파트너들과 진행하는 다양한 프로젝트들에 대해, 서로간에 영향을 줄 수 없도록 격리하는 것으로, Zuul에 내장된 테넌트 지원 기능을 활용해 충족시킬 수 있었다고 소개되었다. 또한 개발 결과의 재사용 등과 관련해 개발자들에 익숙한 ‘GitHub’의 지원이 필요했으며, 이에 BMW 또한 Zuul의 GitHub 지원에 많은 기여를 했다고 밝혔다. 이 외에도 ‘코드를 통한 설정’은 버전 관리와 이력 추적, 코드 재사용 등을 위해 중요하며, 중앙집중화된 단일 환경의 대규모 운영과 고가용성을 위한 대부분의 컴포넌트의 스케일아웃 확장, 멀티클라우드 지원 등이 주요 요구사항으로 꼽혔다.

조직 측면에서, BMW는 인프라와 프로젝트 양 쪽에서 별도의 CI 개발자 팀을 갖추고 있으며, 다양한 상황에서 디자인에 대한 전문성을 제공하고 있다고 소개했다. 또한 향후 CI 커뮤니티의 구축을 통해, 인프라 팀과 프로젝트 서포트 팀, 커뮤니티의 주요 사용자들간의 소통을 통한 발전을 도모하고자 한다고 밝혔다. 또한 CI 시스템이 사용하는 클라우드 리소스의 최적화를 위해 모든 프로젝트가 리소스를 공유하도록 하는 구성을 적용할 것이며, 이 때 일부 프로젝트가 한정된 리소스의 대부분을 점유하는 등의 문제를 해결할 필요가 있을 것이라 덧붙였다. 이 외에도 오픈소스 커뮤니티에 대한 전략으로는 개발 성과에 대한 ‘업스트림 우선’을 제시했다.

BMW는 Zuul 기반의 CI 시스템 구성에 대해, Zuul과 Nodepool이 오픈스택 위에서 구동되는 쿠버네티스(Kubenetes)와 오픈시프트(OpenShift) 위에 구성되고, 오픈시프트의 셀프 힐링이나 상태 확인 등을 활용할 수 있어, Zuul 기반 환경에 문제가 생겼을 때 기본 대응을 자동적으로 할 수 있다는 점이 장점이라고 밝혔다. 그리고 오픈스택 기반 환경은 컨트롤 플레인 테넌트와 빌드 테넌트로 구분되며, Zuul 환경은 컨트롤 플레인 테넌트에 속하고, 노드풀은 빌드 테넌트 혹은 외부의 정적 노드로 연결되는 모습이다. 이렇게 테넌트를 분리한 이유로는 운영자의 실수 등의 상황을 고려한 ‘안정성’ 때문이라고 설명했다. 또한 Zuul은 Github와 연결되며, Zuul 위에는 Zuul Jobs 리포지터리와 CI 라이브러리 등이 위치한다.

약 반 년 가량의 시스템 운영에 대한 피드백으로는, 여러 모로 ‘첫 시도’에서 오는 ‘게이팅 자동화’의 이해 부족이나 인식의 전환 등이 필요했지만, 시스템 사용 후 대부분 만족스러워 했다고 밝혔고, 팀 구성의 확장성을 향상시켰다고 평했다. 하지만 새로운 시스템에서는 ‘Ansible’에 대한 적응이 필요하고, 다소 가파른 배움 곡선은 단점으로 꼽혔다.

Copyright ⓒ Acrofan All Right Reserved.

디지털 마케팅의 새로운 장을 만들다! 신개념 퍼포먼스마케팅 플랫폼 '텐핑'

[명칭] 아크로팬   [제호] 아크로팬(ACROFAN)    [발행인] 유재용    [편집인] 유재용    [청소년보호책임자] 유재용
Copyright © ACROFAN All Right Reserved