로컬, 개발, 운영에 대해서 모두 동일한 환경을 구성할 수 있다.
순간 트래픽이 증가하거나 하는 경우 새로운 서버에 Docker Engine만 설치하면 빠르게 환경 구축이 가능하다.
Docker 기본개념
Dockerfile을 이용하여 자신만의 image를 생성하여 Docker Hub 또는 사내 Registry를 구성하여 push한다.
각 노드는 Registry로부터 이미지를 다운로드 받아서 격리된 컨테이너를 실행할 수 있다.
기존의 vm 같은 경우는 hypervisor가 hardware를 가상화하고 그위에 새로운 OS가 올라가는 구조이다.
하지만 Docker의 경우는 OS에 설치된 Docker Engine 위에 어플리케이션(OS 등등) 실행에 필요한 바이너리만 올라가는 구조이기 때문에
더 적은 자원을 사용할 뿐만 아니라 실행속도 또한 빠르다.
KUBENETES, DOCKER SWARM, APACHE MESOS 등을 이용하여 컨테이너의 배포 관리를 할 수 있다.(Container Orchestration)
위의 3가지 솔루션들은 모두 여러 머신들의 자원을 Pool로써 관리하고 새로운 컨테이너가 배포되면 각 노드의 리소스 사용량에 따라
절적하게 컨테이너를 해당 머신에 배포하여 준다. (서버 자원을 효율적으로 사용할 수 있다.)
- 구글 트렌트 분석
- kubenetes
- docker swarm
- mesosphere
KUBENETES | DOCKER SWARM | APACHE MESOS |
---|---|---|
|
|
|