도커 사용이유
카테고리: CS
태그: Docker
Docker란 ?
🐋 Docker란 Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼으로 0.9버전 부터는
직접 개발한 libcontainer 컨테이너를 사용하고 있다.
Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 컨테이너에는 라이브러리,
시스템 도구 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있다.
VM 가상화 플랫폼 vs Docker 가상화 플랫폼
- Virtual machine 환경은 Host OS 위에 가상화를 위한 Hypervisor 엔진과 그 위에 Guest OS를 올려 용한다.
이는 가상화된 하드웨어 위에 OS가 올라가는 형태로 거의 완벽하게 Host와 분리된다. - 컨테이너 기반 가상화는 Docker 엔진 위에 Application 실행에 필요한 바이너리만 올라간다.
- OS 가상화는 Host OS와 완전히 분리되어, Host OS위에 또 다른 Guest OS를 올리기 때문에 무겁고 느릴수 밖에 없다.
- 하지만 컨테이너 기반 가상화는 Host OS 그리고 Docker 엔진위에서 필요한 바이너리와 라이브러리를 통하여 동작한다.
Host 커널 위 새로운 OS가 동작하는게 아니고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다.
→ CPU나 메모리를 프로세스가 필요한 만큼만 사용하기 때문에 자원의 낭비또한 적다.
컨테이너를 사용하는 것은 가상 머신을 생성하는 것이 아니라 Host OS가 사용하는 자원을 분리하여 여러 환경을
만들 수 있도록 하는 것이다.
Docker의 장점은 단지 빠른 가상화를 제공하는 것이 아니다.
1. 더 많은 소프트웨어를 더 빨리 제공
- Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있다.
2. 운영 표준화
- 작은 컨테이너식 애플리케이션을 사용하면 손쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있다.
3. 원활하게 이전
- Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있다.
4. 비용 절감
- Docker 컨테이너를 사용하면 각 서버에서 좀 더 쉽게 더 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있다.
🎯 GURURU 서버 아키텍쳐에서 DOCKER를 사용 한 이유
여러가지 이유 중 가장 큰 이유는 운영 표준화에 있었다. 서버를 구성하며 동일한 환경을 보장받으며, 편리한 운영을 위한 환경을 만들고자 하였다.
또한 차후 서버 스케일링을 위한 환경구성을 미리 구성해보았다.
CONTINUOUS INTEGRATION & DELIVERY
환경을 표준화하고 언어 스택 및 버전 간의 충돌을 제거하여 애플리케이션을 더욱 쾌적하게 제공.
댓글남기기