14P by xguru 2023-08-31 | favorite | 댓글 5개
  • MicroVM은 지난 5년동안 기술 R&D 분야에서 뜨거운 영역
  • 핵심 아이디어는 IBM이 1960년대 하이퍼바이저와 함께 발명한 일부 개념과 기술을 재창조
    • 다른 OS에서 게스트로 실행되도록 특별히 OS를 설계하는 것
    • VM내에서 실행되지만 가짜 하드웨어가 아닌 특정 하이퍼바이저가 제공하는 리소스(VirtIO)와 통신하도록 함
  • 상업적인 목표는 "서버리스" 컴퓨팅 성능을 제공하는 것
    • AWS Lambda 는 Firecracker 로 구동
    • Firecracker는 리눅스 커널에 내장된 KVM 하이퍼바이저를 기반으로 함(기존 AWS는 Xen 하이퍼바이저 기반이었음)
    • Linux-On-Linux
  • FreeBSD가 25ms 에 부팅 가능한 동일 환경에서 Linux는 75~80ms가 걸림
  • FreeBSD Kernel 개발자인 Colin Percival이 처음에 부팅속도 개선 작업을 시작 할때 10초 였지만 이제 400배 빨라진 것
  • 현재는 x86-64 에서 최적화 된것이지만, Arm64도 작업이 진행중
  • Firecracker 는 현재 가장 널리 알려진 microVM중 하나지만, 다른 제품들도 있음
    • QEMU는 microvm 가상플랫폼을 추가 했고, 온라인 개발환경 서비스인 Hocus는 Firecracker 에서 QEMU로 전환했음
  • 클라우드 뿐만 아니라 다른 용도도 있을수 있음
    • 완전히 다른 OS위에 하나의 OS용으로 구축된 단일 프로그램을 실행하는 것은 여러 상황에서 유용

80밀리초와 20밀리초의 차이가 실제 전체 서비스? 서비스 제공자 경험? 측면에서는 어느 정도의 차이일까요? 그냥 80밀리초도 충분한거 아닌가 싶은 느낌도 막연히 들어서요. 10초는 좀 너무했지만요.

콜드 스타트 시간을 클라이언트와의 TLS 핸드셰이킹에 걸리는 시간보다 줄일 수 있으면 느린 콜드 스타트에 의한 일부 사용자의 초기 체감속도 저하나 혹은 이를 막기 위한 워밍업 등의 조치가 필요없다고 합니다.
CloudFlare에서는 Workers 서비스의 로딩시간을 무려 5밀리초까지 줄여서 이를 정말로 달성했다고 자랑한 적이 있습니다.

클플 기술력 대단하네요...

최근에 Colin Percival이 SYSINIT의 버블소트-머지소트 변경건으로 화제가 되긴 했는데,
그 기반에 깔린 FreeBSD의 부팅속도 개선과 microVM 과의 상관관계를 같이 설명하고 있는 글이라 옮겨봅니다.

Hocus - GitHub Codespaces의 오픈소스 대체제
Firecracker를 QEMU로 대체한 이유

FreeBSD는 부팅시에 7%의 시간을 SYSINIT들을 버블소트하는데 사용
FreeBSD, SYSINIT의 버블소트를 머지소트로 변경

아 그것과 같은 맥락에 있는 글이군요. 흥미롭네요