[vc_row][vc_column][vc_column_text]컨테이너는 물류의 일대 혁명을 가져왔습니다. 컨테이너는 1950년대 발명이 되었지만 본격적으로 물류에 적용되기 시작한 것은 1960년대 입니다.
컨테이너가 활용되기 이전에는 표준으로 규격화 되지 않은 화물을 실어 나르는데 있어 공간 활용 및 안전한 배송에 많은 문제점들이 발생되었습니다. 하지만 컨테이너가 활용되면서 부터 이러한 문제점들은 사라졌고, 지금은 컨테이너 없이 장거리 화물을 대량으로 배송하는 것 자체를 상상할 수 없습니다.
이러한 물류 산업의 컨테이너 개념이 IT에 적용된 것이 Docker이며, Docker의 출현으로 서버 인프라 환경은 또 한번 혁신을 준비하고 있습니다.
과거 메인 프레임에서 오픈환경으로 서버 인프라가 옮겨 지면서 Unix, Windows, Linux 진영에서 팽팽한 시장 주도권의 경쟁이 이어졌습니다.
이러한 경쟁은 x86 플랫폼의 완승으로 표준화가 정립되는 듯 했지만, 플랫폼 경쟁은 또 다른 Hypervisor간 경쟁으로 이어졌고, 지금은 x86 물리서버, 다양한 Hypervisor 등의 표준화 되지 않은 이기종 플랫폼 환경이 혼재해 있는 상황입니다.
때문에 이러한 다양한 환경을 하나의 표준 플랫폼으로 통합할 수 있는 방안으로 Docker 컨테이너가 최근 급부상하고 있습니다.
그렇다면 Docker 컨테이너는 왜 급부상할 수 밖에 없는가?에 대해서 개발자와 관리자의 관점에서 살펴 보겠습니다.[/vc_column_text][vc_empty_space][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]▣ 개발자와 관리자 관점에서 바라본 Docker의 장점 및 필요성
1. 개발자 관점에서 바라본 Docker의 장점
– 하나의 컨테이너는 물리 환경과 가상화 환경에서 모두 호환이 가능하므로 이식성이 매우 우수하다.
– 리눅스의 경우 다양한 배포판이 존재하는데, 개발과 운영환경의 서로 다른 리눅스 상에서도 애플리케이션 수정이 필요 없다.
– 컨테이너간은 완전 격리된 구조로 각 애플리케이션이 독립적으로 실행할 수 있어 버전 충돌이 없다.
– 개발 환경을 세팅하는 비용과 시간이 많이 소요되지 않아서 개발자가 쉽게 인프라를 구성할 수 있습니다.
2. 관리자 관점에서 바라본 Docker의 장점
– 가상화처럼 격리된 가상서버에 별도의 OS를 구동하지 않기 때문에 오버헤드 없이 매우 경량이며, 성능이 우수하다.
– 일반적으로 CPU, 네트워크, 메모리와 디스크 I/O의 성능이 bare metal 대비 98% 이상 나온다.
– Docker 컨테이너는 Host OS관점에서 하나의 파일로 관리가 되므로 다른 플랫폼으로의 마이그레이션과 백업 등의 관리가 매우 편리하다.
– 컨테이너를 이미지화하여 빠른 배포와 서비스 생성이 가능하며, 관리 툴과 연계하여 애플리케이션의 라이프사이클의 자동화가 가능하다.
– 클라우드와 연계 시 무한의 확장성을 지닌 플랫폼 아키텍처 구성이 가능하다.[/vc_column_text][vc_empty_space][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]이처럼 Docker 컨테이너로 개발되는 애플리케이션은 인프라 정보까지 포함한 하나의 이미지이기 때문에, 개발자나 IT운영자가 무한에 가까운 환경 변수에 크게 신경을 쓰지 않아도 되며,
개발 환경의 설정을 실제 운영 환경에서 그대로 사용할 수 있기 때문에 애플리케이션의 개발-운영 프로세스가 단순해집니다.
개발자가 애플리케이션을 Docker 플랫폼을 활용해 개발하면 설정부터 애플리케이션 배포까지 자동화할 수 있고, 이를 기반으로 Docker는 분산된 애플리케이션을 빠르게 개발하고 구동하는데 있어 주목받는 기술로 급부상할 수 있었습니다. 애플리케이션의 라이프싸이클을 관리하고 필요시 확장하는 측면에서는 하이퍼바이저에 기반한 기존 가상화 기술보다 확실히 효과적이라고 볼 수 있습니다.[/vc_column_text][vc_empty_space][/vc_column][/vc_row][vc_row][vc_column][vc_single_image image=”8542″ img_size=”980*310″ alignment=”center”][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]그렇다고 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를 기반으로 한 인프라의 환경의 변화를 실행해야 할 것입니다.[/vc_column_text][vc_empty_space][vc_video link=”https://youtu.be/jpUsP_tgH9Q” el_width=”70″ align=”center”][/vc_column][/vc_row][vc_row][vc_column][vc_empty_space height=”20px”][vc_column_text]컨테이너 오케스트레이션에 대해 더 알고 싶다면?
아래의 귀여운 캐릭터 ‘아코’를 클릭해 주세요![/vc_column_text][vc_empty_space height=”10px”][vc_single_image image=”13075″ onclick=”custom_link” img_link_target=”_blank” link=”http://accordions.co.kr/”][/vc_column][/vc_row]