Nanos – Um Unikernel
Benefícios Percebidos e Casos de Uso
- O Nanos é visto como uma boa opção para:
- Cargas de trabalho em nuvem de alto desempenho e baixa variância, e HPC.
- Pedagogia, pesquisa em OS/sistemas/arquitetura de CPU.
- Sistemas embarcados que precisam de um modelo de processo semelhante ao Linux.
- Principais vantagens citadas:
- Imagem de SO muito pequena e de propósito único, com superfície de ataque reduzida.
- Maior throughput (benchmarks mostram ~1,6x em relação ao Linux para conteúdo estático).
- Modelo mental: “sua app + kernel mínimo + hypervisor”, nada mais.
Arquitetura, Bare Metal e Sistemas de Arquivos
- O Nanos foi explicitamente projetado para rodar como uma VM sobre um hypervisor, não em bare metal arbitrário.
- Ele mira ambientes paravirtualizados (por exemplo, dispositivos KVM), evitando drivers para hardware diverso.
- Ele tem sistemas de arquivos; o que falta é um userland multiusuário interativo.
Depuração, Logging e Preocupações Operacionais
- Vários comentadores têm dificuldade com a ausência de shell e de ferramentas tradicionais dentro da imagem.
- O logging normalmente é exportado via syslog ou logging em nuvem (por exemplo, CloudWatch), de forma semelhante às práticas do Kubernetes.
- Alguns temem um ambiente “anêmico” quando algo dá errado; outros argumentam que logs remotos + depuradores conectáveis são suficientes.
- A documentação é elogiada pelo nível de detalhe sobre o Nanos em si, mas criticada por orientação superficial sobre administração, implantação e testes.
Implantação, Orquestração e Integração com a Nuvem
- O CLI
opspode construir imagens e iniciar VMs na AWS; há um provider para Terraform e exemplos. - A estratégia é confiar em primitivas da nuvem (ELB, ASGs, serviços de armazenamento) em vez de replicar a orquestração estilo Kubernetes.
opsnão é um sistema de orquestração; Terraform ou ferramentas da nuvem são sugeridos para implantações maiores.- Há confusão sobre configuração em tempo de execução (por exemplo, variáveis de ambiente) versus incorporar a configuração nas imagens.
Comparação com Containers, Alpine e Kubernetes
- Muitos observam que Alpine + containers “venceu” por causa da maturidade do ecossistema, familiaridade e orquestração (Kubernetes).
- Containers são vistos como “bons o suficiente” para isolamento e desempenho, mais fáceis de depurar (shell, instalação de pacotes).
- Alguns argumentam que unikernels removem um SO multiusuário completo e recursos desnecessários do kernel; outros veem perda de conveniência e de transferência de habilidades.
Discussão de Segurança
- Defensores enfatizam que VMs fornecem uma fronteira de isolamento forte; containers não, como mostram recorrentes quebras de isolamento em containers.
- Rodar unikernels sob Kubernetes é dito reduzir os benefícios de segurança porque as camadas Linux/container reaparecem.
- A instalação via
curl | she checksums MD5 é criticada como irresponsável; críticos pedem builds assinados, reprodutíveis e verificação por múltiplas partes. Representantes do projeto apontam opções alternativas de download, mas as preocupações permanecem.
Linguagem, Pesquisa e Verificação
- É expressado o desejo por um unikernel baseado em Rust; outros defendem C pela estabilidade e simplicidade quando escrito com cuidado.
- O Nanos é agnóstico em relação à linguagem e, segundo relatos, é usado com apps em Rust.
- Ecossistema mais amplo de unikernels: menções ao MirageOS e aos seus componentes parcialmente derivados formalmente.
- Alguns veem a pesquisa em SOs como tendo desacelerado, mas ainda enxergam grandes problemas em distribuição, segurança e em repensar a “pilha sob a nuvem”.
Ecossistema e Ferramentas
- Três componentes principais geram confusão:
- nanos.org: o kernel/tecnologia.
- nanovms.com: a empresa/produtos.
- ops.city: pacotes e o CLI
ops.
- O modelo de empacotamento é comparado ao Docker: pacotes base (por exemplo, nginx) são estendidos via configuração (arquivos/diretórios/mapeamentos); usuários já estão publicando seus próprios pacotes.
- A estratégia de espaço comunitário é debatida (sem chat oficial vs. desejo por um ambiente central, pesquisável e que respeite a privacidade).