Jak rozwija się biznes Docker, aby obsługiwać miliony programistów, część 2: Dane wyjściowe

Jak rozwija się biznes Docker, aby obsługiwać miliony programistów, część 2: Dane wyjściowe

To jest drugi artykuł z serii artykułów, w którym zostaną omówione ograniczenia dotyczące pobierania obrazów kontenerów.

W pierwszej części Szczegółowo omówiliśmy obrazy przechowywane w Docker Hub, największym rejestrze obrazów kontenerów. Piszemy o tym, aby lepiej zrozumieli Państwo, jak nasze zaktualizowane warunki korzystania wpłyną na zespoły programistyczne korzystające z Docker Hub do zarządzania obrazami kontenerów i potokami CICD.

O ograniczeniach dotyczących częstości pobierania ogłosiliśmy wcześniej w naszych Warunkach korzystania. Dokładniej omówimy ograniczenia dotyczące częstości, które wejdą w życie 1 listopada 2020 roku:

Bezpłatny plan taryfowy, użytkownicy anonimowi: 100 pobrań co 6 godzin
Bezpłatny plan taryfowy, użytkownicy autoryzowani: 200 pobrań co 6 godzin
Plan taryfowy Pro: bez ograniczeń
Plan taryfowy Team: bez ograniczeń

Częstość pobrań ze strony Docker definiowana jest jako liczba żądań manifestów do Docker Hub. Ograniczenia częstotliwości pobierania obrazów zależą od typu konta żądającego obraz, a nie od typu konta właściciela obrazu. Dla użytkowników anonimowych (nieautoryzowanych) częstość pobierania jest powiązana z adresem IP.

N.B. Więcej szczegółów i najlepszych praktyk znajdą Państwo na kursie Docker prowadzonym przez praktyków. Co więcej, mogą Państwo uczestniczyć w nim, kiedy będą mieli ochotę — zarówno czasowo, jak i nastrojowo.

Otrzymujemy pytania od klientów i społeczności dotyczące warstw obrazów kontenerów. Nie uwzględniamy warstw obrazu w ograniczeniach częstotliwości pobierania, ponieważ ograniczamy pobieranie manifestów, a liczba warstw (żądań blobów) w tym momencie nie jest ograniczona. Ta zmiana opiera się na opiniach społeczności, aby uczynić to bardziej przyjaznym dla użytkowników, tak aby użytkownicy nie musieli liczyć warstw w każdym używanym obrazie.

Szczegółowa analiza częstotliwości pobierania obrazów Docker Hub

Poświęciliśmy dużo czasu na analizę pobierania obrazów z Docker Hub, aby zidentyfikować przyczynę ograniczenia prędkości oraz jak należy je wprowadzać. To, co zobaczyliśmy, potwierdziło, że praktycznie wszyscy użytkownicy pobierają obrazy z przewidywalną prędkością dla standardowych procesów roboczych. Istnieje jednak znaczący wpływ niewielkiej liczby anonimowych użytkowników, na przykład około 30% wszystkich pobrań pochodzi tylko od 1% anonimowych użytkowników.

Jak rozwija się biznes Docker, aby obsługiwać miliony programistów, część 2: Dane wyjściowe

Nowe ograniczenia opierają się na tej analizie, więc większość naszych użytkowników nie ucierpi. Ograniczenia te zostały wprowadzone, aby odzwierciedlić typowe użytkowanie przez programistów — naukę Docker, rozwijanie kodu, tworzenie obrazów itp.

Wsparcie dla programistów w lepszym zrozumieniu ograniczeń częstotliwości pobierania

Teraz, gdy zrozumieliśmy wpływ oraz gdzie powinny być granice, musieliśmy określić techniczne warunki działania tych ograniczeń. Ograniczanie pobierania obrazów z rejestru Docker jest dość trudne. Nie znajdziesz API do pobierania w opisie rejestru — po prostu go nie ma. W rzeczywistości pobieranie obrazu jest połączeniem zapytań o manifest i blob w API, a te są wykonywane w różny sposób, w zależności od stanu klienta i żądanego obrazu.

Na przykład, jeśli już masz obraz, Docker Engine wyśle zapytanie o manifest, zrozumie, że ma już wszystkie potrzebne warstwy na podstawie odebranego manifestu, po czym zatrzyma się. Z drugiej strony — jeśli pobierasz obraz, który wspiera kilka architektur, zapytanie o manifest zwróci listę manifestów obrazów dla każdej obsługiwanej architektury. Następnie Docker Engine wyśle kolejne zapytanie o manifest dotyczące konkretnej architektury, na której działa, w odpowiedzi otrzyma listę wszystkich warstw obrazu. Potem będzie żądał każdej brakującej warstwy (blob).

N.B. Szerzej na ten temat można przeczytać na kursie Docker, w którym omówimy wszystkie jego narzędzia: od podstawowych abstrahacji po parametry sieci, niuanse pracy z różnymi systemami operacyjnymi i językami programowania. Poznasz technologię i zrozumiesz, gdzie i jak najlepiej używać Docker.

Okazuje się, że pobieranie obrazu to tak naprawdę jedno lub dwa zapytania do manifestu, a także od zera do nieskończoności — zapytania do warstw (blob). Historycznie Docker śledził częstotliwość pobierania na podstawie warstw, ponieważ jest to najbardziej związane z używaniem pasma. Niemniej jednak, wsłuchaliśmy się w społeczność, że jest to trudniejsze, ponieważ należy śledzić liczbę żądanych warstw, co prowadzi do ignorowania najlepszych praktyk dotyczących pracy z Dockerfile, a także jest mniej intuicyjne dla użytkowników, którzy chcą po prostu pracować z rejestrem, nie wgłębiając się w szczegóły.

Dlatego ograniczamy liczbę zapytań na podstawie zapytań do manifestów. To jest bezpośrednio związane z pobieraniem obrazów, co jest łatwe do zrozumienia dla użytkowników. Jest jednak jeden drobny szczegół — jeśli próbujesz pobrać obraz, który już masz, zapytanie i tak zostanie policzone, nawet jeśli nie będziesz pobierać warstw. W każdym razie mamy nadzieję, że ta metoda ograniczania częstotliwości pobierania będzie zarówno sprawiedliwa, jak i wygodna dla użytkowników.

Czekamy na twoje opinie

Będziemy monitorować ograniczenia i wprowadzać odpowiednie poprawki na podstawie typowych przypadków użycia, aby upewnić się, że ograniczenia pasują do każdego typu użytkowników, a w szczególności postaramy się nigdy nie przeszkadzać programistom w wykonywaniu ich pracy.

Śledź komunikaty w nadchodzących tygodniach, będzie jeszcze jeden artykuł na temat konfiguracji CI i systemów operacyjnych w świetle tych zmian.

Na koniec, w ramach wsparcia społeczności programistów oprogramowania z otwartym kodem źródłowym, do 1 listopada wprowadzimy nowe plany taryfowe dla oprogramowania open source. Aby ubiegać się o nie — należy wypełnić formularz tutaj.

Aby uzyskać więcej informacji o ostatnich zmianach w warunkach świadczenia usług, skontaktuj się z FAQ.

Ci, którzy muszą podnieść limity częstotliwości pobierania obrazów, Docker oferuje nielimitowane pobieranie obrazów jako funkcję planów Pro lub Team. Jak zawsze, czekamy na opinie i pytania tutaj.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster