컴퓨터 운영 방식 인프라의 변화
베어메탈이란 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태를 의미한다.
즉, 하나의 컴퓨터에 하나의 운영 체제(OS)만 적용하는 방식, 일반적으로 사용하는 컴퓨터라고 이해했다. 가상화 기능이 실현되기 전 유일한 운영 방식이었을 것이다.
베어메탈로 구현된 서버는 물리 서버를 그대로 제공하는 서버 호스팅 개념이기 때문에 가상화를 구현하며 불필요한 성능 저하가 생기는 것을 방지한다.
그래서 데이터베이스 등 성능과 안정성에 민감한 서비스에는 여전히 베어 메탈이 사용된다고 한다.
하지만 베어메탈 방식으로 운영하는 경우 하나의 OS가 모든 리소스를 항상 full 상태로 사용하기 어려워 사용되지 않는 리소스들이 idle 상태(유휴 상태)로 낭비되는 단점이 있다.
또한 서버 자원의 사용량을 예측하긴 쉽지 않고 증감폭이 크기 때문에 물리적으로 서버를 계속해서 늘려나가는 한계가 있다고 배웠다.
일반적으로 가상화라고 불리는 개념이다.
하나의 컴퓨터에서 다수의 독립적인 OS를 운영하는 개념이다.
그래서 가상화는 하나의 물리적 서버, 즉 베어 메탈 서버에 존재하는 HOST OS, 그리고 그 위에 존재하는 독립적인 다수의 OS로 구성돼 있다.
그리고 다수의 OS는 가상 머신(Virtual Machine)으로 불리며 각각의 독립적인 OS와 어플리케이션을 실행시킬 수 있다.
따라서 하나의 물리적 서버의 리소스를 각각의 OS에 할당해 효율적으로 사용할 수 있다.
이는 에뮬레이션(Emulation)과 비슷한 개념이라고 하는데, 현재 사용하는 하드웨어에서 구동 가능한 소프트웨어를 실행하는 가상화와 달리 애뮬레이션은 주로 다른 기종의 하드웨어에서 작동하는 소프트웨어를 실행시키는 목적을 갖는다고 한다.

여기서 하이퍼바이저란, 하나의 컴퓨터에서 여러 VM에게 리소스를 분배하도록 하는 소프트웨어이고 각 VM들은 자신의 가상 운영체제, 즉 게스트 운영체제를 실행하고 관리한다.
VMware, VirtualBox 등이 대표적인 가상화 서비스이다.
가상화는 효율적으로 자원에 대한 빠른 전개와 회수가 가능하고 격리된 서버가 리소스를 나눠 처리할 수 있는 환경을 제공한다.
하지만, 여러 Guest OS를 가상화하여 사용하는 방식은 사용법은 간단하지만 기술적으로 대량의 리소스를 대비해 CPU/Memroy/Disk 등을 scale-up 해야한다.
특히 메모리 부분에서 문제가 생기는데 여러 개의 VM은 결국 HOST OS 입장에선 개별적인 어플리케이션이고, 대량의 메모리 리소스가 소모되는 각각의 OS들은 베어 메탈 서버의 성능을 저하시키기 때문이다.
일반적으로 컨테이너라고 불린다.
컨테이너 가상화는 아예 프로세스를 격리된 환경에서 실행한다. 리눅스에서 제공하는 프로세스 격리방법을 이용하여 가상 OS 형태로 분리하는 방법이다.
이러한 방식을 리눅스 컨테이너라고 하며 이는 OS를 가상화하는 것이 아닌 운영체제 수준의 가상화 기술로 리눅스 커널을 공유해 프로세스를 격리된 환경에서 실행해 효율성을 높이는 하이브리드 클라우드 환경인 셈이다.
컨테이너는 하나의 컨테이너 이미지로부터 만들어지기 때문에 모두가 공유하는 환경 조성이 가능하며 다수의 컨테이너가 실행되면 서로 영향을 끼치지 않고 독립적으로 실행한다.
그러면서도 기준 이미지로부터 자동확장, 자동복구 그리고 하이브리드 클라우드로 이식성 (Poratabiltiy)을 가질 수 있다.
또한 VM이 따로 없기 때문에 호스트OS 부팅 후 곧바로 프로세스로 분리돼 빠른 실행이 가능해 사용자 증폭에 대비할 수 있다.

하지만, 자원의 격리와 제한이 어렵고, 스토리지 성능이 좋지 않으며, 네트워크 구성이 어렵다는 단점 역시 존재한다.