마이크로소프트 애저는 어떤 OS로 운영될까
퍼블릭 클라우드인 마이크로소프트 애저의 인프라를 떠받치는 운영체제(OS)는 당연하지만 '윈도'다. 그러나 일반 사용자가 사용하는 윈도보다 더 적은 요소로 이뤄진 별도의 버전이다. 최근 마이크로소프트는 '윈도 OS 플랫폼' 블로그에서 애저 서비스 운영에 활용되는 OS에 대한 상세한 내용을 공개했다. 현재 애저 인프라에 사용되는 OS의 명칭은 '클라우드 호스트(애저 호스트 OS)'다. 클라우드 호스트는 윈도에서 그래픽 인터페이스를 제거한 콘솔 전용 윈도 에디션이다. 과거 육중한 한몸으로 만들어졌던 윈도는 치밀한 모듈화를 거쳐 커널과 파일시스템 등 핵심구동요소를 모은 '코어'와 그래픽, 와이파이 등의 집합인 API 세트로 분리됐다. 코어는 x86뿐 아니라 ARM, 파워PC, MIPS 등 다양한 하드웨어 아키텍처를 지원한다. 윈도는 모든 아키텍처와 SKU에서 변경을 거의 하지 않은 상태로 유지된다. 하드웨어 최대성능을 활용할 수 있게 실행되는 아키텍처와 프로세서에 따라 동적으로 확장된다. 이는 애저에서도 동일하게 적용된다. 애저 호스트OS의 주요 목적은 가상머신 관리다. IaaS, PaaS, SaaS 등 다양한 클라우드 서비스를 제공하지만 결국 모든 고객의 코드는 VM에서 실행되기 때문이다. VM 관리는 시작, 종료, 라이브 마이그레이션, 업데이트 등을 포함한다. 모든 애저 호스트OS는 마이크로소프트의 하이퍼바이저인 '하이퍼V'를 활용한다. 모든 VM은 하이퍼V로 생성된 게스트 VM이다. 하이퍼V는 유형1의 하이퍼바이저로 루트 권한을 갖고 있어, 하드웨어를 직접 제어한다. 애저 호스트 OS는 VM 수명주기 관리 위주다. 때문에 완전한 윈도의 여러 기능이 필요없다. 윈도의 모든 에디션에서 기능을 구축하는 기본 계층인 '원코어'를 기반으로 한다. 원코어는 실행파일, DLL 등이며, 프로그래밍 상으로 윈도 클래스가 상속하는 기본 클래스다. 원코어는 커널, 하이퍼바이저, 파일시스템 지원, 네트워킹, 보안, Win32 API 등 핵심 기능을 제공하는 API 세트를 포함한다. 원코어 상단에 멀티미디어, 와이파이 스택, UWP 프로그래밍 표면, 그래픽 등 클라이언트 PC 버전을 빌드하는데 사용되는 상위 계층이 있다. 컨트롤 플레인과 통합하고 컨테이너 및 VM을 모니터링, 관리하기 위해 애저 호스트에서 실행해야 하는 최소한의 코드가 있다. 이 코드의 종속성 집합 분석을 기반으로 원코어 외에 애저에 필요한 기능 집합이 존재한다. 이런 수십개 바이너리와 원코어로 이뤄진 윈도가 '애저 호스트 OS'인 것이다. 마이크로소프트는 애저용 DLL을 추가하기 위해 '클라우드 호스트'란 새로운 SKU를 생성하고, 모든 바이너리를 클라우드 호스트에 추가했다. 원코어를 수정하지 않은 원래 형태로 유지하기 위해서였다. 클라우드 호스트의 부팅 이미지인 WIM 파일의 용량은 280MB 정도다. 일반적인 PC용 윈도 WIM의 용량이 3.6GB인데, 클라우드 호스트의 크기는 10배 이상 작다. 콘솔 셀로 부팅되며, 또다른 콘솔전용 윈도 SKU인 '윈도서버코어'와 유사하다. taskmgr 또는 regedit가 윈도11과 다르다. 윈도11의 최신 GUI를 사용하지 않으므로 예전 스타일로 나오는 것이다. 애저 호스트는 C++, 파이썬, 러스트 등의 코드도 실행할 수 있다. 마이크로소프트 내부 개발자는 원코어 SDK를 통해서만 C++, 파이썬, 러스트 등의 코드를 연결할 수 있다.