- MicroVM tem sido uma área em alta em P&D de tecnologia nos últimos 5 anos
- A ideia central é recriar alguns conceitos e tecnologias que a IBM inventou junto com o hipervisor nos anos 1960
- Projetar o sistema operacional especificamente para ser executado como guest em outro SO
- Fazer com que ele rode dentro de uma VM, mas se comunique com os recursos (VirtIO) fornecidos por um hipervisor específico, em vez de hardware emulado
- O objetivo comercial é oferecer desempenho de computação "serverless"
- O AWS Lambda é movido por Firecracker
- O Firecracker é baseado no hipervisor KVM embutido no kernel Linux (a AWS tradicionalmente usava o hipervisor Xen)
- Linux-on-Linux
- Enquanto o FreeBSD inicializa em 25 ms nesse mesmo ambiente, o Linux leva de 75 a 80 ms
- Quando o desenvolvedor do kernel do FreeBSD Colin Percival começou a trabalhar na melhoria da velocidade de boot, eram 10 segundos; agora ficou 400 vezes mais rápido
- No momento, a otimização está feita para x86-64, mas o trabalho em Arm64 também está em andamento
- O Firecracker é atualmente uma das microVMs mais conhecidas, mas existem outros produtos também
- O QEMU adicionou a plataforma virtual microvm, e o serviço de ambiente de desenvolvimento online Hocus migrou de Firecracker para QEMU
- Isso pode ter uso não só na nuvem, mas também em outros cenários
- Executar um único programa criado para um SO sobre outro SO completamente diferente pode ser útil em várias situações
5 comentários
Qual é, na prática, a diferença entre 80 milissegundos e 20 milissegundos do ponto de vista do serviço como um todo? Da experiência de quem presta o serviço? Fico com a sensação vaga de que 80 milissegundos já não seria suficiente? Embora 10 segundos realmente fosse demais.
Dizem que, se for possível reduzir o tempo de cold start para menos do que o tempo necessário para o handshake TLS com o cliente, não seriam necessárias medidas como aquecimento prévio nem haveria a percepção inicial de lentidão para alguns usuários causada por cold starts lentos.
A Cloudflare já se gabou de realmente ter alcançado isso ao reduzir o tempo de carregamento do serviço Workers para incríveis 5 milissegundos.
A capacidade técnica da Cloudflare é impressionante...
Recentemente, Colin Percival virou assunto por causa da mudança do SYSINIT de bubble sort para merge sort,
então estou trazendo este texto porque ele também explica a relação entre a melhoria na velocidade de boot do FreeBSD que está por trás disso e as microVMs.
Hocus - alternativa open source ao GitHub Codespaces
Por que o Firecracker substituiu o QEMU
O FreeBSD usa 7% do tempo de boot para ordenar os SYSINITs com bubble sort
FreeBSD altera o bubble sort do SYSINIT para merge sort
Ah, então é um texto na mesma linha daquilo. Interessante.