15 de junho de 20265 min de leitura

Como o eStargz reduz o startup de containers no OCI (e quando usar)

Adina Nicolescu

Oracle Cloud

Como o eStargz reduz o startup de containers no OCI (e quando usar)

TL;DR: Imagens grandes de container aumentam a latência de startup, especialmente em nós frios ou scale-out. O eStargz, combinado com stargz-snapshotter, permite lazy pulling: o container inicia com apenas os dados essenciais, baixando o resto sob demanda. O artigo apresenta um benchmark simples no OCI para comparar desempenho entre uma imagem regular e uma otimizada com eStargz, ajudando times a decidir se vale a pena adotar a técnica em produção.

À medida que aplicações conteinerizadas crescem, o tempo de pull da imagem pode se tornar um gargalo perceptível na latência de inicialização. Isso é especialmente verdadeiro para imagens que incluem grandes frameworks, ativos de runtime ou arquivos de modelo.

eStargz ajuda a resolver esse problema habilitando lazy pulling. Em vez de baixar todas as camadas da imagem antecipadamente, o runtime pode buscar apenas os dados necessários para iniciar o container e recuperar o restante sob demanda.

Este artigo descreve um benchmark leve baseado em OCI que compara uma imagem de container regular com uma versão otimizada com eStargz da mesma imagem.

Por que o eStargz Lazy Pulling importa?

Para imagens pequenas, o pull regular geralmente é suficiente. Mas para imagens grandes, o tempo de cold pull pode se tornar visível no startup da aplicação, em eventos de scale-out e em cenários de nós frios.

eStargz é útil quando o objetivo é reduzir o time-to-first-run. Com stargz-snapshotter, o containerd pode iniciar containers a partir de imagens eStargz usando carregamento lazy em vez de esperar o download completo da imagem primeiro.

Como podemos usar o eStargz Lazy Pulling no OCI?

Para validar o eStargz lazy pulling no OCI, usamos um benchmark leve. A VM executa containerd com dois caminhos de snapshotter: o snapshotter overlayfs padrão para uma imagem regular e o stargz-snapshotter para uma imagem otimizada com eStargz.

Ambas as imagens são puxadas do OCIR e testadas na mesma VM. Isso mantém a comparação focada no startup do container.

Arquitetura do Benchmark

Diagrama de benchmark

O que o Benchmark Mostra

O benchmark compara o comportamento de startup de duas versões da mesma imagem. A imagem regular segue o caminho tradicional de pull, onde a imagem é baixada antes do startup. A imagem eStargz segue o caminho de lazy-pull, onde o containerd pode buscar apenas os dados necessários para iniciar o container e recuperar o restante sob demanda.

O resultado ajuda a determinar se o eStargz reduz o time-to-first-run para a carga de trabalho testada.

Do Benchmark à Produção

Esta configuração baseada em VM é pensada como um primeiro passo de validação. Ela mantém o teste focado em uma pergunta: uma imagem eStargz pode iniciar mais rápido que a versão regular da mesma imagem, quando ambas são puxadas do OCIR?

Se o benchmark mostrar uma melhoria significativa, o próximo passo é mover o eStargz para mais cedo no ciclo de vida do container, adicionando a criação de imagens eStargz ao pipeline de build e publicando imagens otimizadas no OCIR.

Começar com uma VM isolada evita adicionar complexidade à plataforma antes que haja evidências de que o lazy pulling melhora a carga de trabalho.

Conclusão

eStargz não é necessário para toda carga de trabalho, mas pode ser valioso quando o tamanho da imagem contribui para a latência de startup. Ao testar imagens regulares e eStargz lado a lado no OCI, as equipes podem decidir se o lazy pulling vale a pena para as cargas de trabalho onde o desempenho em frio é importante.

Perguntas Frequentes

  • O que é lazy pulling com eStargz?

    • É uma técnica que permite que o container runtime (containerd) comece a executar um container sem baixar todas as camadas da imagem primeiro. Apenas os blocos necessários para a inicialização são obtidos, e o restante é carregado sob demanda, reduzindo o tempo até o primeiro start.
  • Como testar eStargz no OCI antes de usar em produção?

    • O artigo sugere usar uma VM com containerd e dois snapshotter paths: overlayfs para a imagem regular e stargz-snapshotter para a versão eStargz. Ambas as imagens são puxadas do OCIR na mesma VM, permitindo uma comparação direta do time-to-first-run sem adicionar complexidade de plataforma.
  • Em quais cenários o eStargz realmente faz diferença?

    • Para imagens pequenas, o pull tradicional é suficiente. O eStargz é valioso quando o tamanho da imagem contribui para a latência de startup, como em frameworks grandes, assets de runtime ou modelos de machine learning. Também é útil em nós frios e eventos de scale-out.
  • Qual o próximo passo se o benchmark indicar melhoria?

    • Se a imagem eStargz iniciar mais rápido, a recomendação é mover a criação de imagens eStargz para o pipeline de build e publicar as versões otimizadas no OCIR. O teste em VM isolada evita adicionar complexidade antes de evidências concretas.

Artigo originalmente publicado por Adina Nicolescu em cloud-infrastructure.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset