Como o negócio Docker escala para atender milhões de desenvolvedores, parte 2: Dados de saída

Como o negócio Docker escala para atender milhões de desenvolvedores, parte 2: Dados de saída

Este é o segundo artigo de uma série de artigos, onde serão discutidas as limitações ao baixar imagens de contêineres.

Em primeira parte Analisamos detalhadamente as imagens armazenadas no Docker Hub, o maior registro de imagens de contêineres. Estamos escrevendo sobre isso para que você compreenda melhor como nossos Termos de serviço atualizados afetarão as equipes de desenvolvimento que usam o Docker Hub para gerenciar imagens de contêineres e pipelines CICD.

As limitações de taxa de download foram anunciadas anteriormente em nossos Termos de serviço. Vamos explorar em detalhes as limitações de taxa que entrarão em vigor a partir de 1º de novembro de 2020:

Plano gratuito, usuários anônimos: 100 downloads a cada 6 horas
Plano gratuito, usuários autenticados: 200 downloads a cada 6 horas
Plano Pro: sem limitações
Plano Team: sem limitações

A taxa de downloads do Docker é definida como o número de solicitações de manifestos ao Docker Hub. As limitações de taxa para download de imagens dependem do tipo de conta que solicita a imagem, não do tipo de conta do proprietário da imagem. Para usuários anônimos (não autenticados), a taxa de download está vinculada ao endereço IP.

N.B. Mais detalhes e boas práticas você encontrará no curso de Docker dos praticantes. Além disso, você pode fazê-lo quando for conveniente para você, tanto em termos de tempo quanto de disposição.

Recebemos perguntas de clientes e da comunidade sobre os camadas das imagens de contêineres. Não levamos em consideração as camadas da imagem ao limitar a taxa de download, pois restringimos o download de manifestos e o número de camadas (solicitações blob) atualmente não estão limitadas. Essa mudança é baseada no feedback da comunidade, buscando torná-la mais amigável para os usuários, para que não precisem contar as camadas em cada imagem que utilizam.

Uma análise detalhada das taxas de download das imagens do Docker Hub

Passamos muito tempo analisando o download de imagens do Docker Hub para determinar a causa da limitação de velocidade, além de como essa limitação deve ser feita. O que vimos confirmou que, na verdade, todos os usuários baixam imagens a uma velocidade previsível para fluxos de trabalho padrão. No entanto, há um impacto notável de um pequeno número de usuários anônimos, com cerca de 30% de todos os downloads provenientes de apenas 1% de usuários anônimos.

Como o negócio Docker escala para atender milhões de desenvolvedores, parte 2: Dados de saída

As novas limitações são baseadas nessa análise, de modo que a maioria dos nossos usuários não será afetada. Essas limitações foram projetadas para refletir o uso típico por desenvolvedores — aprendizado de Docker, desenvolvimento de código, criação de imagens, etc.

Apoio aos desenvolvedores para uma melhor compreensão da limitação de taxa de downloads

Agora que entendemos o impacto e onde devem estar os limites, precisamos definir as condições técnicas de operação dessas limitações. Limitar o download de imagens do registro do Docker é bastante complicado. Você não encontrará uma API para uploads na descrição do registro — ela simplesmente não existe. O download de uma imagem é, na verdade, uma combinação de solicitações de manifestos e blobs na API, executadas de maneira diferente, dependendo do estado do cliente e da imagem solicitada.

Por exemplo, se você já possui uma imagem, o Docker Engine fará uma solicitação de manifesto, entenderá que já possui todas as camadas necessárias com base no manifesto recebido e, em seguida, parará. Por outro lado, se você estiver baixando uma imagem que suporta várias arquiteturas, a solicitação de manifesto retornará uma lista de manifestos de imagens para cada arquitetura suportada. Então, o Docker Engine fará outra solicitação de manifesto para a arquitetura específica em que está operando e, em resposta, receberá a lista de todas as camadas da imagem. Em seguida, ele solicitará cada camada (blob) que estiver faltando.

N.B. Este tema é abordado de forma mais ampla em um curso de Docker, onde cobriremos todas as suas ferramentas: desde as abstrações básicas até parâmetros de rede, nuances de trabalho com diferentes sistemas operacionais e linguagens de programação. Você se familiarizará com a tecnologia e entenderá onde e como usar melhor o Docker.

Portanto, o download de uma imagem é na verdade um ou dois pedidos de manifesto, além de um número que varia de zero até o infinito - pedidos de camadas (blob). Historicamente, o Docker monitorava a frequência de downloads com base nas camadas, uma vez que isso está mais relacionado ao uso da largura de banda. No entanto, ouvimos a comunidade, pois isso torna mais difícil, já que é necessário monitorar a quantidade de camadas requisitadas, o que levará à ignorância das melhores práticas relacionadas ao Dockerfile e será menos intuitivo para os usuários que desejam apenas interagir com o registro, sem se aprofundar nos detalhes.

Assim, limitamos o número de pedidos com base nas solicitações de manifestos. Isso está diretamente relacionado ao download de imagens, o que é fácil de entender para os usuários. Há, de fato, uma pequena nuance - se você tentar baixar uma imagem que já possui, o pedido ainda será contabilizado, mesmo que você não baixe as camadas. De qualquer forma, esperamos que esse método de limitação de frequência de downloads seja justo e conveniente para os usuários.

Aguardamos seu feedback

Estaremos monitorando as restrições e fazendo as devidas correções com base em casos de uso típicos, para garantir que as limitações sejam adequadas a cada tipo de usuário, além disso, nos esforçaremos para nunca dificultar o trabalho dos desenvolvedores.

Fique atento às mensagens nas próximas semanas, haverá outro artigo sobre configuração de CI e sistemas de produção à luz dessas mudanças.

Finalmente, como parte do apoio à comunidade de desenvolvedores de código aberto, até 1º de novembro, forneceremos novos planos para projetos de código aberto. Para se inscrever, você deve preencher um formulário aqui.

Para mais informações sobre as últimas mudanças nos termos de serviço, entre em contato com FAQ.

Aqueles que precisam aumentar as limitações na frequência de downloads de imagens, o Docker oferece downloads ilimitados de imagens como um recurso dos planos Pro ou Team. Como sempre, aguardamos seu feedback e perguntas aqui.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster