Jak firma Docker skaluje się, aby służyć milionom programistów, część 2: Dane wychodzące

Jak firma Docker skaluje się, aby służyć milionom programistów, część 2: Dane wychodzące

To jest drugi artykuł z serii artykułów, które omówią ograniczenia podczas pobierania obrazów kontenerów.

В część pierwsza przyjrzeliśmy się bliżej obrazom przechowywanym w Docker Hub, największym rejestrze obrazów kontenerów. Piszemy to, aby pomóc Ci lepiej zrozumieć, w jaki sposób nasze zaktualizowane Warunki korzystania z usługi wpłyną na zespoły programistów korzystające z Docker Hub do zarządzania obrazami kontenerów i potokami CICD.

Limity częstotliwości pobierania zostały wcześniej ogłoszone w naszym Warunki usługi. Przyglądamy się bliżej ograniczeniom częstotliwości, które wejdą w życie 1 listopada 2020 r.:

Darmowy abonament, anonimowi użytkownicy: 100 pobrań w ciągu 6 godzin
Darmowy abonament, autoryzowani użytkownicy: 200 pobrań w ciągu 6 godzin
Plan Pro: bez ograniczeń
Plan zespołu: nieograniczony

Częstotliwość pobierania Dockera jest zdefiniowana jako liczba żądań manifestu do Docker Hub. Limity częstotliwości pobierania obrazu zależą od typu konta żądającego obrazu, a nie typu konta właściciela obrazu. W przypadku anonimowych (nieautoryzowanych) użytkowników częstotliwość pobierania jest powiązana z adresem IP.

NB Otrzymasz więcej subtelności i przykładów najlepszych praktyk na kursie Docker od praktyków. Co więcej, możesz przejść przez to, kiedy jest to dla ciebie wygodne - zarówno w czasie, jak iw nastroju.

Otrzymujemy pytania od klientów i społeczności dotyczące warstw obrazu kontenera. Podczas ograniczania częstotliwości pobierania nie uwzględniamy warstw obrazu, ponieważ ograniczamy pobieranie manifestów, a liczba warstw (żądań obiektów blob) jest obecnie nieograniczona. Ta zmiana jest oparta na opiniach społeczności, aby uczynić ją bardziej przyjazną dla użytkownika, dzięki czemu użytkownicy nie muszą liczyć warstw na każdym wyglądzie, którego używają.

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

Spędziliśmy dużo czasu analizując pobieranie obrazów z Docker Hub, aby ustalić przyczynę ograniczenia prędkości, a także dokładnie to, jak je ograniczyć. To, co zobaczyliśmy, potwierdziło, że praktycznie wszyscy użytkownicy pobierają obrazy z przewidywalną szybkością dla typowych przepływów pracy. Zauważalny jest jednak wpływ niewielkiej liczby anonimowych użytkowników, na przykład około 30% wszystkich pobrań pochodzi od zaledwie 1% anonimowych użytkowników.

Jak firma Docker skaluje się, aby służyć milionom programistów, część 2: Dane wychodzące

Nowe limity są oparte na tej analizie, więc nie będzie to miało wpływu na większość naszych użytkowników. Te ograniczenia mają na celu odzwierciedlenie normalnego użytkowania przez programistów — naukę platformy Docker, opracowywanie kodu, tworzenie obrazów i tak dalej.

Pomaganie programistom w lepszym zrozumieniu limitów częstotliwości pobierania

Teraz, gdy zrozumieliśmy wpływ, a także, gdzie powinny znajdować się granice, musieliśmy określić techniczne warunki działania tych ograniczeń. Ograniczenie pobierania obrazów z rejestru Dockera jest dość trudne. W opisie rejestru nie znajdziesz interfejsu API do pobierania - po prostu nie istnieje.W rzeczywistości pobieranie obrazu jest kombinacją żądań manifestu i obiektów blob w interfejsie API i są one wykonywane w różny sposób, w zależności od stanu klienta i żądanego obrazu.

Na przykład, jeśli masz już obraz, Docker Engine wyśle ​​żądanie manifestu, zrozumie, że ma już wszystkie niezbędne warstwy na podstawie zaakceptowanego manifestu, a następnie zatrzyma się. Z drugiej strony, jeśli pobierasz obraz obsługujący wiele architektur, żądanie manifestu zwróci listę manifestów obrazów dla każdej obsługiwanej architektury. Następnie Docker Engine wyśle ​​kolejne żądanie manifestu dla konkretnej architektury, na której działa, w zamian otrzyma listę wszystkich warstw obrazu. Następnie wyśle ​​zapytanie o każdą brakującą warstwę (blob).

NB Ten temat jest szerzej omówiony w Kurs Dockera, w którym przeanalizujemy wszystkie jego narzędzia: od podstawowych abstrakcji po parametry sieciowe, niuanse pracy z różnymi systemami operacyjnymi i językami programowania. Zapoznasz się z technologią i zrozumiesz, gdzie i jak najlepiej wykorzystać Dockera.

Okazuje się, że pobranie obrazu to tak naprawdę jedno lub dwa żądania manifestu, a także od zera do nieskończoności – żądania warstw (blob). W przeszłości Docker śledził częstotliwość pobierania warstwa po warstwie, ponieważ jest to najbardziej związane z wykorzystaniem przepustowości. Niemniej jednak posłuchaliśmy społeczności, co jest trudniejsze, ponieważ trzeba śledzić żądaną liczbę warstw, co doprowadzi do ignorowania najlepszych praktyk dotyczących pracy z plikiem Dockerfile, a także bardziej intuicyjne dla użytkowników, którzy chcą po prostu pracować z rejestrem bez większego zrozumienia szczegółów.

Dlatego ograniczamy liczbę żądań na podstawie żądań manifestu. Jest to bezpośrednio związane z pobieraniem obrazów, co jest łatwe do zrozumienia dla użytkowników. Jest naprawdę mały niuans - jeśli spróbujesz pobrać obraz, który już istnieje, prośba zostanie wzięta pod uwagę, nawet jeśli nie pobierzesz warstw. W każdym razie mamy nadzieję, że ta metoda ograniczania częstotliwości pobierania będzie zarówno uczciwa, jak i przyjazna dla użytkownika.

Czekamy na Twoją opinię

Będziemy monitorować ograniczenia i wprowadzać odpowiednie korekty w oparciu o typowe przypadki użycia, aby upewnić się, że ograniczenia są odpowiednie dla każdego typu użytkownika, aw szczególności postaramy się nigdy nie przeszkadzać programistom w wykonywaniu ich pracy.

W nadchodzących tygodniach czekajcie na kolejny artykuł na temat ulepszania CI i systemów walki w świetle tych zmian.

Wreszcie, w ramach naszego wsparcia dla społeczności open source, będziemy dostarczać nowe plany cenowe dla open source do 1 listopada. Aby się zgłosić, wypełnij formularz tutaj.

Aby uzyskać więcej informacji o najnowszych zmianach warunków korzystania z usługi, odwiedź stronę FAQ .

Dla tych, którzy muszą zwiększyć limity częstotliwości pobierania obrazów, Docker oferuje nieograniczoną liczbę pobrań obrazów jako funkcję. Plany Pro lub Team. Jak zawsze czekamy na opinie i pytania. tutaj.

Źródło: www.habr.com

Dodaj komentarz