도커와 같은 컨테이너 기반 기술은 VMWare로 대표되는 하이퍼바이저 기술과 다르게 실행환경의 분리(isolation)라는 개념에서 출발한 개념입니다.
예를 들면 하나의 프로그램을 설치하고 이에 필요한 라이브러리가 있는데, 이를 설치하게 되면 기존시스템에서는 보통 시스템에 영향을 주게 됩니다.
프로그램간 충돌이나 여러가지 문제를 야기하는 경우가 많습니다.
이를 프로그래밍에서는 의존성(Dependency)이라고 합니다. 프로그램 간 궁합, 버전별 궁합과 같은 것을 따져야 하는 것입니다.
프로그램에서 인텔과 AMD CPU종류를 따지고, OS가 32bit냐 64bit냐에 따라 수행 여부가 결정되고, 게임을 할때 NVIDIA비디오 카드냐 AMD비디오카드냐에 따라 수행되기도 하고 성능이 달라지기도 합니다.
윈도우 버전에 따라 DirectX게임들이 수행되고, 수행되지 않는 것은 이제 상식이 되었습니다.
이런 복잡한 상황을 해결하는 것이 컨테이너 기반 가상화입니다.
도커에서는 컨테이너끼리 서로 영향을 미치지 않습니다. 예를 들면 MySQL이나 우분투 서버를 버전별로 설치해서 각각을 아주 쉽게 테스트할 수 있고, 일반 시스템에서 이런 작업을 하려면 보통 까다로운 작업을 해야합니다. 하이퍼바이저에서 가능하지만 디스크관련 설정작업을 해줘야 합니다.
그리고 기존의 프로그램들은 배포(deploy)에 올려두면 손쉽게 다운로드 (Checkout)할 수 있습니다.
서버가 수십, 수백 대라도 문제가 없습니다. 다른 무엇보다도 도커는 가볍습니다.
도커 기반으로 프로그램을 설치하면 2~3% 오버헤드로 시스템을 돌릴 수 있습니다.
이는 하이퍼바이저보다 크게 대별되는 점입니다. 물론 현재는 리눅스 기술에 한정되어 있지만 계속 연구중이라 곧 다른 OS에서 네이티브로 지원이 될것입니다.
앞에서 언급한 이런 특징들로 인해서 도커는 서버사이드에서 굉장히 환영받고 있습니다.
이를 잘 활용하면 기존 가상화기술보다 휠씬 효율적인 서비스를 구축할 수 있습니다.
즉, 비용절약을 많이 할 수 있다는 얘기 입니다. 도커는 구글과 같은 대형 클라우드에 신속히 적용되고 자신의 가치를 증명하고 있습니다.
0 Comments