컨테이너 장점

컨테이너 기술의 장점

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

 컨테이너는 가상 머신과 마찬가지로 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스를 위한 환경을 분리할 수 있도록 해줍니다. 가상화 기술과 컨테이너 기술이  유사점은 여기까지입니다. 컨테이너를 사용하면 개발자와 IT 운영팀이 훨씬 작은 단위로 업무를 수행할 수 있어이점이 훨씬 많습니다.

  • 가벼운 가상화 기술

    가상화와 비교하면 컨테이너는 OS 없이 프로세스와 파일 시스템을 분리하는 형태이기 때문에 크기가 작고 가볍습니다.

    또한 가상화를 위한 하드웨어 에뮬레이트 (emulate) 단계 없이, 분리된 공간을 만들기 때문에 오버 헤드가 줄어 듭니다.

  • 높은 집적도

    여러 개의 컨테이너를 만들어서 실행 중이라고 해도 OS는 하나이므로, 가상머신에 비해 고밀도화가 가능합니다.

    또한 컨테이너에서는 실행되는 프로세스를 위한 메모리만 필요하기 때문에 낮은 사양의 환경에서 더욱 활용도가 높아집니다.

  • 작은 이미지 크기

    가상화 기술은 가상머신마다 OS (게스트 OS)가 필요합니다. 따라서 VM의 실행에 필요한 이미지 파일 (이하 VM 이미지) 은 애플케이션과 실행에 필요한 라이브러리 그리고 게스트 OS가 포함되어 있습니다.

    반면 컨테이너는 호스트 OS를 사용하여 시작합니다. 가상머신과는 달리 게스트 OS는 포함하지 않기 때문에 VM 이미지와 보다 파일 크기가 작아 이동성이 우수합니다.

  • 이동성 ( Portability)

    컨테이너는 이동성이 높기 때문에 개발자가 자신의 PC에서 만든 컨테이너를 그대로 퍼블릭 클라우드에 가져가 실행할 수 있습니다.

    이로 인해 대량의 마이크로 서비스의 빠르고 효율적인 배치 및 서비스 단위로 유연한 확장이 가능하며, 마이크로 서비스를 통해 얻는 효과를 극대화 할 수 있습니다.

  • 빠른 시작과 종료 시간

    컨테이너는 실행 된 OS에서 응용 프로그램 본체와 미들웨어를 실행하기 만하면되기 때문에 응용 프로그램의 시작 시간은 VM보다 크게 단축합니다.

    컨테이너를 실행하는 것은 OS 입장에서 보면 단순하게 프로세스를 시작하는 것이기 때문에 일반적인 프로세스가 시작하는 것과 별반 차이가 없습니다. 즉 매우 빠르게 시작할 수 있는 것입니다.

  • 일관성 있는 환경

    개발자는 컨테이너를 이용해, 다른 애플리케이션과 분리된 애플리케이션에 최적화된 환경을 생성할 수 있습니다.

    컨테이너는 애플리케이션에 필요한 소프트웨어 종속 항목(프로그래밍 언어 런타임 및 기타 소프트웨어 라이브러리의 특정 버전 등)도 포함할 수 있습니다.

    그 결과 자연히 생산성이 향상될 수밖에 없습니다. 개발자와 IT 운영팀이 버그를 잡고 환경 차이를 진단하던 시간을 줄이고 사용자에게 신규 기능을 제공하는 데 집중할 수 있기 때문입니다.

  • 다양한 운영 환경 지원

    컨테이너는 Linux, Windows, Mac OS, 가상 머신, 베어메탈, 개발자 PC, 데이터 센터, 온프레미스 환경, 퍼블릭 클라우드 등 사실상 어느 환경에서나 구동되므로 개발 및 배포가 크게 쉬워집니다.

    계층화된 이미지 형식으로 사용되기 때문에 이동성도 매우 뛰어납니다. 소프트웨어 구동 환경이 무엇이든 컨테이너를 사용할 수 있습니다.

  • 가상 OS형태로 독립환경 제공

    컨테이너는 CPU, 메모리, 스토리지, 네트워크 리소스를 OS 수준에서 가상화하여 개발자에게 기타 애플리케이션으로부터 논리적으로 분리된 OS 샌드박스 환경을 제공합니다.

  • 배포 편이성

    컨테이너를 사용하면 애플리케이션과 종속 항목을 버전 제어가 쉬운 하나의 패키지로 묶어 팀 내의 여러 개발자가 쉽게 복제하고 클러스터 내의 머신으로도 간편하게 복사할 수 있습니다.

    이를 서비스 기반 아키텍처와 결합하면 개발자들이 논리성을 판단해야 하는 단위 자체가 훨씬 작아지므로 민첩성과 생산성이 크게 향상됩니다. 그 결과 애플리케이션의 개발 및 테스트, 배포, 전반적인 관리가 훨씬 쉬워집니다.

역할 별로 보는 컨테이너 장점

기획자 측면에서 컨테이너 장점

기획자 측면의 장점

특징

설명

디지털 트랜스포메이션 기반 구축

디지털트랜스 포메이션이 실현하려면 IT 서비스 개발과 개선 ‘속도’가 비즈니스 우위를 확보하기 위한 필수적인 조건

비용 절감

높은 시스템 자원 사용율에 따른 비용 절감

Guest OS 에 대한 라이선스 제거

Guest OS 유지보수비용 및 관리비용 제거

하이브리드 클라우드 실현

Private 클라우드 구축하여 Public 클라우드로 즉시 이전 가능

Private Cloud 와 Public Cloud 를 단일한 기술과 운영 방법으로 관리

컨테이너를 기반으로 하는 오픈소스이기 때문에 사용자들이 특정 업체에 종속되지 않고 클라우드의 환경들을 이전

DevOps 기반

컨테이너는 DevOps 빌드/테스트/배포 파이프라인을 간소화

개발자 측면에서 컨테이너 장점

개발자 측면의 장점

특징

설명

효율적인 개발환경 구축

개발환경 구축 기간 단축 / OS가상화로 격리된 테스트 환경 구축

기존 가상화 대비 작은 시스템 리소스로 개발 환경 구축

배포 편이성

이미지를 통한 빌드, 배포 자동화

개발자 환경/테스트 환경/스테이징 환경/운영 환경에 대한 일관성 보장으로 장애 요인 제거와 장애 원인 파악 시간 단축

민첩한 개발

컨테이너를 통한 짧은 주기로 요구사항 정의와 릴리즈를 반복하는 Agile Development 지원

서비스 무정지 환경 제공

서비스 정지 없이 시스템 운영이 가능하여 배포시간과 횟수에 대한 제약이 없음

마이크로서비스 아키텍처

마이크로 서비스는 컨테이너로 구성하고 배포, 운영하는 것이 매우 유리

DevOps 기반

컨테이너는 DevOps 빌드/테스트/배포 파이프라인을 간소화

운영자 측면에서 컨테이너 장점

운영자 측면의 장점

특징

설명

낮은 오버헤드와 빠른 시작

최소한의 CPU와 메모리 만 사용하여 비용절감과 부하가 작아 고성능 제공

Guest OS 가 없기 때문에 OS 부팅 없이 애플리케이션을 실행하여 빠른 시작 (호스트 OS 에서 프로세스로 실행)

높은 이동성 ( Portability)

Public Cloud (AWS, Azure, Google …)와 기업 내 에서 Linux 운영체제라면 어디서나 운영 및 이식이 용이함

구축 기간 단축

컨테이너 환경은 개발, 스테이징, 운영 환경을 단순한 복사로 구축하여 작업시간을 단축하고 일관성을 제공하여 환경에 의한 문제 원인 제거

장애 대응

배포, 시스템 유지보수, 장애 발생시 무정지 작업이 가능

컨터이너 이미지 단위로 배포하고 운영하기 때문에 장애시 전환 시간을 단축

이미지 형태의 배포로 환경 차이에 의한 장애원인 제거

클라우드 네이티브 운영 환경 실현

스케쥴링(Scheduling), 컨트롤링(Controlling) , 자가 복구(Self Healing), 오토 스케일링(Auto Scaling), 롤링 업데이트(Rolling Update)

컨테이너 기술 소게

컨테이너 기술 소개

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

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

컨테이너

컨테이너 를 들으면 무엇이 떠오르나요?

항구나 공항 등에서 보는 직 물류 업계에서 사용되는 컨테이너가 떠오르 실 것입니다

컨테이너는 내용물을 하나씩 이동하는 것이 아니라 박스에 수하물을 담아 통째로 이동하기 때문에 편리한 물류 수단입니다.

가상화 와 컨테이너 비교

가상화와 컨테이너의 비교

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

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

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

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

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

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

하이브리드 클라우드 / 멀티 클라우드

컨테이너 기술을 구글,레드햇 그리고 오픈스택 등에서 채택

Docker 사는 지난 2013년 6월 10일에 Docker 1.0 발표와 함께 Docker (도커)를 기반으로 한 애플리케이션 개발, 배포, 실행 기능을 갖춘 서비스 “Docker Hub”를 발표했습니다.
도커는 컨테이너형 가상화를 실현하는 오픈소스로 VirtualBox나 VMware와 같은 가상화와 비슷한점도 있지만 다른 점은 빌드와 배포가 빠르며 오버 헤드가 적으면서도 플랫폼과 하드웨어에서 독립된 환경을 제공합니다.
도커는 매우 가벼운 컨테이너입니다.

컨테이너는

컨테이너는 호스트 OS에 논리적 파티션 (컨테이너)을 만들고 애플리케이션을 실행하는 데 필요한 라이브러리나 프로그램 그리고 설정파일 등을 한덩어리로 묶어서 사용할 수 있도록 합니다. 호스트 OS의 자원은 논리적으로 분리하여 각각의 컨테이너에서 공유하여 사용합니다. 컨테이너는 서버 가상화에 비해 오버 헤드가 적기 때문에 가볍고 빠르게 작동하는 것이 특징입니다.

애플리케이션 실행환경을 작고 가벼운 컨테이너 단위로 구성하게 되면 용도별로 컨테이너들을 조합하여 마이크로서비스 아키텍처 형태로 구성할 수 있습니다.

References & Related Links

Summary
product image
Aggregate Rating
5 based on 6 votes
Brand Name
OPENMARU APM
Product Name
OPENMARU APM (Application Performance MAnagement)