도커, 가상화 대안 기술로 급부상

일반입력 :2014/06/12 16:56    수정: 2014/06/16 08:50

컨테이너 기술이 가상화의 대안으로 평가받을 만큼 진화에 진화를 거듭하고 있다. 가장 큰 문제점으로 지적됐던 호환성 부족 문제도 주요 컨테이너 기술업체의 협업으로 해결될 분위기다.

10일 미국 샌프란시스코에서 열린 도커콘2014에서 솔로몬 히크스 도커 최고기술책임자(CTO)는 구글, 레드햇, 패러렐즈 등과 '리브컨테이너(libcontainer)' 개발에 협력한다고 밝혔다.

구글과 패러렐즈는 도커와 대체재 관계에 있는 컨테이너 기술을 개발해왔다. 도커의 경쟁자들이 도커 개발에 참여하는 것이다.

도커는 리눅스컨테이너가상화(LXC) 기술을 활용해 애플리케이션 샌드박스를 자동생성하는 기술이다. 리눅스 커널 위에 CPU, 메모리, 스토리지, 네트워크 등의 자원을 애플리케이션마다 별도로 격리된 가상공간으로 할당한다. 개발자가 애플리케이션을 도커 플랫폼을 활용해 개발하면 설정부터 애플리케이션 배포까지 자동화된다.

도커는 기본적으로 LXC와 libvirt, systemd-nspawn 같은 독립적인 드라이버를 활용해야 리눅스의 컨트롤그룹스(control groups), 네임스페이스(namespaces), 넷링크(netlink), 넷필터(netfilter), 앱아머(AppArmor) 시큐리티프로필 등을 조작할 수 있다.

libcontainer는 LXC 같은 중간의 사용자 공간 구성요소를 거치지 않고 바로 도커 컨테이너를 리눅스 요소에 접근하게 해주는 드라이버다.

이를 활용하면 도커의 플랫폼 의존성이 줄어든다. 도커 측은 부품의 이동 수를 크게 줄여주고, 도커를 여러 버전들과 LXC 배포판들의 도입으로 벌어지는 부작용에서 떼어낼 수 있다고 설명한다.

libcontainer는 도커0.9 버전에 처음 소개됐으며, 구글의 '고(Go)' 프레임워크로 작성됐다. libcontainer의 등장으로 구글의 컴퓨트엔진과 앱엔진에서 도커를 사용할 수 있게 됐다.

레드햇과 패러렐즈는 '고'로 작성된 libcontainer를 현재 광범위하게 사용되는 C/C++, 파이선 등 여러 개발프레임워크 언어별로 개발할 계획이다. 이미 레드햇은 10일 출시한 RHEL7에 libcontainer를 리눅스 컨테이너의 기본 라이브러리로 채택했다. 마이크로소프트(MS)는 ASP닷넷으로 이식할 것으로 예상된다.

제임스 보톰리 패러렐즈 CTO 겸 리눅스재단기술자문위원회장은 마침내 libcontainer를 둘러싼 통합된 노력을 시작하게 됐다며 이 라이브러리는 훨씬 더 원활하게 다른 제품들에 적용하는 툴을 만들게 해준다고 설명했다. 그는 오픈VZ나 다른 패러렐즈의 클라우드 서버 제품에서 도커와 LXC 같은 것을 허용할 수 있다고 예를 들었다.

구글의 에릭 브류어 인프라스트럭처 부사장은 구글은 이미 모든 구글앱스에서 컨테이너를 사용하고 있다며 구글 컴퓨트엔진 IaaS에서 컨테이너를 생성할 때 도커와 libcontainer를 사용하게 될 것이라고 밝혔다.

구글은 또한 오픈소스 컨테이너 매니저인 '쿠베르네테스(Kubernetes, 조타수)'를 공개했다. 쿠베르네테스는 대규모 인프라에서 복수의 컨테이너를 효율적으로 배포하게 해주는 툴이다.

구글은 쿠베르네테스를 오픈소스로 공개하면서 도커 커뮤니티와 협력하겠다고 밝혔다. 도커 안에 쿠베르네테스의 아이디어를 이식하겠다는 계획이다.

구글은 리눅스의 컨테이너 가상화 기술을 가장 널리 활용하고 있다. 에릭 브류어 부사장에 따르면, 구글은 현재 전체 데이터센터에 1주일 기준으로 20억개 컨테이너 인스턴스를 가동하고 있다.

LXC와 컨테이너 기술은 완전히 새로운 건 아니다. 일찌기 솔라리스 같은 유닉스에서 제한된 하드웨어에 여러 애플리케이션을 구축하는데 컨테이너 기술이 사용됐다.

관련기사

리눅스 역시 일찍부터 LXC를 제공하고 있었지만, LXC를 활용하는 방법이 너무 복잡해 널리 쓰이지 못했다. 도커는 이 복잡성을 획기적으로 줄여줌으로써 컨테이너를 쉽게 사용하게 해준다는 가치를 갖는다. 더구나 가볍고, 이동성까지 갖췄다.

특히 애플리케이션 개발과 운영의 편리함 때문에 다수의 클라우드 개발 플랫폼(PaaS)에 채택되고 있다. 일각에선 도커를 이용하면 인프라 설정 및 운영과 애플리케이션 개발을 통합하기 때문에 'PaaS와 IaaS의 경계를 무너뜨릴 존재'로 평가하기도 한다.