Skip to main content

Proxy-Cache de Container Registry da Magalu Cloud

Este documento oferece uma visão geral sobre a funcionalidade Proxy-Cache do Container Registry da Magalu Cloud, um serviço que permite armazenar localmente imagens de contêiner de um registro remoto para acelerar acessos futuros e economizar largura de banda.

O que é um Proxy-Cache?

O Proxy-Cache do Container Registry da Magalu Cloud é um serviço intermediário que armazena localmente imagens de contêiner de um registro remoto, como o Docker Hub, para acelerar acessos futuros e economizar largura de banda. Ele atua como um "cache pull-through" (cache de extração direta): quando uma imagem é solicitada, o proxy a procura em seu cache local. Se não estiver presente, o proxy a extrai do registro remoto, armazena-a em seu cache e, só então, a entrega ao solicitante. Isso reduz drasticamente o tempo de pull de imagens em ambientes de CI/CD e de nuvem, além de aliviar o tráfego para os repositórios públicos e mitigar limites de taxa.

Como funciona o Proxy-Cache?

  1. Solicitação inicial: Quando um nó Kubernetes ou pipeline de CI/CD precisa de uma imagem, ele envia a solicitação ao proxy cache, não diretamente ao registry de destino.
  2. Cache hit: Se a imagem estiver no cache do proxy, ela é entregue imediatamente ao solicitante.
  3. Cache miss: Se a imagem não estiver no cache, o proxy a busca no registry remoto, a armazena em seu cache local e a envia para o solicitante.
  4. Atualização: Para imagens atualizadas, o proxy verifica o registry de destino, extrai a nova versão, a entrega e a armazena no cache.
  5. Acessibilidade: Mesmo que o registry remoto não esteja acessível, o proxy pode continuar a fornecer a imagem do seu cache.

Benefícios de usar o o Proxy-Cache da Magalu Cloud

  1. Velocidade: Acelera significativamente os tempos de download de imagens, pois as imagens são servidas a partir do cache local.
  2. Redução de custos e tráfego: Diminui a quantidade de dados transferidos da internet, o que pode reduzir custos e a carga nos registros de origem.
  3. Disponibilidade: Garante que os contêineres possam ser extraídos mesmo quando há problemas de conexão com os registries remotos.
  4. Gerenciamento de limites de taxa: Ajuda a evitar que os sistemas atinjam os limites de solicitação impostos pelos registries públicos, como o Docker Hub.

Passo a passo para utilização

  1. Criação do Proxy Cache: Configure um Proxy-Cache que armazene localmente imagens de um registry externo. Os providers válidos são: docker-hub, google-gcr e aws-ecr. Para o provider selecionado, o cliente deve informar a URL correta do registry externo, pois cada provider pode ter múltiplos endpoints ou regiões.
  2. Criação do Registry associado ao Proxy Cache: Com o Proxy Cache criado, configure um novo registry dentro da Magalu Cloud que aponta para ele. Este será o registry que seus sistemas (Kubernetes, Docker, etc.) irão utilizar para puxar as imagens.
  3. Validação o Registry criado: Confirme que o registry foi criado com sucesso listando os registries existentes. Isso garante que ele está pronto para uso.

Oportunidades de uso

  • Equipes e Clusters Grandes: Em empresas com várias equipes de desenvolvimento trabalhando em aplicações em contêineres, a utilização de um proxy cache pode acelerar o processo de pulling de imagens, pois a primeira cópia da imagem é extraída da internet uma única vez e depois distribuída localmente para os restantes nós.
  • Ambientes com Muitos Nós: Um ambiente Kubernetes, por exemplo, pode ter dezenas ou centenas de nós em execução no contêiner. Sem um proxy cache, cada nó puxaria as mesmas imagens repetidamente da internet, aumentando o tráfego e o tempo de execução. Com o cache, o tráfego é reduzido e os tempos de pull são significativamente mais rápidos.
  • Redes com Banda Limitada ou Instáveis: Em locais com conexão de internet lenta, caras ou instáveis, um proxy cache é crucial para otimizar o consumo de banda. O cache armazena imagens que são acedidas com frequência, evitando o acesso repetitivo à internet e melhorando a velocidade e a confiabilidade das operações.
  • Ambientes com Segurança Reforçada: Um proxy cache pode atuar como um ponto único para a gestão de acessos a registos externos, permitindo a aplicação de políticas de segurança mais rigorosas e reduzindo a exposição direta dos sistemas internos à internet.
  • Desenvolvimento e Testes: Para equipes de desenvolvimento e testes que precisam de puxar as mesmas imagens de contêiner várias vezes, um proxy cache pode acelerar os ciclos de desenvolvimento, reduzindo o tempo gasto na obtenção de imagens e permitindo um fluxo de trabalho mais eficiente.