728x90
반응형
컨테이너 기술이란?
컨테이너는 애플리케이션을 언제든 실행 가능하도록 필요한 모든 요소를
(소스코드, 구성요소, 종속성 등) 하나의 런타임 환경으로 패키징한 논리적인 공간을 말함
이러한 패키징 기술을 docker에서는 Dockerfile build를 통해 구현한다.
애플리케이션과 종속 항목을 하나로 묶어, 실행하게 해주는 운영 시스템을 가상화
한 경량의 격리된 프로세스라고 볼 수 있다.
microVM 이라고도 한다.
운영체제 수준의 가상화 제공
독립성을 갖기 때문에 다른 컨테이너에 영향을 주지 않는 stateless 환경 제공
개인 데스크탑 뿐만 아니라 기업 내의 온프레미스 서버에서 AWS 와 같은 퍼블릭 클라우드까지
효율적으로 배포 가능하며, 확장성도 갖고 있다.
이를 통해 서버구성, OS설치, 네트워크, 개발 도구 구성 등의 반복적이고 불편한
작업에 시간을 낭비하지 않고 개발자는 애플리케이션 개발 그 자체에 집중핧 수 있게 된다.
컨테이너 특징
컨테이너는 우리가 개발한 최소한의 image를 통해 실행되므로 경량이다.
컨테이너 이미지 생성의 가장 좋은 사례는 이미지 경량화다.
일반 서버 환경에서의 애플리케이션 실행과 달리 언제든 프로세스 수준의 속도로 빠르게 실행(run)
할 수 있고, 한 번에 여러 개의 컨테이너를 동시에 실행 가능하다.
Docker에서는 docker compose 기술을 통해 구현
개인 환경, 클라우드환경, 다양한 OS 등 어떤 환경에서라도 동작 가능한 이식성을 보유
컨테이너 자체 애플리케이션 환경에 대한 관리만 요구되므로, 지속적 서버 관리 비용을 절감할 수 있음
개발팀과 운영팀의 업무로 분리로 각자 업무와 세분화된 관리에 집중 가능
컨테이너는 DevOps workflow 구성에 최적이다.
컨테이너 사례
앞서 설명한 컨테이너의 특징을 활용할 수 있는 대규모 애플리케이션 서비스부터 앱 서비스까지
여러 기업의 다양한 애플리케이션 환경에서 사용 중이다.
- 구글 웹,앱 서비스
- 에어비앤비 추천 서비스
- 넷플릭스 추천 서비스
- 당근 마켓 딥러닝 기반 추천 서비스
- 엔씨 소프트 게임 서비스
- 삼성전자 헬스 케어 서비스
- 타다 배차 서비스
- 토스 금융 서비스 ....
컨테이너는 어떤 타입으로 생성되는지
컨테이너 패키징 매커니즘
: 시스템/애플리케이션/라우터컨테이너
: 시스템 (OS) 컨테이너
- 호스트 OS 위에 Ubuntu와 같은 배포판 리눅스 IMAGE를 통해 배포되는 컨테이너
- 또 다른 VM 형태이고 내부에서 다양한 애플리케이션 및 라이브러리 도구를 설치, 실행 가능
- 대표적으로 LXC, LXD, OpenVZ, Linux Vserver, BSD jails 등이 있다.
: 애플리케이션 컨테이너
- 단일 애플리케이션 실행을 위해 해당 서비스를 패키징하고 실행하도록 설계된 컨테이너이다.
- 3 tier 애플리케이션과 같은 경우 각 tier(Front Backend DB) 를 개별 컨테이너로 실행하여 연결
- 대표적으로 Docker container runtime, Rocker 등이 있다.
Docker 란?
여러 계층의 App을 Container로 분리, 연결하여 실행하는 MSA(MicroService Architecture)프로젝트에 유용
APP의 Infra 는 Image를 통해 제공하고 public / private 공유 가능
Github과 유사한 방식(open share) 으로 docker hub에서 제공
이렇게 제공된 image를 기반으로 Application 서비스 제공 이를 컨테이너화(Containerization)할 수 있다.
반응형
'DevOps' 카테고리의 다른 글
최신 docker 엔진(ver) update (0) | 2024.03.14 |
---|---|
02. docker 컨테이너 가상화 & VM 가상화 (1) | 2024.03.13 |
Fast Campus 강의 필기 (0) | 2024.03.13 |
OpenShift란 무엇인가? - 컨테이너 오케스트레이션의 미래 (1) | 2024.02.27 |
Vagrant up (0) | 2024.01.03 |