컨테이너는 클라우드, 데탑 등 어디서든 실행 할 수 있도록 애플리케이션 코드가 해당 라이브러리 및 종속 항목과 함께 패키징되어 있는 소프트웨어
OS의 커널을 활용하여 프로세스를 격리하고 해당 프로레스가 액세스 할 수 있는 CPU 메모리 디스크 양을 제어하는 OS 가상화 형식
가상 머신과 달리 컨테이너는 모든 인스턴스에 게스트 OS를 포함할 필요가 없다.
대신 호스트 OS의 기능과 리소스를 간편하게 활용할 수 있다. 따라서 컨테이너는 빠르고 이식성이 뛰어난다. 최근에는 도커를 사용한다.
컨테이너 vs 가상 머신
기존의 가상 머신은 하이퍼바이저를 활용하여 물리적 하드웨어를 가상화한다. 각각 VM에 애플리케이션 이와 관련된 라이브러리 및 종속 항목과 함께 OS가 실행해되어야 하는 하드웨어의 가상 사본 게스트 OS가 포함된다.
기반 하드웨어를 가상화하는 대신, 컨테이너는 운영 체제를 가상화하고, 개별 컨테이너는 오직 어플리케이션과 함께 오직 애플리케이션과 함께 해당 라이브러리와 종속 항목만 포함된다. -> 게스트 OS가 없으므로 경량화되어있다.
하이퍼바이저는 가상 머신 모니터, 서로 동시에 실행되는 동안 각각 파워 메모리 및 스토리지를 배분, 서로 VM이 간섭하는것을 방지한다.
컨테이너의 장점
1. 경량 : 시스템 OS 커널을 공유함으로서 전체 OS 인스턴스가 필요하지 않다. 리소스에서 컨테이너의 파일의 소형화와 간편함을 제공한다.
2. 이식성 및 플랫폼 독립성 : 컨테이너가 모든 종속 항목들을 자신과 함께 전달하므로 다른곳에서 재구성 않고 바로 실행 가능하다.
3. 최신 개발 및 아키텍처 지원 : 최신형 개발 및 아키텍처 지원 : 플랫폼 간의 배치 이식성 / 일관성 및 소형 크기의 조합 덕분에 최신 개발에 이상적이고, devops 서버리스, 마이크로 서비스 등의 빌드되어 있는 애플리케이션 패턴은 소규모 증분의 일반 코드 배치이다.
4. 활용도 향상 : 이전 VM처럼 컨테이너를 사용하여 개발자와 운영자는 물리적 시스템 CPU 메모리 활용도를 향상시킬 수 있다. 컨테이너의 보다 큰 장점은 MSA도 허용하므로 미세하게 활용 및 스케일링 가능 이는 과중한 로드로 인해 전체 모놀리식 애플리케이션을 확장해야 하는데 매력적인 대안이 될 수 있다.
유스케이스
1. 마이크로서비스 : 컨테이너는 소형이고 경량이다. 소형, 경량이라 독립적인 배치가 가능한 소형 서비스들로 구성되는 마이크로서비스 아키텍처는 매우 적절하다.
2. devops : 아키텍처로서 마이크로서비스 플랫폼으로서의 컨테이너의 결함은 소프트웨어 구축, 장착 및 실행 방안으로서의 devops를 채택하는 많은 팀들의 기반이다.
3. 하이브리드, 멀티클라우드 : 컨테이너가 랩탑, 온프레미스 및 클라우드 환경의 어디서나 일관되게 실행 가능하다.
4. 애플리케이션 현대화 및 마이그레이션 : 현대화 및 마이그레이션이 용이하다.
'IT이론 > devops' 카테고리의 다른 글
로드 밸런스란 (0) | 2022.03.05 |
---|---|
CD / CI란 (0) | 2022.03.05 |
쿠버네티스, 컨테이너 오케스트레이션란 (0) | 2022.03.05 |
도커를 공부해보자 - 1 (0) | 2021.12.11 |
댓글