Udostępnij za pośrednictwem


Konfigurowanie skalowania

Skonfiguruj ustawienia skalowania, aby zarządzać wydajnością i kosztami zarządzanej puli DevOps. Aby uzyskać informacje na temat cen i wydajności, zobacz Zarządzanie kosztami i wydajnością.

Stan agenta

Zarządzane pule DevOps można skonfigurować jako bezstanowe lub stanowe.

  • Pule bezstanowe — udostępniają nowego agenta dla każdego zadania.
  • Pule stanowe — umożliwia udostępnianie agentów między wieloma zadaniami.

Ustawieniem domyślnym dla zarządzanej puli DevOps jest bezstanowy (odświeżony agent za każdym razem), ale w niektórych przypadkach zespoły mogą chcieć ponownie używać agentów w celu ponownego użycia pakietów lub plików utworzonych podczas poprzedniego uruchomienia potoku. Obciążenie kompilacji to typowy scenariusz, w którym zespoły chcą zachować stan i użyć ponownie agentów. Pule stanowe można osiągnąć za pomocą zarządzanych pul DevOps, równoważąc je przy użyciu najlepszych rozwiązań w zakresie zabezpieczeń. Domyślnie agent może być ponownie używany przez maksymalnie 7 dni, ale można go skonfigurować do ponownego recyklingu wcześniej.

Uwaga

Pule bezstanowe lub użycie ustawienia stanu agenta za każdym razem są zalecane przez ekspertów ds. zabezpieczeń jako ochronę przed atakami łańcucha dostaw.

Pule bezstanowe

Po skonfigurowaniu agenta bezstanowego nowy agent jest pozyskiwany dla każdego zadania i jest odrzucany po zakończeniu zadania.

Zrzut ekranu przedstawiający agenta bezstanowego.

Gdy stan agenta jest ustawiany na Nowy agent za każdym razem, nowy agent jest pozyskiwany dla każdego zadania i jest odrzucany po zakończeniu zadania.

Pule stanowe

Zrzut ekranu przedstawiający agenta stanowego.

Gdy "kind": "stateful" zasobów lub { "stateful": {...} } w interfejsie wiersza polecenia platformy Azure), agenci w puli są traktowani jako stanowi. Pule stanowe są konfigurowane przy użyciu następujących ustawień.

  • Maksymalny czas wygaśnięcia dla agentów rezerwowych (maxAgentLifetime) konfiguruje maksymalny czas trwania agenta w puli stanowej, zanim zostanie zamknięty i odrzucony. Format maksymalnego czasu wygaśnięcia dla agentów rezerwowych to dd.hh:mm:ss. Wartość domyślna maksymalna czasu wygaśnięcia dla agentów rezerwowych jest ustawiona na maksymalny dozwolony czas trwania siedmiu dni (7.00:00:00).

  • Okres prolongaty (gracePeriodTimeSpan) konfiguruje czas oczekiwania agenta w puli stanowej na nowe zadania przed zamknięciem po zakończeniu wszystkich bieżących i w kolejce zadań. Format okresu prolongaty to dd.hh:mm:ss i domyślny okres prolongaty nie jest okresem prolongaty.

Podczas gdy agenci w pulach bezstanowych są zamykani i odrzucani po każdym zadaniu, agenci w pulach stanowych nadal działają, jeśli zostaną spełnione jakiekolwiek z poniższych warunków.

  • Jeśli istnieje inne zadanie w kolejce po zakończeniu pierwszego zadania, zarządzane pule DevOps wysyła to zadanie do agenta, który uruchomił pierwsze zadanie, zamiast go zamknąć.
  • Jeśli dla puli skonfigurowano okres prolongaty, agenci czekają na nowe zadania na czas określony przez okres prolongaty przed zamknięciem.
  • Jeśli agenci rezerwowi są włączeni, a obraz agenta spełnia kryteria aktywnego okresu aprowizacji, agent będzie nadal działać i czekać na zadania.

Uruchamianie agentów w pulach stanowych jest zamykane i odrzucane, jeśli są one uruchamiane w sposób ciągły przez czas określony przez maksymalny czas wygaśnięcia dla agentów rezerwowych, nawet jeśli poprzednie warunki są spełnione. Jeśli na przykład maksymalny czas wygaśnięcia dla agentów rezerwowych jest skonfigurowany przez trzy dni, a tryb agenta rezerwowego jest ustawiony na Ręczne, Schemat wszystkich tygodni (maszyny dostępne 24/7), agenci są ponownie uruchamiani po trzech ciągłych dniach pracy.

Ważne

Agenci w pulach stanowych mogą być nadal zamykani i odrzucani po zakończeniu zadania, jeśli nie ma okresu prolongaty, bez aktywnego okresu aprowizacji dla agentów rezerwowych i bez zadań w kolejce pasujących do agenta. Po odrzuceniu agenta każdy stan zostanie utracony.

Okres prolongaty umożliwia najbardziej ekonomiczny sposób uruchamiania pul stanowych dla potoków ze spójnym obciążeniem i nie wymaga korzystania z trybu agenta rezerwowego, aby zapewnić agentom online i gotowym do akceptowania zadań.

Tryb agenta rezerwowego

Podczas tworzenia puli tryb agenta rezerwowego jest domyślnie wyłączony i nie ma agentów rezerwowych do natychmiastowego przypisania do potoków, co może chwilę poczekać do 15 minut, zanim agent zostanie aprowizowany na żądanie. Aby uzyskać lepszą wydajność, włącz tryb agenta rezerwowego i skonfiguruj harmonogram agenta rezerwowego, który zapewnia pojemność dla obciążenia.

Po skonfigurowaniu harmonogramu agenta rezerwowego zarządzane pule DevOps okresowo porównują liczbę aprowizowanych agentów z liczbą agentów rezerwowych określoną przez bieżący schemat aprowizacji i uruchamiają nowych agentów w razie potrzeby, aby utrzymać ustaloną liczbę agentów rezerwowych. Możesz wyświetlić bieżący stan i liczbę agentów w swojej puli, korzystając z okienka Agents.

Ważne

Liczba aprowizacji w schemacie nie może być większa niż maksymalna liczba agentów skonfigurowanych w ustawieniach puli.

Tryb rezerwowego agenta jest skonfigurowany za pomocą następujących ustawień:

  • Wyłączone — tryb agenta rezerwowego jest wyłączony, a agenci są aprowizowani na żądanie, gdy zadania są kolejkowane.
  • Ręczne — konfigurowanie ręcznego harmonogramu wstrzymania.
  • Automatyczne — używaj automatycznego harmonogramu rezerwowego na podstawie historii użycia agenta i można go konfigurować pod kątem kosztów i wydajności.

Zrzut ekranu przedstawiający wybór trybu rezerwowego agenta.

Ręcznie

Tryb ręczny najlepiej nadaje się dla zespołów, które mają wiedzę na temat wzorców użycia potoków ciągłej integracji/ciągłego wdrażania. Jeśli wybierzesz opcję ręczną, musisz zdefiniować schemat wstępnej aprowizacji na podstawie zrozumienia, kiedy agenci w puli będą najprawdopodobniej używać i ilu agentów prawdopodobnie będzie używanych, a także określić liczbę agentów spełniających przewidywane zapotrzebowanie.

Możesz utworzyć własny harmonogram aprowizacji lub wybrać jeden ze wstępnie zdefiniowanych harmonogramów i skonfigurować strefę czasową do użycia do określania harmonogramów. Wartość domyślna wstępnego aprowizowania strefy czasowej to (UTC) uniwersalny czas koordynowany.

Konfigurację agenta rezerwowego można skonfigurować ręcznie na jeden z następujących trzech sposobów.

Każdy z przewodników Szybki start dotyczący wstępnej aprowizacji zawiera następujące typowe ustawienia oprócz określonych ustawień dla tego przewodnika Szybki start.

  • Wstępne aprowizowanie strefy czasowej umożliwia skonfigurowanie strefy czasowej w schemacie wstępnej aprowizacji. Wartość domyślna wstępnego aprowizowania strefy czasowej to (UTC) uniwersalny czas koordynowany.
  • Procent agenta rezerwowego konfiguruje procent agentów rezerwowych dla każdego obrazu. Możesz wprowadzić polecenie * , aby upewnić się, że wszystkie obrazy są aprowidowane w równym stopniu lub można określić liczbę całkowitą z zakresu od 0 do 100, aby reprezentować wartość procentową. Jeśli określisz wartość procentową, suma dla wszystkich obrazów musi być równa 100. Jeśli masz pojedynczy obraz, określ * wartość lub 100. Procent agenta rezerwowego jest konfigurowany w images sekcji podczas korzystania z szablonów usługi ARM. Aby uzyskać więcej informacji, zobacz Konfigurowanie obrazów.

Zrzut ekranu przedstawiający tryb wstrzymania ręcznego.

Rozpocznij od podstaw

Jeśli zdecydujesz się rozpocząć od podstaw, możesz dodać listę okresów aprowizacji, które będą służyć jako schemat aprowizacji. Każdy okres aprowizacji składa się z dnia rozpoczęcia, dnia zakończenia, strefy czasowej, godziny rozpoczęcia, godziny zakończenia i liczby. Okresy aprowizacji nie mogą się nakładać na siebie.

Właściwości opis
Wiele dni Po zaznaczeniu tej opcji można skonfigurować zarówno dzień rozpoczęcia, jak i dzień zakończenia dla schematu aprowizacji.
Do następnego okresu Po sprawdzeniu okres aprowizacji jest uruchamiany od godziny rozpoczęcia do początku następnego okresu aprowizacji.
Dzień rozpoczęcia Dzień rozpoczęcia okresu aprowizacji.
Dzień zakończenia Dzień zakończenia okresu aprowizacji. Wymagane, jeśli jest zaznaczone wielodniowe.
Godzina rozpoczęcia Czas rozpoczęcia okresu aprowizacji.
Godzina zakończenia Czas zakończenia okresu aprowizacji. Wymagane, chyba że zaznaczono okres do następnego okresu .
Count Liczba agentów rezerwowych do aprowizacji. Ta liczba musi być większa niż zero i nie może być większa niż wartość Maksymalna liczba agentów skonfigurowana w ustawieniach puli.

Po utworzeniu okresu aprowizacji można usunąć lub edytować okres z listy Schemat wstępnej aprowizacji.

W poniższym przykładzie skonfigurowano schemat ręczny z 1 agentem aprowizacji w poniedziałek rano od 12:00 do 5:00 EST.

Zrzut ekranu przedstawiający schemat skalowania ręcznego.

Schemat dni powszedni

Jeśli wybierzesz schemat dni powszedni, możesz określić godzinę rozpoczęcia i godzinę zakończenia, w której określona liczba agentów rezerwowych będzie w stanie wstrzymania każdego dnia tygodnia.

Właściwości opis
Godzina rozpoczęcia Czas rozpoczęcia okresu aprowizacji.
Godzina zakończenia Czas zakończenia okresu aprowizacji.
Liczba aprowizacji Liczba agentów rezerwowych do aprowizacji. Ta liczba musi być większa niż zero i nie może być większa niż wartość Maksymalna liczba agentów skonfigurowana w ustawieniach puli.

W poniższym przykładzie skonfigurowaliśmy czterech agentów do użycia w godzinach pracy z 0 agentami w godzinach wolnych od pracy i weekendach przy użyciu czasu standardowego wschodniego.

Zrzut ekranu przedstawiający schemat dni powszednie.

Schemat all week

Jeśli wybierzesz schemat cały tydzień, możesz określić liczbę agentów, które mają być dostępne 24/7.

Zrzut ekranu przedstawiający cały tydzień schematu.

Automatyczne

Jeśli nie znasz wzorców użycia i chcesz polegać na automatycznym prognozowaniu na podstawie przeszłych danych, wybierz pozycję Automatycznie. Możesz równoważyć koszty i wydajność agenta za pomocą suwaka z następującymi pięcioma opcjami. Zarządzane pule DevOps uruchamia zapytanie w ciągu ostatnich trzech tygodni danych historycznych (jeśli są dostępne), organizując sesje w kolejce puli do pięciu minut i przypisuje określony percentyl (aby uniknąć skoków) do każdej godziny.

  • Najbardziej ekonomiczne (MostCostEffective) - 10. percentyl
  • Bardziej ekonomiczne (MoreCostEffective) — 25. percentyl
  • Zrównoważony (wartość domyślna ) (Balanced) — 50. percentyl
  • Większa wydajność (MorePerformance) — 75. percentyl
  • Najlepsza wydajność (BestPerformance) — 90. percentyl

Zrzut ekranu przedstawiający ustawienie automatycznego skalowania.

Zobacz też