Hoe de Docker-business schaalt om miljoenen ontwikkelaars te bedienen, deel 2: uitgaande gegevens

Hoe de Docker-business schaalt om miljoenen ontwikkelaars te bedienen, deel 2: uitgaande gegevens

Dit is het tweede artikel in een reeks artikelen over de beperkingen bij het downloaden van container-images.

Π’ het eerste deel we hebben de afbeeldingen die zijn opgeslagen in Docker Hub, het grootste register van containerafbeeldingen, onder de loep genomen. We schrijven dit om u een beter inzicht te geven in de manier waarop onze bijgewerkte Servicevoorwaarden van invloed zijn op ontwikkelingsteams die Docker Hub gebruiken om containerimages en CICD-pijplijnen te beheren.

Downloadfrequentielimieten werden eerder aangekondigd in onze Servicevoorwaarden. We gaan dieper in op de frequentielimieten die op 1 november 2020 van kracht worden:

Gratis abonnement, anonieme gebruikers: 100 downloads in 6 uur
Gratis abonnement, geautoriseerde gebruikers: 200 downloads in 6 uur
Pro-abonnement: onbeperkt
Teamplan: onbeperkt

Docker-downloadfrequentie wordt gedefinieerd als het aantal manifestverzoeken aan Docker Hub. De frequentielimieten voor het downloaden van afbeeldingen zijn afhankelijk van het type account dat de afbeelding aanvraagt, niet van het type account van de eigenaar van de afbeelding. Voor anonieme (ongeautoriseerde) gebruikers is de downloadfrequentie gekoppeld aan het ip-adres.

NB U ontvangt meer subtiliteiten en best practice-cases op de Docker-cursus van beoefenaars. Bovendien kunt u het doorlopen wanneer het u uitkomt - zowel qua tijd als qua stemming.

We krijgen vragen van klanten en de community over afbeeldingslagen voor containers. We houden geen rekening met afbeeldingslagen bij het beperken van de downloadfrequentie, omdat we manifestdownloads beperken en het aantal lagen (blobverzoeken) momenteel onbeperkt is. Deze wijziging is gebaseerd op feedback van de community om het gebruiksvriendelijker te maken, zodat gebruikers niet meer lagen hoeven te tellen voor elke look die ze gebruiken.

Gedetailleerde analyse van downloadfrequenties voor Docker Hub-afbeeldingen

We hebben veel tijd besteed aan het analyseren van het downloaden van afbeeldingen van Docker Hub om de reden voor de snelheidslimiet te bepalen, en om precies te weten hoe deze te beperken. Wat we zagen, bevestigde dat vrijwel alle gebruikers afbeeldingen downloaden met een voorspelbare snelheid voor typische workflows. Er is echter een merkbare invloed van een klein aantal anonieme gebruikers, zo is ongeveer 30% van alle downloads afkomstig van slechts 1% van de anonieme gebruikers.

Hoe de Docker-business schaalt om miljoenen ontwikkelaars te bedienen, deel 2: uitgaande gegevens

De nieuwe limieten zijn gebaseerd op deze analyse, dus de meeste van onze gebruikers zullen er niet door worden getroffen. Deze limieten zijn gemaakt om normaal gebruik door ontwikkelaars weer te geven - Docker leren, code ontwikkelen, afbeeldingen bouwen, enzovoort.

Ontwikkelaars helpen downloadfrequentielimieten beter te begrijpen

Nu we de impact begrepen, en ook waar de grenzen zouden moeten liggen, moesten we de technische voorwaarden bepalen voor de werking van deze beperkingen. Het beperken van het downloaden van afbeeldingen uit het Docker-register is vrij moeilijk. U vindt geen API voor downloads in de registerbeschrijving - deze bestaat gewoon niet. In feite is het downloaden van een afbeelding een combinatie van manifestverzoeken en blobs in de API, en deze worden anders uitgevoerd, afhankelijk van de status van de klant en de gevraagde afbeelding.

Als u bijvoorbeeld al een afbeelding heeft, zal Docker Engine een aanvraag voor een manifest indienen, begrijpen dat het al alle benodigde lagen heeft op basis van het geaccepteerde manifest en dan stoppen. Aan de andere kant, als u een afbeelding downloadt die meerdere architecturen ondersteunt, retourneert een manifestverzoek een lijst met afbeeldingsmanifesten voor elke ondersteunde architectuur. De Docker Engine zal dan een ander manifestverzoek uitgeven voor de specifieke architectuur waarop het draait, in ruil daarvoor krijgt het een lijst met alle lagen in de afbeelding. Vervolgens wordt voor elke ontbrekende laag (blob) een query uitgevoerd.

NB Dit onderwerp komt uitgebreider aan bod in Docker cursus, waarin we al zijn tools zullen analyseren: van basisabstracties tot netwerkparameters, de nuances van het werken met verschillende besturingssystemen en programmeertalen. Je maakt kennis met de techniek en begrijpt waar en hoe je Docker het beste kunt gebruiken.

Het blijkt dat het downloaden van een afbeelding eigenlijk een of twee manifestverzoeken zijn, evenals van nul tot oneindig - verzoeken om lagen (blob). Historisch gezien heeft Docker de downloadfrequentie laag voor laag bijgehouden, omdat dit het meest verband houdt met het bandbreedtegebruik. Maar desalniettemin hebben we naar de community geluisterd, wat moeilijker is, omdat je het gevraagde aantal lagen moet bijhouden, wat zal leiden tot het negeren van best practices met betrekking tot het werken met Dockerfile, en ook intuΓ―tiever voor gebruikers die gewoon willen werken met het register zonder veel kennis van de details.

Daarom beperken we het aantal verzoeken op basis van manifestverzoeken. Dit houdt rechtstreeks verband met het downloaden van afbeeldingen, wat gemakkelijk te begrijpen is voor gebruikers. Er is echt een kleine nuance: als u een afbeelding probeert te downloaden die al bestaat, wordt er nog steeds rekening gehouden met het verzoek, zelfs als u de lagen niet downloadt. We hopen in ieder geval dat deze methode om de downloadfrequentie te beperken zowel eerlijk als gebruiksvriendelijk zal zijn.

Ik kijk ernaar uit om je feedback te ontvangen

We zullen de beperkingen bewaken en passende aanpassingen maken op basis van veelvoorkomende gebruikssituaties om ervoor te zorgen dat de beperkingen geschikt zijn voor elk type gebruiker, en in het bijzonder zullen we proberen ontwikkelaars nooit te weerhouden hun werk te doen.

Blijf de komende weken op de hoogte voor een ander artikel over het aanpassen van CI- en gevechtssystemen in het licht van deze veranderingen.

Ten slotte zullen we, als onderdeel van onze ondersteuning voor de open source-gemeenschap, tot 1 november nieuwe prijsplannen voor open source aanbieden. Vul het formulier in om te solliciteren hier.

Ga voor meer informatie over de laatste wijzigingen in de servicevoorwaarden naar FAQ.

Voor degenen die hun limieten voor het downloaden van afbeeldingen moeten verhogen, biedt Docker onbeperkte downloads van afbeeldingen als een functie. Pro- of Team-abonnementen. Zoals altijd verwelkomen we feedback en vragen. hier.

Bron: www.habr.com

Voeg een reactie