2015년은 컨테이너 전쟁의 해

InfoWorld

지금은 컨테이너에 대한 모든 관심이 도커에 쏠려 있지만, 2015년에는 컨테이너 업체가 단지 하나가 아니라 훨씬 더 많음을 알게 될 것이다.

1년 전만 하더라도 대부분의 시스템 관리자에게 컨테이너로 뭘 할 수 있느냐고 물으면, 아마도 멀뚱멀뚱한 표정만 짓고 있었을 것이다. 그때는 그때 일이었고, 지금은 완전히 다르다.

컨테이너 기술, 그 중에서도 도커(Docker)에 대한 관심은 뜨겁다. 아직 베타 중이었음에도 불구하고, 포천지 선정 500대 기업은 자사의 서버, 데이터센터, 그리고 클라우드 애플리케이션을 도커를 사용해서 “컨테이너화”하고 있었다. 실제로, 도커의 서비스와 지원 담당 부사장인 제임스 턴불은 도커 1.0이 공개되기도 전에, 세 곳의 주요 은행이 이미 도커를 업무용으로 이전시키고 있었다고 말했다.

도커와 컨테이너가 그렇게나 인기 있는 이유
도커가 한 일을 이해하고 나면, 인기를 이해하기가 아주 쉽다. 사용 중인 하드웨어 서버를 최대한으로 이용하고 클라우드에 처리 역량을 제공하기 위해 수년 전부터 사용해오고 있는 것은 하이퍼-V나 KVM, 젠 같은 가상머신 하이퍼바이저이다. 하지만 패러렐즈의 서버 가상화 담당 CTO인 제임스 보텀리는 기술적으로 말하자면 가상머신 하이퍼바이저는 “가상 하드웨어 에뮬레이션에 기반하고 있다. 즉, 시스템 요구조건 측면에서 보면 많은 것을 원하고 있다는 의미이다”라고 지적했다.

반면에, 컨테이너는 공유 운영체제 기반이다. 하이퍼바이저보다 더 경량급이며 더 효율적이다. 하드웨어 가상화 대신, 컨테이너는 단일 리눅스 인스턴스 상에 상주한다. 보텀리는 “이는 사용자가 99.9%의 쓸모 없는 가상머신 쓰레기를 버려두고 애플리케이션을 담고 있는 작고, 깔끔한 캡슐만을 얻을 수 있음을 의미한다”고 설명했다.

뿐만 아니라, 버텀리에 따르면 완전히 조율된 컨테이너 시스템은 젠이나 KVM 가상머신을 을 사용한 것보다 4~6배나 많은 수의 서버 인스턴스를 확보할 수도 있으며, 아무런 추가 노력 없이 동일 하드웨어 상에서 가상머신으로 할 수 있는 것보다 최소 2배나 많은 서버 애플리케이션을 구동할 수 있다.

보텀리는 도커에 대해서, “도커는 자체가 컨테이너 기술이 아니라, 기능하기 위해서 컨테이너 기술을 필요로 하는 애플리케이션 패키징과 오케스트레이션 시스템이다. 기반 OS 플랫폼이 컨테이너를 제공하지 않으면, 도커는 동작하지 않을 것”이라고 말했다. 도커를 특별하게 만들어준 것이 바로 이 패키징과 오케스트레이션이다.


가상머신과 컨테이너의 차이점. 더 이상 혼동해서는 안된다.

이는 기술적인 문제이다. 그렇다면, 비즈니스 측면에서 알아보기로 하자. 사용자는 도커를 사용해서 가장 적은 수의 하드웨어 서버 상에서 가장 많은 수의 서버 애플리케이션 인스턴스를 구동할 수 있다. 이는 사용자가 데이터선테에서 전력 비용과 하드웨어 구매 및 유지보수 비용을 연간 수백만 달러나 절약할 수도 있음을 의미한다.

컨테이너의 역사
이제는 도커가 IT에 새로 등장한 멋진 것이라는 생각이 들 수 도 있겠지만, 절반만 맞는 생각이다. 대단한 것이지만, 근본적인 컨테이너 기술에서 새로운 것은 전혀 없다.

컨테이너의 출현은 바야흐로 1979년 유닉스 버전 7의 chroot 명령어까지 거슬러 올라갈 수 있으며, 이후, 여러 가지 형식으로 나타났다. 가장 잘 알려진 것 중 몇 가지가 FreeBSD 제일(Jail), 워크로드 파티션(Workload Partitions), 그리고 솔라리스 컨테이너(Solaris Container)이다.

비록 소수만이 알고 있지만, 가장 많이 사용되는 컨테이너 기술은 구글의 렘쿳피(LMCTFY: Let Me Contain That For You)이다. 이 컨테이너는 일주일에 20억 개의 컨테이너를 구동하고 있다. 농담이 아니다. 이런 구글 컨테이너 안에서 구글 문서부터 지메일 그리고 검색에 이르기까지 모든 구글 애플리케이션이 구동한다.

실질적인 동작은 리눅스에서 일어나고 있었다. 패러렐즈는 상업적으로는 자사의 버투오조 컨테이너(Virtuozzo Container)로 어느 정도의 성공을 거두었으며, 오픈소스 재단인 OpenVZ에서도 성과를 거뒀다. LXC(Linux Container)는 도커를 포함 대부분 컨테이너 작업들의 튼튼한 기반이 되었다.


스타가 된 도커
도커는 미디어부터 고객, 그리고 제휴업체를 거머쥐고 있다. 아마존, 시스코, 구글, 그리고 VM웨어 모두가 도커를 지원하고 있다. 심지어는 마이크로소프트까지도 도커 그룹에 합류하고 있다. 어떻게 해서 도커는 이렇게 압도적인 업계 지원을 모을 수 있었을까? 맞다, 컨테이너가 매력적인 데는 항상 기술적이고 경제적인 이유가 있었다. 그렇지만 기업들이 컨테이너 사용을 꺼린 이유도 있었다.

이런 이유 중 무엇보다도 가장 중요한 이유는 보안이었다. libvirt 가상화 API(Application Programming Interface) 개발자인 다니엘 버랜지는 2011년에 다음과 같이 설명했다: “LXC는 아직 안전하지 않다. 진정한 보안을 원한다면, KVM을 사용할 것이다.” 버랜지는 단지 하나의 컨테이너 기술에 대해서만 말하고 있었지만, 모든 이들은 이것이 모든 컨테이너의 문제임을 알고 있었다.

2013년, 루트(root)가 아닌 특권 없는 사용자 권한으로도 LXC 컨테이너를 생성할 수 있게 되었다. 이로 인해 본질적으로 더 안전한 컨테이너를 생성할 수 있게 되었다. 도커의 보안 개선을 위한 작업은 계속되고 있지만, 아직도 해야 할 일이 많다 그렇지만, 도커를 비롯한 여러 LCX 기반의 컨테이너 기술은 과거에 비해 훨씬 더 안전하다.

도커가 중요한 표준 오픈소스 프로그램인 libcontainer를 생성하기 위해 캐노니컬, 구글, 레드햇, 그리고 패러렐즈와 힘을 합친 2014년 3월은 또 다른 중요한 획기적인 시점이었다. 이 프로그램은 컨테이너가 리눅스 네임스페이스(namespace), 컨트롤 그룹(Cgroups), 각종 특질(capabilities), AppArmor 보안 프로파일, 네트워크 인터페이스 그리고 방화벽 규칙 등과 일관성 있고 예측 가능한 방식으로 동작할 수 있게 해준다. 프로그램들이 LXC, libvirt 또는 system-nspawn 등의 리눅스 네임스페이스 구성요소에 의존하지 않을 수 있도록 해주는데, 도커의 CEO인 솔로몬 하익스는 “유동적인 부분을 대폭 줄이고, LXC의 어려 가지 버전과 다양한 배포판으로 인해 야기되는 부작용으로부터 도커를 격리시켜준다”고 강조했다.


libcontainer는 다른 여러 리눅스 관련된 컨테이너 관련 기술에 단순성과 표준화를 가져다 준다.

더욱 중요한 점은 도커의 핵심 구성요소를 표준으로 만듦으로써, 이 프로그램이 신뢰성을 한층 더 확보했다는 것이다. 특히, 개발자들에게 더욱 매력적으로 비춰졌다. 이는 필요한 라이브러리와 파일들로 완벽해진 컨테이너화된 프로그램을 개발자들이 고객들에게 자신 있게 출하할 수 있게 해주었다.

뿐만 아니라, 당시에 보텀리가 설명했던 것처럼, libcontainer는 “애플리케이션에 정교한 컨테이너 기능을 드러내 보일 것이고 이질적인 제품 전반에 대해 우리들의 도구가 훨씬 더 매끄럽게 연계 될 수 있도록 해줄 것이다.” 예를 들면, 도커와 LXC 같은 것들이 OpenVZ나 심지어는 클라우드 서버 제품 상에 설치될 수 있도록 해줄 것이다.

그 밖에, 레드 몽크(Red Monk)의 공동 설립자이자 애널리스트인 스테판 오그래디가 설명했듯이, 여러모로 도커는 적절한 시기에 적절한 기술을 보유하는 운도 타고났다. 오그래디는 “한 가지 설명보다는 여러 가지 요인이 복합된 것 같다. 가장 분명한 것은 기본 플랫폼에 대한 인기가 있다”며, “그렇지만, 어쩌면 더 중요한 것은 컨테이너 기술의 채택을 용이하게 만들어준 업계의 거대한 변혁이 존재한다는 사실일 수도 있다. 우선, 엔터프라이즈 내부에 거의 보편적인 가상화가 이루어졌다”고 지적했다.

또한 “컨테이너에 대해 더 확실하게 관련 있는 사항으로, 운영체제의 중심적인 역할을 잠식하려는 노력이 꾸준히 진행됐다”고 덧붙였다. 일반적으로 컨테이너 그리고 특히 도커는 운영체제를 비롯하여 하부의 모든 것들을 공유 기판 즉, 데이터센터의 상면에 비해 그다지 흥미로울 것이 없는 보편적인 기초 정도로 취급하고 있다. 컨테이너의 경우, 기본 구성 단위는 애플리케이션이다. 애플리케이션만이 실재하는 유일한 구성요소이다.

무엇이 잘못되고 있는가?
그렇다면 업계는 왜 의견 일치를 보고 도커 기반의 데이터센터 미래로 가고 있지 않은 것일까? 자, 우선 첫 번째로, 앞에서 알아차렸을 수도 있지만, 다른 컨테이너 주자들이 아주 많다. 그들 역시 자기 몫의 컨테이너 시장 지분을 원하고 있다. 구글의 경우, LMCTFY 또는 도커는 사용자가 구글 컴퓨트 엔진 상에서 컨테이너를 구동하는 한, 만족해 할 것이기 때문에 그다지 문제가 되지 않지만, 컨테이너 영역에 속해있는 다수의 작은 업체들에게는 문제가 된다.


대부분 순수 오픈소스 업체인 이들 소규모 업체들은 자립할 수 있는 비즈니스 모델을 찾는데 애를 먹고 있다. 설상가상으로 이 중 다수가 가능하면 빠른 시일에 보유 기술을 이익으로 전환하라는 벤처 캐피탈의 심한 압박을 받고 있다. 이렇게 하는 방법 중 한 가지는 생태계를 장악하고 고객들을 자신들의 새로운 소프트웨어 스택에 계속 있게 하기 위해서 가능한 많은 조각을 차지하는 확실한 비즈니스 모델을 추구하는 것이다.

업계의 몇몇 인사는 필자에게 초기 컨테이너 제품에 더 많은 서비스를 추가함으로써 도커가 바로 그렇게 하고 있는 것으로 보고 있다고 말했다.

도커를 중심으로 씬(Thin) 리눅스 서버 운영체제를 구축한 코어OS라는 업체는 도커가 단순하고 간단한 컨테이너를 제공하던 방식에서 도커 이미지를 생성, 저장, 업로드, 구동 그리고 오케스트레이션하기 위한 플랫폼 전체에 해당하는 프로그램들을 제공하는 혼란스러운 플랫폼을 제공함으로써 진로에서 상당히 이탈했다고 공개적으로 발언했다. 코어OS의 CEO인 알렉스 폴비는 “코어OS를 사용하고 있는 대부분의 사용자는 컨테이너를 사용해서 통합하려 하는 일종의 기존 환경을 보유하고 있다. 이들은 전혀 새로운 플랫폼을 추진할 준비가 되어 있지 않다”고 강조했다.

폴비는 이런 문제를 가지고 도커와 함께 일하려는 시도를 했지만, 도커 팀은 이런 문제 해결에 흥미를 가지고 있지 않았다고 부연했다. 그래서, 코어OS는 자사 고유의 컨테이너 버전인 로켓(Rocket)에 대한 작업을 하고 있다.

하익스는 이런 흐름을 좋게 보고 있지 않다. 컬럼니스트이자 어도비의 모바일 담당 부사장인 맷 아사이가 “비평가, 경쟁업체 그리고 관심 있어하는 방관자를 맹비난하면서 코어OS의 진실성에 의문을 던지를 글을 썼을 때, 도커에도 같은 반응을 보였다. 그때 이후 하익스는 흥분을 가라앉혔지만, 일부 컨테이너 업체들은 내심 서로를 좋아하지 않고 있다. 클라우드 업체인 조이넷 같은 일부 업체들은 도커의 입장을 전적으로 지지하고 있지만, 다른 기업들은 조용이 코어OS에 동의하고 있다.

코어OS가 최초였지만, 업계 소식통에 따르면 다른 업체들도 도커가 힘에 부치는 일을 하려고 한다고 생각하고 있다고 한다. 자체 버전의 컨테이너를 들고 나오거나 코어OS의 로켓을 지원하는 다른 경쟁업체를 볼 수 있을 것이다.

동시에, 캐노니컬은 같은 그 외의 업체들은 도커의 기반 기술을 확장시키고 있다. 캐노니컬의 LXD(Linux Container Daemon)는 사용자 네임 스페이스에 대한 커널 지원과 Cgroup, 그리고 Secgroup과 AppArmour 등의 다른 리눅스 보안 메커니즘을 포함하여 기존의 리눅스 보안 기술에 의존함으로써 컨테이너에 더 많은 보안을 추가했다. 캐노니컬의 창업자인 마크 셔틀워쓰는 LXD가 도커의 대체물이 아니라 기능 보강물이라고 말하고 있지만, 필자는 도커와 경쟁할 목적으로 수립되고 있는 비밀 프로젝트에 대해서 알고 있다.

하익스의 눈에 도커가 제대로 포착되기 훨씬 전부터 컨테이너 상용화 작업을 하고 있던 패러렐즈는 논란이 어떤 식으로 전개되던 지에 관계없이 도커와 로켓 모두와 작업할 계획이다. 실제로, 패러렐즈는 최근에 도커가 패러렐즈 클라우드 서버 상의 컨테이너 내부에서 구동될 것이라고 발표했다.

패러렐즈가 어떤 컨테이너 회사보다 “더 안전하고, 가장 집적도가 높으며, 최고로 통합된 컨테이너 솔루션”을 전달할 계획이다. 보텀리는 “결국에는, 클라우드 공유 문제, 클라우드 보안 문제 그리고 심지어는 VNF(Virtual Network Function)를 지원하기 위한 새로운 OS 가상화 각각에 대한 솔루션처럼 컨테이너의 미래도 무수한 용도 별 개발에 의해 좌우될 것이므로, 우리는 컨테이너의 유용성을 확장시키기 위해 컴퓨팅 업계의 모든 부문과 협력할 계획이다”라고 밝혔다.

컨테이너는 앞으로도 인기가 있을 것이며, 지금보다도 더 많은 영역에서 사용될 것이다. 2015년에 해야 할 진짜 질문은 누가 유력한 우승 후보가 될 것이냐이다. 분명 도커는 현재 엄청난 지지를 받고 있다. 그렇지만, 계속해서 그렇게 할 수 있을까? 경쟁업체가 발목을 잡지는 않을까? 2015년에는 몇몇 업체가 등장할 것이다. 아니면, 보안에 관련된 심각한 기술적 문제로 인해 속도가 늦춰지지는 않을까?

개인적으로, 필자는 도커와 도커를 지원하고 협력관계를 맺고 있는 기업들이 내년에도 잘 할 것으로 생각하고 있다. 그렇지만, 도커가 위협을 한 해 이기도 할 것이다. 데이터센터, 서버 또는 클라우드 업계에 종사하고 있다면, 2015년은 혼란스럽고 우여곡절을 많이 겪는 한 해가 될 것이다.  editor@itworld.co.kr