가상 머신을 기반으로 배포하는 것, 즉 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것
전통적인 배포방식은 컴퓨터 한대에 OS를 깔고 여러가지 프로그램을 설치하는 방식. 계정을 나누어 여러 사용자가 이용할 수 있게 하지만 설치한 프로그램들이 서로 영향을 줄 수 있음.
가상 머신을 이용하면 한대에 컴퓨터에서 여러개의 OS를 구동할 수 있으므로 위의 문제를 해결 가능

중간의 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러개 구동할 수 있도록 해주는 중간 계층. 이 위에 여러개의 가상머신을 구축
단점은 OS가 공유가 안되기 때문에 가상머신에 일일히 OS를 설치해야 한다.
클라우드 서비스는 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말함. 이를 이용하여 자체 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스에 쉽고 싸게 이용이 가능, 즉 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중할 수 있다.
온프레미스방식은 기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터(IDC)을 의미.
인프라형 클라우드 서비스. 클라우드가 단지 인프라를 제공. node.js, MongoDB등을 직접 설치해야하는 대신 특정 서비스에 종속되지 않는다. AWS의 EC2, NCP 등이 있다.
=> 빈방을 제공 해주고 필요한 것들은 용도에 맞게 직접 설치
플랫폼형 클라우드 서비스. 클라우드가 플랫폼을 제공. node.js, MongoDB 등이 설치되어 있어 그저 클릭으로 해당 서비스 이용 가능. heroku가 대표적인 예시
=> 빌트인방, 방에 선풍기 냉장고 등 미리 설치가 되어있음
서비스형 클라우드 서비스. 완전한 서비스를 제공받아 사용. 구글DOCS가 있다.
IaaS vs PaaS
유연성 : IaaS > PaaS
이식성 : IaaS > PaaS
운영비효율 : IaaS < PaaS
애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징 하는 소프트웨어 표준 단위. 컨테이너는 OS를 공유하기 때문에 빠르고 경량화 되어있으며 격리성도 훌륭하다. 단점으로는 OS에 문제가 생기면 다른 앱에도 영향이 미칠 수 있다.

컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼.

도커는 IaaS와 PaaS의 장점만을 가지고 있다.
과정
1. 도커파일 : 패키지, 환경변수설정 등을 기록한 파일. 이를 빌드해 도커이미지로 변환.
2. 도커이미지 : 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변. 하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와는 무관하게 이미지는 그대로 존재.
Ex) 1대의 서버에 환경설정해야 한다면 미리 만들어 놓은 이미지를 다운받아서 이를 통해 컨테이너만 만들면 끝.
3. 도커컨테이너 : 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제
컴퓨팅자원과 연결.