'클라우드'에 해당되는 글 2건

  1. 2018.04.03 도커(docker)란?
  2. 2018.04.03 오픈스택(Openstack)이란?
posted by 귀염둥이채원 2018. 4. 3. 01:43

도커(Docker)는 오픈소스 프로젝트로, 하이퍼바이저(hypervisor) 없이 리눅스 컨테이너(Linux Container, LXC) 기술을 바탕으로 애플리케이션을 격리된 상태에서 실행하는 가상화 솔루션이다. 특히 하이퍼바이저 기반 가상화의 보완책으로 각광받고 있다. 


간단히 말해 도커는 플랫폼에 상관없이 실행될 수 있는 애플리케이션 컨테이너를 만드는 기술이다. 


이는 운영체제를 통째로 가상화하는 기존의 하이퍼바이저 기반 가상화와는 다른 접근 방식으로, 그 핵심은 바로 호스트 운영체제의 ‘공유’와 애플리케이션의 ‘격리’다.


하이퍼바이저: 다수의 운영체제를 하나의 컴퓨터 시스템에서 가동할 수 있게 하는 소프트웨어. CPU와 운영체제 사이에 일종의 미들웨어


하이퍼바이저 기반 가상머신은 애플리케이션에 독립된 환경을 구축해 준다는 것이 장점이지만, 애플리케이션을 실제로 배포하는 용도로 활용하기에는 무리가 있다. 호스트 운영체제 위에 또다른 운영체제, 그것도 여러 개의 운영체제를 쌓아 올리는 것 자체가 자원을 비효율적으로 활용하는 것이기 때문이다. 하이퍼바이저가 가상머신 각각의 운영체제를 격리시켜 독자적으로 동작할 수 있게 하는 것과 같이, 컨테이너 또한 애플리케이션이나 프로세스가 해당 컨테이너 안에서 샌드박스 처리돼 외부 요인에 영향받는 일 없이 안전하게 구동될 수 있게 한다. 


그러나 도커는 하이퍼바이저처럼 애플리케이션 각각에 운영체제를 제공하는 것이 아니라 호스트의 운영체제를 ‘공유’하는 방식이다.


도커는 컨테이너, 구체적으로는 ‘리눅스 컨테이너’를 통해 CPU, RAM, 파일 시스템, 스토리지, 네트워크 등의 자원을 할당받아 애플리케이션이나 프로세스가 독립적으로 운영될 수 있게 하는 기술로, 여러 개의 애플리케이션을 단일 호스트에서 구동한다. 


즉, 도커는 하이퍼바이저의 ‘자원의 비효율적 분배’라는 단점을 극복하는 한편, ‘애플리케이션 격리’라는 장점을 극대화는데 초점을 맞춘 것이다. 


# 도커의 장점

첫째, 도커는 빠르고 가벼운 가상화 솔루션을 제시한다.

도커는 호스트의 운영체제를 공유해 필요한 최소한의 리소스만 할당받아 동작하는 방식이기 때문에 운영체제 전체를 구동해야 하는 일반적인 가상머신에 비해 훨씬 빠르다. 하이퍼바이저를 사용하는 가상머신이 애플리케이션을 실행하는데 종종 수 분 가량의 시간이 걸리는데 반해 도커의 컨테이너는 단 몇 초 만에 애플리케이션을 실행할 수 있다. 또한, 도커는 단일 호스트에서 다중 워크로드를 구동할 수 있기 때문에 하이퍼바이저 기반 가상화에 비해 훨씬 더 가볍게 가상화 환경을 구성할 수 있다. 


둘째, 도커는 개발자에게 좀 더 자유로운 개발 환경을 보장한다. 

도커를 사용하면 개발자는 개발 언어나 툴에 상관없이 어떠한 애플리케이션이라도 만들 수 있으며, 도커에서 만들어진 앱은 이동성이 좋아지고 어디서나 실행될 수 있다. 즉, 컨테이너의 가장 큰 장점 중 하나는 바로 ‘이식성’이다. 컨테이너는 자체 서버에서도 구동할 수 있고, 클라우드 상에서 구동할 수도 있는 것다. 프로그래머들은 애플리케이션을 작성해 이를 컨테이너에 담고, 애플리케이션 자체는 컨테이너에 담긴 상태로 다양한 환경으로 옮겨져 실행될 수 있다. 예를 들어, 맥 OS X 노트북과 윈도우 노트북, 클라우드 내 우분투로 운영되는 QA 서버, 그리고 레드햇으로 운영되는 데이터센터 가상머신에 이르기까지 모두 함께 사용할 수 있다는 의미다. 


셋째, 도커를 사용하면 개발과 운영의 호환성이 증가한다. 

도커의 설립자이자 CTO인 솔로몬 하이크스는 홈페이지에서 “도커는 개발자와 시스템 관리자를 위한 개방형 플랫폼으로, 애플리케이션을 만들고, 이전하고 실행하기 위해 쓰인다.


도커 엔진(Docker Engine)은 이동성이 좋고 가벼운 애플리케이션 런타임과 패키징 도구이며, 도커 허브(Docker Hub)는 애플리케이션 공유와 자동 워크 플로우를 위한 클라우드 서비스”라고 설명했다.



시스템 관리자는 도커를 개발팀, QA, 그리고 생산팀을 위한 표준화된 환경을 제공하는데 사용할 수 있다.


관리자는 도커를 통해 자체 보유 서버와 클라우드의 가상머신 등 어떤 플랫폼에도 상관없이 기업 애플리케이션을 일일이 변형시키지 않고도 신속하게 서비스를 제공할 수 있다.


일반적인 ‘Install > Configure > Run’ 모드를 거치지 않고도 ‘Copy > Run’ 과정만으로도 모든 작업을 완료할 수 있는 것이다. 


즉, 도커를 통해 개발자는 애플리케이션을 좀더 쉽게 만들고, 시스템 관리자는 이를 좀더 쉽게 배포할 수 있다.


한편, 컨테이너는 단일 운영체제를 사용하는 환경에서는 매력적인 선택이지만, 오직 리눅스 플랫폼에서만 동작하기 때문에 여러 운영체제를 구동해야 할 필요가 있는 환경에서는 가상머신과 하이퍼바이저가 유용한 방안이다.


'클라우드' 카테고리의 다른 글

오픈스택(Openstack)이란?  (0) 2018.04.03
posted by 귀염둥이채원 2018. 4. 3. 01:39

오픈스택 기술은 2010년부터 개발됐다. 당시 미 항공우주국(NASA)와 랙스페이스라는 기업은 표준화된 하드웨어에서 사용할 수 있는 오픈소스 클라우드 기술을 만들고자 했다. 처음에는 NASA와 랙스페이스가 오픈스택 기술 개발을 주도했지만, 오픈소스 기술인 덕에 많은 엔터프라이즈 기업들이 협업해 오픈스택을 발전시켰다. 2012년에는 비영리 성격을 띤 오픈스택재단이 본격 출범했다. 초창기에는 우분투, 레드햇, IBMHP 같은 기업이 참여했고, 시간이 지나자 VM웨어, 시스코, 델, 화웨이, 인텔, 구글 등 글로벌 기업들도 오픈스택재단에 합류했다. 현재 오픈스택재단과 협업하는 기업은 500곳이 넘는다. 2010년 오픈스택 핵심 개발자 수는 25명 안팎이었지만, 2015년에는 그보다 100배 많은 2천여명의 개발자가 오픈스택 기술을 개발하고 있다.


오픈스택 사용자층도 점점 확대되고 있다. IT 업계뿐만이 아니다. BMW, 디즈니, 월스파고은행 등도 오픈스택 기술을 속속 도입했다. 예전에는 ‘클라우드스택’이란 경쟁 기술이 있었지만, 확장성이나 모듈화 같은 장점 덕분에 오픈스택이 대세로 떠오르는 추세다.

오픈스택재단은 새로운 버전을 1년에 두 차례 정도 발표한다. 새로운 버전엔 코드명이 붙는다. 코드명의 첫 글자는 알파벳 순서대로 정해진다. 오픈스택재단은 해당 알파벳으로 시작하는 여러 단어를 후보로 내놓고 투표를 통해 최종 이름을 결정한다. 2010년 첫 번째 버전 ‘오스틴(Austin)’이 출시됐고 2011년에는 ‘베어(Bexar)’, ‘칵투스(Cactus)’, ‘디아블로(Diablo)’가 나왔다. 2012년에는 ‘에섹스(Essex)’와 ‘폴섬(Folsom)’이, 2013년에는 ‘그리즐리(Grizzly)’와 ‘하바나(Havana)’가 나왔다. 2014년에는 ‘아이스하우스(Icehouse)’와 ‘주노(Juno)’가, 2015년에는 ‘킬로(Kilo)’와 ‘리버티(Liberty)’까지 나왔다. 오픈스택은 초창기엔 컴퓨트 기술을 중심으로 선보였는데, 베어부터는 스토리지 기술을, 하바나 버전부터는 네크워크 기술을 강화하고 있다.


오픈스택의 장점은 확정성과 모듈성이다. 오픈스택은 가상화 컴퓨팅 기술, 개인 데이터 저장 기술, 서로 다른 소프트웨어끼리 통신할 수 있는 소프트웨어 정의 네트워크(SDN) 등을 제공한다. 기업은 굳이 오픈스택이 제공하는 모든 기능을 사용하지 않아도 된다. 조나단 브라이스 오픈스택재단 사무국장은 “기업들이 원하는 기능만 따로 선택해서 구미에 맞는 클라우드 시스템을 만들 수 있다는 점은 기존 경쟁업체와 비교해서 오픈스택에서 두드러지는 점”이라고 설명했다.

오픈스택도 단점이 있다. ‘너무 잦은 업데이트’도 그 가운데 하나다. 업데이트 주기가 빨라 개발자들이 충분한 테스트 과정을 거치지 못하기 때문이다. 마크 콜리어 오픈스택재단 최고운영책임자(COO)는 2015년 ‘오픈스택데이 인 코리아’ 행사에서 “2015년에는 컴퓨팅 기술인 ‘노바’를 중심으로 안정성과 기능 향상에 집중할 것”이라며 “과거엔 새로운 기능을 추가하기 바빴지만, 최근 출시된 ‘아이스하우스’와 ‘주노’ 버전부터는 새로운 기능보다는 안정성을 높이는 데 주력했다”라고 설명했다.


'클라우드' 카테고리의 다른 글

도커(docker)란?  (0) 2018.04.03