컨테이너

컨테이너 개념잡기- 왜 컨테이너일까?

컨테이너 내용물의 소유자는 컨테이너가 배송되는 방법에 직접 관여할 필요가 없으며, 배송 회사는 내용물을 알거나 관리할 필요 없이 컨테이너를 발송 지점에서 목적지로 운송합니다.

컨테이너는 가로, 세로, 높이의 크기가 세계적으로 표준화되어 있습니다. 컨테이너의 크기가 통일되어 있기 때문에 화물 트레일러로 옮기고 그대로 대형 선박에 컨테이너를 옮겨 적재 할 수 있습니다. 또한 컨테이너 표준을 지키면 물류에 대한 계약 , 보관 , 운송 , 보험 등에 대해서 동일한 기준으로 비즈니스를 할 수있습니다.

리눅스 컨테이너 (LinuX Containers,LXC)는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법입니다.

리눅스 컨테이너는 Linux 커널에서 컨테이너 관련 기능이 구현되기 시작한 2008 년경부터 커널 기능만을 이용하여 컨테이너 역할을 할 수 있는 소프트웨어로 개발되고 있습니다.
Linux 커널을 패치 할 필요없이 커널에 구현되어있는 컨테이너에 관련된 기능을 활용하여 컨테이너 관리 작업을 할 수 있습니다.

육상과 해상 운송에서 컨테이너는 국제무역의 확대에 기폭제 역할을 하였으며, 컨테이너없는 무역은 상상하기 힘듭니다.

컨테이너
특히 동아시아의 대표적인 무역국가인 한국, 중국, 일본, 싱가포르, 타이완은 모두 컨테이너선이 정박할 수 있는 대형 도크를 가진 항구를 건설하여 국제무역 거점으로 성장하게 됩니다.
지금은 아니지만, 한국은 대량의 컨테이너를 운송할 수 있는 대형 선박 건조 분야와 해양 운송 분야의 글로벌 리더였던 적도 있습니다.

보잘 것 없어 보이는 철재 상자 – 컨테이너

컨테이너 발명 이전
육지와 바다는 수송 시스템이 전혀 다른 형태로 되어있습니다.
예전에는 화물을 트럭으로 부두까지 실어온 후 선박이 도착하면 다른 화물들과 함께 배의 측면으로 옮겨 부두노동자가 포장하여 적재하였습니다.
그 과정에서 화물의 손상, 분실, 시간, 비용이 크게 발생하였으며, 운송 수단으로서 신뢰도 낮았습니다.
19세기 후반부터 미국과 유럽의 수많은 운송업체들은 박스 형태의 운송을 시도하였습니다.
물건을 나를 때 상자에 넣어서 운반하는 것이 편리하다는 것은 누구나 알고 있는 사실이지만, 문제는 표준화였습니다.
배를 소유한 해운업체는 구태여 자기 돈을 들여 컨테이너를 이동시킬 크레인을 항구에 설치하려 하지 않았습니다.
컨테이너 이해하기
철도 업체나 트럭 업체는 항구에 내려놓은 화물이 어떻게 배에 실리는 지에는 관심을 두지 않았습니다.
회사마다, 분야마다 다른 형태의 상자와 도구를 쓰다보니 효율성이 떨어져 상자를 쓰지 않느니만 못했습니다.
항구 노동자들 역시 정치적 영향력이 큰 노조를 조직해서 하역 작업의 기계화를 막았습니다.
1950년대 컨테이너의 등장
1950년대에 트럭운송업을 하던 Malcom McLean 과 그의 헤드 엔지니어인 Keith Tantlinger가 컨테이너를 표준화하여 세계를 변화시켰습니다.
그 당시에 배를 수작업으로 선적하는 비용은 톤당 5.86 달러였으며, 컨테이너를 사용하면 톤당 16 센트 밖에 안되며 비용은 36 배 절감됩니다.
또한 컨테이너 화는 또한 선박의 적재 및 하역 작업에 소요되는 시간을 크게 줄였습니다.

컨테이너을 발명한 말콤 맥린 (Malcolm P. McLean )

source: Wikipedia Malcolm_McLean_at_railing,_Port_Newark,_1957
트럭 운전사였던  말콤 맥린 (Malcolm P. McLean ) 은 트럭이나 선박에 화물을 적재할 때 걸리는 오랜 대기 시간을 해결하기 위해 “박스” 만 분리하여 배에 싣는 아이디어를 생각하게 됩니다.
이것은 교통 수단이 무엇이든지 박스를 오픈하지 않고 트럭, 선박, 철도에서 즉시 화물을 교환할 수 있는 혼합수송 방법입니다.
그는 해운업계에 들어오기 전 트럭 운전과 트럭 운송업체를 운영해 봤기 때문에 표준화를 통해 화물을 효율적으로 운송하는 방법이 매우 어려운 일이라는 것을 잘 알고 있었습니다.
하지만 그는 해운사와 육송 운송업체들이 각자 자신들의 기득권을 지키고 서로의 영역을 침범하지 못하도록 방어하는 데 열을 올리는 동안 선박과 트럭이 함께 쓸 수 있는 공통 규격의 컨테이너 개발에 힘을 기울였습니다.
또한 집요하게 노조와 정부 관계자들을 설득했습니다.
맥린은 바다와 육지를 포괄한다는 뜻의 시랜드(Sea-Land)사를 설립하고 1956년 3월에 최초로 컨테이너를 이용하여 해양 화물 운송 시작하게  되었습니다.
그는 컨테이너를 이용한 화물 운송의 혁명을 이끌면서, 2007년에는 포브스(Forbes)에서 선정한 ‘20세기 후반 세계를 바꾼 인물 15인’에 선정됩니다.

오픈소스 개념으로 컨테이너 기술을 공유한 Keith Tantlinger

McLean 의 헤드 엔지니어였던 Tantlinger는  화물을 컨테이너에 적재하고, 트럭으로 운반하고, 크레인으로 운반할 수 있는  복합 운송 기반 기술을 개발하였습니다.
더욱 중요한 것은 Tantlinger 는라이선스 없이 컨테이너 기술을 사용할 수 있도록 특허공개를 설득한 것입니다.

화물운송 분야의 컨테이너와 공통점은?

IT 분야에서 컨테이너는 화물 운송 분야의 컨테이너에  대한 은유입니다.
  •  HP, 오라클, IBM 과 같은 대형 벤더들은 수년간 켄테이너 기술을 사용해 왔으며, 특히 구글은 내부 프로젝트에서 매우 유사한 구현 방식을 사용하였습니다. 컨테이너 기술은 오픈소스와 커뮤니티를 중심으로 발전하고 있습니다.
  • 화물 컨테이너의 내부 화물은 운송에 중요하진 않습니다. 세계의 모든 선박과 트럭 그리고 크레인은 컨테이너 규격에 적합해야 합니다. 마찬가지로 도커 컨테이너도 어떤 애플리케이션( 관련 파일, 프레임워크, 의존성 등)이 내부에 있는지 중요하지 않습니다.
    컨테이너는 모든 리눅스 배포판에서 실행되며, AMAZON AWS, Micrsoft Azue, Google Cloud Platform, Rackplace 등 모든 퍼블릭 클라우드 환경에서 운영됩니다.
  • 해외로 이사를 간다고 가정을 하면 사실상 컨테이너에 이사짐을 넣은 후 트럭으로 이동하여, 크레인으로 배에 옮겨져 다른 나라로 운송합니다. 마찬가지로 컨테이너를 이용하면 개발자가 로컬 시스템에서 애플리케이션을 빌드하고 테스트 할  수 있으며
    애플리케이션을 서버에 Push할 수 있습니다. 개발자는 컨테이너로 배포하게 되면 개발환경이나 운영환경이나 동일하게 동작할 것이라는 것을 알수 있습니다.
Docker with_AWS, Azure,GCP

컨테이너는 라이프사이클을 손쉽게 관리할 수 있게 할 수 있고 “Run Anywhere” 비전처럼 클라우드드 서비스 어디에서도 운영될 수 있습니다.

컨테이너는 가상화와 비교했을때 클라우드 마이그레이션 과정을 비교하기 어려울 정도로 단순화되고 효율적입니다.

컨테이너 기술이 클라우드 활성화의 견인차?

IT 기술에서의 컨테이너화는 개발과 테스트 단계에서 사용되는 시스템 환경을 그대로  물리서버, 가상화, 클라우드와 같이 상이한 환경에서 배포하고 운영할 수 있도록 합니다.
이는 리눅스와 같은 개방형 기술을 기반으로 하고 있어 기존의 가상화 기술이 가지고 있던 벤더 종속성없이 Linux 의 기본 기능만으로 손쉽게 컨테이너 환경을 구축할 수 있습니다.
해양 운송 분야에서 컨테이너를 통한 표준화가 해운산업의 비즈니스 혁신을 이끌고, 더 나아가서는 세계무역 발전에 기반이 되었습니다.
오픈 소스인 리눅스와 도커를 기반으로 하는 리눅스 컨테이너 기술의 표준화가 IT 분야에서도 예측하기 어려운 혁신적인 변화의 기폭제가 될것을 기대합니다.
가상화 기술과 컨테이너 기술의 차이점과 기대 효과

References & Related Links

컨테이너 장점

컨테이너 장점

가상 머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 OS를 가상화하여 여러 개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고 ,  메모리를 훨씬 적게 차지합니다

컨테이너 기술 소게

컨테이너 기술 소개

IT 분야에서 “컨테이너”도 일종의 박스의 의미이며, 물류분야에서 처럼 Portability (이동성) 을 실현하기 위해 만들어진 기술입니다.

이동성은 IT 시스템 (플랫폼 또는 인프라) 상에서 다른 IT 시스템으로 이동을 쉽게 허용하는 성질을 의미하는 것입니다.

가상화 와 컨테이너 비교

가상화와 컨테이너의 비교

가상화는 개발측면이나 운영측면에서 자원 효율적으로 사용하고 관리하는 기술로서 널리 확산되었습니다. 다양한 OS 환경과 어플리케이션을 하나의 파일로 관리할 수 있는 “가상 머신 (VM)”은 손쉽게 이동할 수 있는 이식성을 제공해 주었습니다.

컨테이너는 하이퍼바이저와 Guest OS 없이 애플리케이션 운영환경을 제공하는 기술로서 앞서의 가상화 기술의 고질적인 문제점들을 해결하고 있습니다.

Docker 그리고 컨테이너 기술의 역사

Docker 그리고 컨테이너 기술의 역사

컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.

1972년 IBM VM / 370 (OS) 최초 가상화 기능 구현 , 1979 년 UNIX V7 에 chroot 시스템 콜 도입, 1999년 Virtuozzo 출시 컨테이너 가상화의 새로운 방향을 제시

물리서버, 가상화 그리고 컨테이너로의 발전
물리서버, 가상화를 넘어 컨테이너 까지

컨테이너 기술이 등장하기 전까지 IT 역사를 되돌아 보겠습니다.

가상화기술이 출현하기 전에는 하나의 물리적 서버에서 다양한 애플리케이션을 올려 사용하는 시대였습니다.