본문 바로가기

TEAM STUDY/쿠버네티스

컨테이너 기술의 장점

728x90
반응형

컨테이너 기술의 장점

 

가상 머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 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 샌드박스 환경을 제공합니다.

     

  • 배포 편이성

    컨테이너를 사용하면 애플리케이션과 종속 항목을 버전 제어가 쉬운 하나의 패키지로 묶어 팀 내의 여러 개발자가 쉽게 복제하고 클러스터 내의 머신으로도 간편하게 복사할 수 있습니다. 이를 서비스 기반 아키텍처와 결합하면 개발자들이 논리성을 판단해야 하는 단위 자체가 훨씬 작아지므로 민첩성과 생산성이 크게 향상됩니다. 그 결과 애플리케이션의 개발 및 테스트, 배포, 전반적인 관리가 훨씬 쉬워집니다.


728x90
반응형