skip to Main Content
[IT트렌드] 급부상 하는 Docker Container

[IT트렌드] 급부상 하는 Docker Container

컨테이너는 물류의 일대 혁명을 가져왔습니다. 컨테이너는 1950년대 발명이 되었지만 본격적으로 물류에 적용되기 시작한 것은 1960년대 입니다.
컨테이너가 활용되기 이전에는 표준으로 규격화 되지 않은 화물을 실어 나르는데 있어 공간 활용 및 안전한 배송에 많은 문제점들이 발생되었습니다. 하지만 컨테이너가 활용되면서 부터 이러한 문제점들은 사라졌고, 지금은 컨테이너 없이 장거리 화물을 대량으로 배송하는 것 자체를 상상할 수 없습니다.

 

이러한 물류 산업의 컨테이너 개념이 IT에 적용된 것이 Docker이며, Docker의 출현으로 서버 인프라 환경은 또 한번 혁신을 준비하고 있습니다.

과거 메인 프레임에서 오픈환경으로 서버 인프라가 옮겨 지면서 Unix, Windows, Linux 진영에서 팽팽한 시장 주도권의 경쟁이 이어졌습니다.
이러한 경쟁은 x86 플랫폼의 완승으로 표준화가 정립되는 듯 했지만, 플랫폼 경쟁은 또 다른 Hypervisor간 경쟁으로 이어졌고, 지금은 x86 물리서버, 다양한 Hypervisor 등의 표준화 되지 않은 이기종 플랫폼 환경이 혼재해 있는 상황입니다.
때문에 이러한 다양한 환경을 하나의 표준 플랫폼으로 통합할 수 있는 방안으로 Docker 컨테이너가 최근 급부상하고 있습니다.

 

그렇다면 Docker 컨테이너는 왜 급부상할 수 밖에 없는가?에 대해서 개발자와 관리자의 관점에서 살펴 보겠습니다.

▣ 개발자와 관리자 관점에서 바라본 Docker의 장점 및 필요성

 

1. 개발자 관점에서 바라본 Docker의 장점
– 하나의 컨테이너는 물리 환경과 가상화 환경에서 모두 호환이 가능하므로 이식성이 매우 우수하다.
– 리눅스의 경우 다양한 배포판이 존재하는데, 개발과 운영환경의 서로 다른 리눅스 상에서도 애플리케이션 수정이 필요 없다.
– 컨테이너간은 완전 격리된 구조로 각 애플리케이션이 독립적으로 실행할 수 있어 버전 충돌이 없다.
– 개발 환경을 세팅하는 비용과 시간이 많이 소요되지 않아서 개발자가 쉽게 인프라를 구성할 수 있습니다.

 

2. 관리자 관점에서 바라본 Docker의 장점
– 가상화처럼 격리된 가상서버에 별도의 OS를 구동하지 않기 때문에 오버헤드 없이 매우 경량이며, 성능이 우수하다.
– 일반적으로 CPU, 네트워크, 메모리와 디스크 I/O의 성능이 bare metal 대비 98% 이상 나온다.
– Docker 컨테이너는 Host OS관점에서 하나의 파일로 관리가 되므로 다른 플랫폼으로의 마이그레이션과 백업 등의 관리가 매우 편리하다.
– 컨테이너를 이미지화하여 빠른 배포와 서비스 생성이 가능하며, 관리 툴과 연계하여 애플리케이션의 라이프사이클의 자동화가 가능하다.
– 클라우드와 연계 시 무한의 확장성을 지닌 플랫폼 아키텍처 구성이 가능하다.

이처럼 Docker 컨테이너로 개발되는 애플리케이션은 인프라 정보까지 포함한 하나의 이미지이기 때문에, 개발자나 IT운영자가 무한에 가까운 환경 변수에 크게 신경을 쓰지 않아도 되며,

개발 환경의 설정을 실제 운영 환경에서 그대로 사용할 수 있기 때문에 애플리케이션의 개발-운영 프로세스가 단순해집니다.

개발자가 애플리케이션을 Docker 플랫폼을 활용해 개발하면 설정부터 애플리케이션 배포까지 자동화할 수 있고, 이를 기반으로 Docker는 분산된 애플리케이션을 빠르게 개발하고 구동하는데 있어 주목받는 기술로 급부상할 수 있었습니다. 애플리케이션의 라이프싸이클을 관리하고 필요시 확장하는 측면에서는 하이퍼바이저에  기반한 기존 가상화 기술보다 확실히 효과적이라고 볼 수 있습니다.

docker

그렇다고 Docker 컨테이너가 기존 가상화 기술을 대체할 수 있는가?는 다른 문제 입니다. 두 가지 기술은 비슷한 듯 하지만 엄연히 다른 기술입니다.

Hypervisor에서 구동되는 가상머신들은 별도의 OS를 구성할 수 있지만, Docker는 전적으로 Host OS에 종속적입니다. 가상화 기술은 가상서버 별 별도의 Windows, Linux계열의 OS를 탑재할 수 있지만, Docker는 Host OS가 Linux면 Linux계열의 컨테이너를, Windows면 Windows 계열의 서로 호환되는 컨테이너만을 탑재할 수 있습니다.

 

따라서 서로 다른 OS에서 구동되는 애플리케이션이 동일한 Hypervisor상에서 혼재해야 하는 경우라면 Docker 컨테이너를 사용할 수 없습니다. 따라서 Docker는 주로 하나의 애플리케이션 환경이 여러 대의 노드상에서 구동되어야 하는 확장성이 필요한 환경에서 매우 강력한 장점을 발휘할 수 있습니다. 클라우드 환경이 성숙됨에 따라 IT는 개발, 배포, 운영의 순환 구조의 애자일 개발 방법론이 더 빠른 속도를 요구하게 됐고, 이에 따라서 필연적으로 Docker는 더 주목받을 수 밖에 없게 되었습니다.

이제 Docker를 관망하는 관점에서 속도전이 생명인 지금의 웹 기반의 IT 환경에서 뒤쳐지지 않기 위해서는 Docker를 기반으로 한 인프라의 환경의 변화를 실행해야 할 것입니다.

컨테이너 오케스트레이션에 대해 더 알고 싶다면?

아래의 귀여운 캐릭터 ‘아코’를 클릭해 주세요!

Back To Top