Hyperlight WASM: rápido, seguro e sem SO
(opensource.microsoft.com)- Hyperlight Wasm é a mais recente expansão da tecnologia máquina virtual (VM) ultraleve Hyperlight, doada pela Microsoft à CNCF, e executa workloads WebAssembly (baseados no Component Model) de forma rápida e segura
- Diferente de VMs tradicionais, sem SO nem dispositivos virtuais, expõe apenas fatias de memória e CPU, oferecendo tempo de inicialização rápido de 1 a 2 ms
- Componentes wasm escritos em várias linguagens (C, Rust, Go, Python, JS etc.) podem ser executados sob proteção do hipervisor
Principais características do Hyperlight Wasm
-
Desempenho mais rápido que VMs tradicionais
- VM tradicional: inicialização de dispositivos → carregamento do kernel → boot do SO → execução da aplicação (cerca de 125 ms)
- Hyperlight Wasm: pode executar apenas com a criação de uma fatia de memória + carregamento do Wasm (1 a 2 ms, com meta futura de <1 ms)
- A alta velocidade de execução favorece execução serverless sob demanda ou configurações com warm pool mínimo
-
Execução de várias linguagens mesmo sem sistema operacional
- Com base no padrão WASI e no WebAssembly Component Model, pode executar componentes escritos na maioria das linguagens
- Inclui o runtime wasmtime, permitindo que linguagens interpretadas como Python, JavaScript e C# também sejam executadas junto com o runtime
- Do ponto de vista do desenvolvedor, basta compilar para o alvo
wasm32-wasip2para executar no Hyperlight
-
Segurança aprimorada (sandbox duplo)
- Estrutura de proteção dupla com sandbox de Wasm + sandbox de VM baseado em hipervisor
- Mesmo que um invasor escape do wasm, ainda precisará contornar o sandbox da VM
Exemplo de desenvolvimento: execução de um servidor UDP Echo baseado em Rust
- Download e compilação do binário wasm com a CLI
wkg - Conversão do arquivo de definição de interface WASI (
.wit) em binário para gerar bindings - Com
hyperlight_component_macroehost_bindgen!, geração automática de bindings para interfaces de import/export do Wasm - Definição da lógica do servidor echo por meio da implementação da interface UdpSocket
- Criação do sandbox
hyperlight-wasmpara carregar e executar o componente wasm -
Compilação Ahead-of-Time
- Uso da ferramenta
hyperlight-wasm-aotpara compilar wasm em AOT e reduzir o tempo de execução - É possível iniciar o servidor com
cargo rune testar UDP com o comandonc -u
- Uso da ferramenta
Escalabilidade e planos futuros
- O Hyperlight Wasm deverá oferecer suporte não só a x86, mas também à arquitetura Arm64
- Atualmente é preciso implementar a interface WASI diretamente, mas no futuro bindings padrão deverão ser fornecidos
- O plano é permitir o sandboxing rápido de serviços simples, como servidores HTTP
Como participar da comunidade open source
- Hyperlight é um projeto open source da Microsoft publicado sob a licença Apache 2.0 e registrado no CNCF Sandbox
- Hyperlight Wasm tem como objetivo oferecer um ambiente de execução rápido e seguro, adequado para computação cloud-native
- É possível conferir o código e contribuir por meio do repositório no GitHub
👉 Repositório no GitHub: hyperlight-wasm
2 comentários
Hyperlight WASM: rápido, seguro e sem OS - Gerenciador de Máquina Virtual Leve (VMM) | GeekNews
Comentários do Hacker News
Há alguns meses comecei a usar WebAssembly para valer para criar uma biblioteca de autenticação de backend que funciona em várias linguagens
Há alguns meses anunciaram o Hyperlight, um VMM leve
Muito empolgante
Parece interessante
Muito legal
wasmtime?Todos esses projetos legais e interessantes me fazem pensar que o WASM está tendo sucesso em todo lugar, menos no navegador
Alguém tem alguma ideia de como eu poderia encaixar isso em um setup de Proxmox?
Como as instâncias são iniciadas e gerenciadas?
Basicamente existe uma VM (
wasm) para isolar programas em uma VM de hardware, que é uma abstração para isolar programas em um processo de espaço de usuário (processo Linux)É um unikernel/library OS?