가상화와 클라우드 컴퓨팅
가상화: 컴퓨터에서 컴퓨터 리소스(CPU,메모리,저장장치,네트워크 등)의 추상화를 일컫는 광범위한 용어
플랫폼 가상화(하드웨어 플랫폼 위에서 실행) vs 리소스 가상화(특정한 시스템 리소스의 가상화로 확장)
가상화가능 대상: 서버, 앱 및 데스크톱, 네트워크, 클라우드 컴퓨팅
클라우드 컴퓨팅: 클라우드(인터넷)을 통해 가상화된 컴퓨터의 시스템 리소스(IT 리소스)를 제공, 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술
컨테이너 기술
가상화는 단일 하드웨어 시스템에서 여려 운영체제가 동시에 실행
컨테이너는 동일한 운영 체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스 격리
컨테이너 : 런타임 인스턴스, 애플리케이션과 그 구동환경을 격리한 공간. 경량-포터블 실행가능 이미지- 이미지의 런타임 인스턴스, 소프트웨어와 그에 필요한 의존성 모듈들을 포함한다.
하부의 호스트 인프라스트럭처로부터 애플리케이션을 분리함으로써, 다른 클라우드 또는 다른 OS 환경에 배포하거나 스케일링 가능
도커 컨테이너: 도커 컨테이너는 소프트웨어를 제어할 수단을 제공한다. 도커를 이용해 애플리케이션을 패키징하면, 이의 전개와 런타임 문제를 애플리케이션 외부에서 제어할 수 있음
컨테이너는 기저의 운영 체계로부터, 그리고 다른 컨테이너로부터, 단일 애플리케이션과 이의 의존성, 다시 말해 앱 실행에 필수적인 외부 소프트웨어 라이브러리 전체를 격리한다.
도커는 시스템 자원을 좀더 효율적으로 이용할 수 있다.
도커는 소프트웨어 전달 주기를 가속한다.
도커는 애플리케이션 이동을 가능하게 한다.
컨테이너에 의해 좀더 용이해지는 소프트웨어 패턴의 하나는 마이크로 서비스다.
도커