'도커 교과서'를 읽고 정리한 내용입니다.
도커 - 컨테이너를 단위로 해 애플리케이션을 실행하는 기능을 제공하는 플랫폼.
클라우드 환경으로 이주하기
1. PaaS(Platform as a Service)
- 우리 애플리케이션의 각 컴포넌트를 하나씩 클라우드의 매니지드 서비스로 옮기는 작업을 해야함
- 애플리케이션이 특정 클라우드에 종속되지만, 운영비를 절감할 수 있음.
2. IaaS(Infra as a Service)
- 애플리케이션의 각 컴포넌트를 가상 머신에서 동작시킴
- 특정 클라우드에 종속되진 않지만, 운영비가 상승함.=
3. 도커
- 애플리케이션의 각 컴포넌트를 컨테이너로 이주한 뒤, Azure k8s service나 Amazon ECS 또는 직접 구축한 도커 클러스터에서 전체 애플리케이션을 실행할 수 있음.(분산 애플리케이션을 컨테이너를 통해 실행시키는 방법)
- 특정 클라우드에 종속되지 않으며, 낮은 운영비와 이식성 확보
레거시 애플리케이션 현대화하기
- 컨테이너를 활용하면 거의 모든 애플리케이션을 클라우드에서 실행할 수 있음.
- 모놀리식 설계의 애플리케이션도 Dokerfile 스크립트와 도커 컴포즈 문법을 따라 단일 컨테이너로 옮기면 컨테이너 이주가 끝남
- 컨테이너는 가상 네트워크를 통해 외부에 노출되지 않고 서로 통신할 수 있음
- 모놀리식 애플리케이션을 분할 해 기능별로 별도의 컨테이너에 배치할 수 있다는 것
클라우드 환경에 적합한 새로운 애플리케이션 개발하기
- 마이크로서비스 아키텍처의 경우 각 컴포넌트가 자신만의 데이터를 가지며 API를 통해 이 데이터를 외부에 제공함.
- 모든 컴포넌트는 공통적으로 Dokerfile을 통해 패키징되며 도커 컴포즈 파일 형태로 전체 애플리케이션이 정의됨.