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 ops pode 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.
  • ops nã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 | sh e 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).