Solução inovadora

Microsoft lança Hyperlight para virtualização leve em apps Linux e Windows

Microsoft lança Hyperlight para virtualização leve em apps Linux e Windows

A Microsoft acaba de apresentar o Hyperlight, um novo projeto open-source baseado em Rust, projetado para oferecer segurança e eficiência em funções virtualizadas. O Hyperlight é uma solução leve de virtualização que opera tanto em Linux (via KVM) quanto em Windows (via Hyper-V), proporcionando um isolamento robusto para cada requisição de função. Com isso, a Microsoft busca atender a uma ampla gama de cenários, desde serviços em nuvem até dispositivos IoT e aplicações industriais.

Segurança e velocidade: desafios resolvidos

Garantir segurança e rapidez simultaneamente é um dos maiores desafios no universo da computação moderna. Soluções tradicionais de virtualização, como Hyper-V e KVM, embora seguras, costumam apresentar tempos de inicialização elevados e alto consumo de recursos. Antes do Hyperlight, os provedores de infraestrutura precisavam manter máquinas virtuais aquecidas (“warm VMs”) para garantir baixa latência, o que gerava custos elevados e desperdício de recursos.

O Hyperlight resolve esses problemas ao criar micro-VMs em apenas 1 a 2 milissegundos. Embora não tão rápido quanto runtimes como Wasmtime, esta abordagem combina a segurança de VMs com eficiência, tornando prático escalonar funções sob demanda e reduzir ociosidade.

Como funciona o hyperlight?

Diferentemente de hipervisores tradicionais, o Hyperlight adota uma abordagem minimalista. Ele aloca uma fatia linear de memória e designa uma CPU virtual, eliminando etapas como mapeamento de dispositivos virtuais e inicialização de kernels. Os convidados (“VM guests”) do Hyperlight combinam um kernel especializado e um runtime de aplicação em um programa único, garantindo desempenho otimizado.

Essa arquitetura permite que aplicações executem códigos fornecidos por usuários com segurança, protegendo o host e possibilitando customizações serverless. O Hyperlight suporta componentes WebAssembly e funções autônomas em linguagens como Rust e C, ampliando seu alcance.

Exemplo de uso no rust?

No Rust, o Hyperlight oferece bibliotecas dedicadas para configurar e gerenciar sandboxes. Um exemplo básico é criar uma sandbox com a função “PrintOutput”, que imprime uma mensagem:

use std::thread;
use std::time::Duration;
use hyperlight_host::{MultiUseSandbox, UninitializedSandbox};

fn main() -> hyperlight_host::Result<()> {
    let guest = hyperlight_testing::simple_guest_as_string().unwrap();
    let mut uninit_sandbox = UninitializedSandbox::new(guest, None, None, None)?;
    let mut sandbox: MultiUseSandbox = uninit_sandbox.evolve(Noop::default())?;

    let result = sandbox.call_guest_function_by_name(
        "PrintOutput", ReturnType::Int,
        Some(vec![ParameterValue::String("Hello from VM guest".to_string())])
    );
    assert!(result.is_ok());
    Ok(())
}

Este exemplo demonstra como configurar um ambiente seguro e executar códigos isolados, com flexibilidade e rapidez.

Adotando o Hyperlight na computação cloud-native

A Microsoft planeja submeter o Hyperlight à Cloud Native Computing Foundation (CNCF) como um projeto sandbox. Esta colaboração visa promover o desenvolvimento do Hyperlight na comunidade open-source, integrando-o à paisagem cloud-native e habilitando novas possibilidades em aplicações de ponta e nuvem.

Participe do projeto

O Hyperlight é licenciado sob a Apache 2.0, reforçando o compromisso da Microsoft com inovação colaborativa. Desenvolvedores e profissionais de TI podem explorar o repositório no GitHub, contribuir para o código e propor melhorias. Descubra como o Hyperlight pode transformar suas aplicações e experimente agora!