컨테이너 기술의 장점
가상 머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 OS를 가상화하여 여러 개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고 , 메모리를 훨씬 적게 차지합니다.
컨테이너는 가상 머신과 마찬가지로 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스를 위한 환경을 분리할 수 있도록 해줍니다. 가상화 기술과 컨테이너 기술이 유사점은 여기까지입니다. 컨테이너를 사용하면 개발자와 IT 운영팀이 훨씬 작은 단위로 업무를 수행할 수 있어 이점이 훨씬 많습니다.
컨테이너(Container) 기술 발표 자료 다운로드
Container 기술이 제공하는 역할 별 장점
기획자 측면에서 Container 장점
기획자 측면의 장점 |
|
---|---|
특징 |
설명 |
디지털 트랜스포메이션 기반 구축 |
디지털트랜스 포메이션이 실현하려면 IT 서비스 개발과 개선 ‘속도’가 비즈니스 우위를 확보하기 위한 필수적인 조건 |
비용 절감 |
높은 시스템 자원 사용율에 따른 비용 절감 |
Guest OS 에 대한 라이선스 제거 |
|
Guest OS 유지보수비용 및 관리비용 제거 |
|
하이브리드 클라우드 실현 |
Private 클라우드 구축하여 Public 클라우드로 즉시 이전 가능 |
Private Cloud 와 Public Cloud 를 단일한 기술과 운영 방법으로 관리 |
|
컨테이너를 기반으로 하는 오픈소스이기 때문에 사용자들이 특정 업체에 종속되지 않고 클라우드의 환경들을 이전 |
|
DevOps 기반 |
컨테이너는 DevOps 빌드/테스트/배포 파이프라인을 간소화 |
개발자 측면에서 Container 장점
개발자 측면의 장점 |
|
---|---|
특징 |
설명 |
효율적인 개발환경 구축 |
개발환경 구축 기간 단축 / OS가상화로 격리된 테스트 환경 구축 |
기존 가상화 대비 작은 시스템 리소스로 개발 환경 구축 |
|
배포 편이성 |
이미지를 통한 빌드, 배포 자동화 |
개발자 환경/테스트 환경/스테이징 환경/운영 환경에 대한 일관성 보장으로 장애 요인 제거와 장애 원인 파악 시간 단축 |
|
민첩한 개발 |
컨테이너를 통한 짧은 주기로 요구사항 정의와 릴리즈를 반복하는 Agile Development 지원 |
서비스 무정지 환경 제공 |
서비스 정지 없이 시스템 운영이 가능하여 배포시간과 횟수에 대한 제약이 없음 |
마이크로서비스 아키텍처 |
마이크로 서비스는 컨테이너로 구성하고 배포, 운영하는 것이 매우 유리 |
DevOps 기반 |
컨테이너는 DevOps 빌드/테스트/배포 파이프라인을 간소화 |
운영자 측면에서 Container 장점
운영자 측면의 장점 |
|
---|---|
특징 |
설명 |
낮은 오버헤드와 빠른 시작 |
최소한의 CPU와 메모리 만 사용하여 비용절감과 부하가 작아 고성능 제공 |
Guest OS 가 없기 때문에 OS 부팅 없이 애플리케이션을 실행하여 빠른 시작 (호스트 OS 에서 프로세스로 실행) |
|
높은 이동성 ( Portability) |
Public Cloud (AWS, Azure, Google …)와 기업 내 에서 Linux 운영체제라면 어디서나 운영 및 이식이 용이함 |
구축 기간 단축 |
컨테이너 환경은 개발, 스테이징, 운영 환경을 단순한 복사로 구축하여 작업시간을 단축하고 일관성을 제공하여 환경에 의한 문제 원인 제거 |
장애 대응 |
배포, 시스템 유지보수, 장애 발생시 무정지 작업이 가능 |
컨터이너 이미지 단위로 배포하고 운영하기 때문에 장애시 전환 시간을 단축 |
|
이미지 형태의 배포로 환경 차이에 의한 장애원인 제거 |
|
클라우드 네이티브 운영 환경 실현 |
스케쥴링(Scheduling), 컨트롤링(Controlling) , 자가 복구(Self Healing), 오토 스케일링(Auto Scaling), 롤링 업데이트(Rolling Update) |
컨테이너 / 쿠버네티스 기술 소개 – Immutable Infrastructure
IT 분야에서 “컨테이너”도 일종의 박스의 의미이며, 물류분야에서 처럼 Portability (이동성) 을 실현하기 위해 만들어진 기술입니다.
이동성은 IT 시스템 (플랫폼 또는 인프라) 상에서 다른 IT 시스템으로 이동을 쉽게 허용하는 성질을 의미하는 것입니다.
컨테이너 를 들으면 무엇이 떠오르나요?
항구나 공항 등에서 보는 직 물류 업계에서 사용되는 컨테이너가 떠오르 실 것입니다
컨테이너는 내용물을 하나씩 이동하는 것이 아니라 박스에 수하물을 담아 통째로 이동하기 때문에 편리한 물류 수단입니다.
가상화와 컨테이너의 비교
가상화는 개발측면이나 운영측면에서 자원 효율적으로 사용하고 관리하는 기술로서 널리 확산되었습니다. 다양한 OS 환경과 어플리케이션을 하나의 파일로 관리할 수 있는 “가상 머신 (VM)”은 손쉽게 이동할 수 있는 이식성을 제공해 주었습니다.
컨테이너는 하이퍼바이저와 Guest OS 없이 애플리케이션 운영환경을 제공하는 기술로서 앞서의 가상화 기술의 고질적인 문제점들을 해결하고 있습니다.
Docker 그리고 컨테이너 기술의 역사
컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.
1972년 IBM VM / 370 (OS) 최초 가상화 기능 구현 , 1979 년 UNIX V7 에 chroot 시스템 콜 도입, 1999년 Virtuozzo 출시 컨테이너 가상화의 새로운 방향을 제시
디지털 트랜스포메이션 과 클라우드 네이티브 기술
디지털 트랜스포메이션 이란 디지털 기술의 급격한 발전으로 인한 혁신적인 발전 방식을 뜻합니다. 즉, 비즈니스 동향, 전략, 사례, 솔루션, 서비스, 플랫폼의 혁신을 포함합니다. 기업은 언제나 기술 변화에 맞춰 진화해야 했습니다. 그러나 주로 “디지털”의 확장 가능한 속성 또는 고객 서비스 방식을 개선하기 위한 새로운 기능의 사용 방법 때문에 오늘날 그러한 변화는 점점 빨라지고 있습니다. 급속한 변화 속도로 인해 반복적이고 끊임없는 혁신, 즉 디지털 트랜스포메이션 은 필수 요소가 되었습니다.
컨테이너 는
컨테이너 는 호스트 OS에 논리적 파티션 (컨테이너)을 만들고 애플리케이션을 실행하는 데 필요한 라이브러리나 프로그램 그리고 설정파일 등을 한덩어리로 묶어서 사용할 수 있도록 합니다. 호스트 OS의 자원은 논리적으로 분리하여 각각의 컨테이너에서 공유하여 사용합니다. 컨테이너는 서버 가상화에 비해 오버 헤드가 적기 때문에 가볍고 빠르게 작동하는 것이 특징입니다.
애플리케이션 실행환경을 작고 가벼운 컨테이너 단위로 구성하게 되면 용도별로 컨테이너들을 조합하여 마이크로서비스 아키텍처 형태로 구성할 수 있습니다.
References & Related Links
- 디지털 트랜스포메이션이란? (레드햇) – https://www.redhat.com/ko/topics/digital-transformation/what-is-digital-transformation
-
디지털 트랜스포메이션(Digital Transformation) 정의와 전략 (레드햇) – https://www.redhat.com/ko/topics/digital-transformation
-
디지털이니셔티브 그룹 – http://digitaltransformation.co.kr/
-
디지털 트랜스포메이션에 관한 7가지 오해 – http://www.itworld.co.kr/news/143202