컨테이너 기술의 발전과 역사
클라우드 컴퓨팅의 운영 및 관리에 가장 기본이 되는 기술 중의 하나인 “가상화 기술”은 나날이 발전하며 새로운 기술들을 도입하고 있습니다.
그 중에서도 최근 주목을 받고있는 것이 바로 “컨테이너”입니다.
컨테이너 기술의 역사 – 발표자료 다운로드
컨테이너기반의 오픈소스 플랫폼들은 하이브리드 클라우드 구현과 DevOps 그리고 마이크로서비스 아키텍처를 구현하기 위한 필수적인 기술로 자리 잡고 있습니다.
컨테이너기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.
유튜브 동영상 보기
발표 슬라이드의 내용을 각각 살펴 보겠습니다.
컨테이너 기술의 역사 1
컨테이너의 역사는 1979 년에 chroot 를 발표 한 것으로부터 시작합니다.
chroot는 이름 그대로 “root (/) 디렉토리 (기준이되는 디렉토리) 변경 (change)” 하는 것 입니다.
chroot는 프로세스의 루트 디렉토리를 변경하는 것으로, 이를 통해 프로세스가 액세스 할 수있는 디렉토리를 제한하거나 시스템 라이브러리와 관련 라이브러리를 로드 할 수 있습니다.
그러나 chroot는 파일이나 디렉토리에 대한 액세스 권한만 제어할 뿐 네트워크 및 프로세스 등을 컨트롤 할 수 없습니다.
지난 2000 년 Unix OS 인 FreeBSD 에서 OS 가상화 기능인 FreeBSD Jail를 발표합니다.
FreeBSD Jail는 chroot처럼 파일 액세스를 제어하는 것이 아니라 호스트 OS와 Jail라는 OS 가상화 환경에서 파일 시스템 , 프로세스, 네트워크을 분리 할 수있는 획기적인 기술을 제공했습니다. 이것이 컨테이너의 시작 입니다.
Jail 을 통해 사용자 별로 환경을 분리하여 안전성을 확보하여 임대 서버나 호스팅 등의 서비스에 활용하였습니다.
다음 해인 2001 년에는 Linux에서도 커널에 Linux-Vserver 라는 기능을 추가하여 OS 가상화 환경을 이용할 수 있게 되었습니다. 또한 2004 년에는 상용 Unix OS인 Solaris 에서도 Solaris Zone라는 OS 가상화 기능이 제공됩니다.
2006 년, Google 은 Process Containers는 프로세스 자원 이용량을 제어하는 기능을 발표합니다. 이듬해에 이 기능은 cgroup 으로 이름을 바꿉니다.
2008 년에는 Red Hat 에서 논리적으로 시스템 자원을 분할하는 Namespace를 발표하고, 비슷한 시기에 IBM 에서 LXC (LinuX Containers)를 발표합니다.
LXC 가 cgroup 과 Namespace를 사용하여 구현한 최초의 Linux 컨테이너 엔진입니다. LXC 는 이후 컨테이너 엔진의 형태를 형태를 갖추게 되었습니다. 바로 현재 컨테이너 기술의 시초라고 할 수 있습니다.
상용 제품으로는 Sun Microsystems (현재 Oracle)의 UNIX 계열 OS인 Solaris 10 에 탑재 된 Zone 라는 기능에 의해 처음으로 구현되었습니다.
그리고이 기술은 Parallels의 ” Parallels Virtuozzo Containers “라는 형태로 x86 용 Linux 와 Windows 로 전파됩니다.
현재도 ” OpenVZ “라는 Linux 용의 오픈 소스 버전으로 오픈 소스 소프트웨어 (FLOSS) 커뮤니티에 의해 개발되고 있습니다.
하지만 현재의 컨테이너화 기술은 오픈 소스 소프트웨어로 ” Linux Containers “(LXC)와 Docker를 기반으로 하고 있습니다.
컨테이너 기술의 역사 2
2008년에는 지금 컨테이너기술의 바탕이 되는 LXC , 리눅스 컨테이너기술을 IBM 에서 발표합니다.
2013년에 도커라는 회사에서 LXC를 아주 잘 활용할 수 있도록 도커( Docker) 라는 기술을 오픈소스로 발표합니다.
도커는 Containerfile이란 메니페스트를 만들고, 이미지를 공유할 수 있는 Container Hub를 만들면서, Container 기술은 급속히 발전하게 됩니다.
Google에서 여러 머신에 걸쳐 사용되는 컨테이너를 통합하여 오케스트레이션하는 쿠버네티스라는 프로젝트를 오픈하면서 급속히 발전하게 되었습니다.
2015년에 구글은 쿠버네티스 1.0 을 오픈소스로 발표합니다.
2016년에는 구글이 쿠버네티스를 CNCF 재단에 기증하면서 클라우드네이티브 시대의 서막을 알리게 됩니다.
IT 업계에서는 컨테이너기술에 대한 폭발적인 관심을 이끌게 됩니다.
이후 Containerd 와 CRI-O 그리고 PODMAN 등 컨테이너는 표준기술 중심으로 발전하고 있습니다.
이외에도 rht, OCI, CRI-O 등 표준 기술들이 발전하였고, 레드햇은 Kubernetes 기반으로 OpenShift를 개발하고 있습니다.
MIRANTIS, DOCKER ENTERPRISE 사업 인수
도커는 오프소스로서는 성공했지만 수익 모델로는 어려움을 겪었습니다.
2019년에 오픈스택 교육 사업 업체로 유명한 미란티스 사는 도커사의 Container 사업 분야를 인수합니다.
도커가 미란티스에 인수되면서 도커사의 공동창업자이자 CTO 솔로몬 하이크스는 퇴사하게 됩니다.
KUBERNETES 1.20 부터 DOCKER 지원을 중단
쿠버네티스는 2020년 12월 , 버전 1.20 이후부터는 도커 지원 중단을 발표합니다.
도커로 특정 업체에 컨테이너 기술이 종속되는 것을 방지하기 위하여 컨테이너표준기술인 CRI-O 와 Containerd 에 대한 지원을 발표합니다.
새로운 표준기술들은 기존의 도커이미지와 기술들에 대한 호환성을 유지합니다.
년도별로 살펴보는 컨테이너 기술의 발전
2000년 이전
연도 |
제목 |
주요 내용 |
---|---|---|
1972 |
IBM VM / 370 (OS) |
|
1979 |
1979 년 UNIX V7 에 chroot |
|
1999 |
Virtuozzo 출시 |
|
2000 |
FreeBSD jail이 FreeBSD 4.0에 도입 |
|
2000년에서 2010년
연도 |
제목 |
주요 내용 |
---|---|---|
2001 |
Linux VServer |
|
2003 |
The Borg System By Google |
|
2004 |
Solaris Containers (Zone) 출시 |
|
2005 |
Open VZ (Open Virtuzzo) |
|
2008 |
|
2010년 이후
연도 |
제목 |
주요 내용 |
---|---|---|
2013 |
|
|
2015 |
|
|
2016 |
|
|
|
||
2017 |
|
|
2017 | CRI-O |
|
EVOLUTION OF CONTAINERS INFOGRAPHIC BY RED HAT
References & Related Links
- 컨테이너기술의 장점 – http://www.opennaru.com/openshift/container/benefits-of-container/
- 컨테이너기술과 가상화 기술 비교 – http://www.opennaru.com/cloud/virtualization-vs-container/
- 물리서버 , 가상화 , 컨테이너기술 진화의 역사 – http://www.opennaru.com/cloud/physical-server-virtualization-container/
클라우드 네이티브 (Cloud Native) 소개
/in Kubernetes/by 오픈마루 마케팅0컨테이너 기술: 하이브리드 클라우드 핵심
/in Cluster, Container, Kubernetes, OpenShift/by 오픈마루 마케팅0컨테이너 기술: 개발자를 위한 필수 가이드
/in Cloud, Container, Kubernetes, OpenShift, Red Hat/by 오픈마루 마케팅0