Comment l'entreprise Docker s'adapte pour servir des millions de développeurs, partie 2 : données sortantes

Comment l'entreprise Docker s'adapte pour servir des millions de développeurs, partie 2 : données sortantes

Il s'agit du deuxième article d'une série d'articles qui couvrira les limitations lors du téléchargement d'images de conteneurs.

В la première partie nous avons examiné de plus près les images stockées dans Docker Hub, le plus grand registre d'images de conteneurs. Nous écrivons ceci pour vous aider à mieux comprendre l'impact de nos conditions d'utilisation mises à jour sur les équipes de développement qui utilisent Docker Hub pour gérer les images de conteneurs et les pipelines CICD.

Les limites de fréquence de téléchargement ont été précédemment annoncées dans notre Conditions d'utilisation. Nous examinons de plus près les limites de fréquence qui entreront en vigueur le 1er novembre 2020 :

Plan gratuit, utilisateurs anonymes : 100 téléchargements en 6 heures
Forfait gratuit, utilisateurs autorisés : 200 téléchargements en 6 heures
Forfait Pro : illimité
Forfait équipe : illimité

La fréquence de téléchargement de Docker est définie comme le nombre de demandes de manifeste adressées à Docker Hub. Les limites de fréquence de téléchargement des images dépendent du type de compte demandant l'image, et non du type de compte du propriétaire de l'image. Pour les utilisateurs anonymes (non autorisés), la fréquence de téléchargement est liée à l'adresse IP.

NB Vous recevrez plus de subtilités et de cas de bonnes pratiques sur le cours Docker des praticiens. De plus, vous pouvez le parcourir quand cela vous convient - à la fois dans le temps et dans l'humeur.

Nous recevons des questions de clients et de la communauté concernant les couches d'images de conteneurs. Nous ne prenons pas en compte les couches d'images lorsque nous limitons la fréquence de téléchargement, car nous limitons les téléchargements de manifestes et le nombre de couches (requêtes blob) est actuellement illimité. Ce changement est basé sur les commentaires de la communauté pour le rendre plus convivial afin que les utilisateurs n'aient pas à compter les calques sur chaque look qu'ils utilisent.

Analyse détaillée des fréquences de téléchargement d'images Docker Hub

Nous avons passé beaucoup de temps à analyser le téléchargement d'images depuis Docker Hub pour déterminer la raison de la limite de vitesse, ainsi que la manière exacte de la limiter. Ce que nous avons vu a confirmé que pratiquement tous les utilisateurs téléchargent des images à un rythme prévisible pour les flux de travail typiques. Cependant, il y a une influence notable d'un petit nombre d'utilisateurs anonymes, par exemple, environ 30 % de tous les téléchargements proviennent de seulement 1 % des utilisateurs anonymes.

Comment l'entreprise Docker s'adapte pour servir des millions de développeurs, partie 2 : données sortantes

Les nouvelles limites sont basées sur cette analyse, de sorte que la plupart de nos utilisateurs ne seront pas affectés. Ces limites sont conçues pour refléter l'utilisation normale par les développeurs - apprentissage de Docker, développement de code, création d'images, etc.

Aider les développeurs à mieux comprendre les limites de fréquence de téléchargement

Maintenant que nous avons compris l'impact, et aussi où devaient se situer les limites, nous devions déterminer les conditions techniques de fonctionnement de ces restrictions. Restreindre le téléchargement d'images à partir du registre Docker est assez difficile. Vous ne trouverez pas d'API pour les téléchargements dans la description du registre - elle n'existe tout simplement pas. En fait, le téléchargement d'une image est une combinaison de demandes de manifeste et de blobs dans l'API, et ils sont exécutés différemment, selon l'état de le client et l'image demandée.

Par exemple, si vous avez déjà une image, Docker Engine émettra une demande de manifeste, comprendra qu'il possède déjà toutes les couches nécessaires en fonction du manifeste accepté, puis s'arrêtera. D'autre part, si vous téléchargez une image qui prend en charge plusieurs architectures, une demande de manifeste renverra une liste de manifestes d'image pour chaque architecture prise en charge. Le moteur Docker émettra alors une autre demande de manifeste pour l'architecture particulière sur laquelle il s'exécute, en retour, il obtiendra une liste de toutes les couches de l'image. Il interrogera ensuite chaque couche manquante (blob).

NB Ce sujet est traité plus largement dans Cours Docker, dans lequel nous analyserons tous ses outils: des abstractions de base aux paramètres de réseau, les nuances du travail avec divers systèmes d'exploitation et langages de programmation. Vous vous familiariserez avec la technologie et comprendrez où et comment utiliser au mieux Docker.

Il s'avère que le téléchargement d'une image est en fait une ou deux demandes manifestes, ainsi que de zéro à l'infini - demandes de calques (blob). Historiquement, Docker a suivi la fréquence de téléchargement couche par couche, car cela est principalement lié à l'utilisation de la bande passante. Mais néanmoins, nous avons écouté la communauté, ce qui est plus difficile, car il faut garder une trace du nombre de couches demandé, ce qui conduira à ignorer les meilleures pratiques concernant le travail avec le Dockerfile, et aussi plus intuitif pour les utilisateurs qui veulent juste travailler avec le registre sans trop comprendre les détails.

Nous limitons donc le nombre de requêtes en fonction des requêtes manifestes. Ceci est directement lié au téléchargement d'images, ce qui est facile à comprendre pour les utilisateurs. Il y a vraiment une petite nuance - si vous essayez de télécharger une image qui existe déjà, la demande sera toujours prise en compte, même si vous ne téléchargez pas les calques. Dans tous les cas, nous espérons que cette méthode de limitation de la fréquence des téléchargements sera à la fois juste et conviviale.

Dans l'attente de vos commentaires

Nous surveillerons les restrictions et apporterons des ajustements en conséquence en fonction des cas d'utilisation courants pour nous assurer que les restrictions sont appropriées pour chaque type d'utilisateur, et en particulier, nous essaierons de ne jamais empêcher les développeurs de faire leur travail.

Restez à l'écoute dans les semaines à venir pour un autre article sur l'amélioration des systèmes d'IC ​​et de combat à la lumière de ces changements.

Enfin, dans le cadre de notre soutien à la communauté open source, nous proposerons de nouveaux plans tarifaires pour l'open source jusqu'au 1er novembre. Pour postuler, merci de remplir le formulaire ici.

Pour plus d'informations sur les dernières modifications apportées aux conditions d'utilisation, veuillez visiter QFP.

Pour ceux qui ont besoin d'augmenter leurs limites de fréquence de téléchargement d'images, Docker propose des téléchargements d'images illimités en tant que fonctionnalité. Forfaits Pro ou Team. Comme toujours, nous apprécions les commentaires et les questions. ici.

Source: habr.com

Ajouter un commentaire