Freigeben über


Konfigurieren der Skalierung

Konfigurieren Sie Skalierungseinstellungen, um die Leistung und Kosten Ihres verwalteten DevOps-Pools zu verwalten. Informationen zu Preisen und Leistung finden Sie unter "Kosten und Leistung verwalten".

Agentstatus

Verwaltete DevOps-Pools können als zustandslos oder zustandslos konfiguriert werden.

Die Standardeinstellung für einen verwalteten DevOps-Pool ist zustandslos (fresh agent jedes Mal), aber in einigen Fällen möchten Teams Möglicherweise Agents wiederverwenden, um die Pakete oder Dateien wiederzuverwenden, die während der vorherigen Pipelineausführung erstellt wurden. Buildworkload ist ein gängiges Szenario, in dem Teams Status beibehalten und Agents wiederverwenden möchten. Sie können zustandsbehaftete Pools über verwaltete DevOps-Pools erreichen, während Sie sie mit bewährten Sicherheitspraktiken ausgleichen. Standardmäßig kann ein Agent für maximal 7 Tage wiederverwendet werden, Sie können ihn jedoch so konfigurieren, dass er früher wiederverwendet wird.

Hinweis

Zustandslose Pools oder die Verwendung der Agent-Zustandseinstellung Fresh Agent werden jedes Mal von Sicherheitsexperten als Verteidigung gegen Supply Chain-Angriffe empfohlen.

Zustandslose Pools

Wenn ein zustandsloser Agent konfiguriert ist, wird für jeden Auftrag ein neuer Agent beschafft und nach Abschluss des Auftrags verworfen.

Screenshot eines zustandslosen Agents.

Wenn der Agentstatus jedes Mal auf Fresh Agent festgelegt ist, wird für jeden Auftrag ein neuer Agent beschafft und nach Abschluss des Auftrags verworfen.

Zustandsbehaftete Pools

Screenshot eines zustandsbehafteten Agents.

Wenn derselbe Agent von mehreren Builds ("kind": "stateful" in Ressourcenvorlagen oder { "stateful": {...} } in Azure CLI) verwendet werden kann, werden Agents im Pool als statusbehaftet betrachtet. Zustandsbehaftete Pools werden mit den folgenden Einstellungen konfiguriert.

  • Die maximale Zeit für Standby-Agents (maxAgentLifetime) konfiguriert die maximale Dauer, die ein Agent in einem zustandsbehafteten Pool ausführen kann, bevor er heruntergefahren und verworfen wird. Das Format für max. Zeit für Standby-Agents ist dd.hh:mm:ss. Der Standardwert von "Max time to live" für Standby-Agents wird auf die maximal zulässige Dauer von sieben Tagen (7.00:00:00) festgelegt.

  • Der Karenzzeitraum (gracePeriodTimeSpan) konfiguriert die Zeitspanne, die ein Agent in einem zustandsbehafteten Pool auf neue Aufträge wartet, bevor er heruntergefahren wird, nachdem alle aktuellen und in die Warteschlange eingereihten Aufträge abgeschlossen sind. Das Format für die Karenzzeit ist dd.hh:mm:ss und die Standardeinstellung keine Karenzzeit ist.

Während Agents in zustandslosen Pools nach jedem Auftrag heruntergefahren und verworfen werden, werden Agents in zustandsbehafteten Pools weiterhin ausgeführt, wenn eine der folgenden Bedingungen erfüllt ist.

  • Wenn beim Abschluss des ersten Auftrags ein anderer Auftrag in die Warteschlange gestellt wird, sendet Managed DevOps Pools diesen Auftrag an den Agent, der den ersten Auftrag ausgeführt hat, anstatt ihn herunterzufahren.
  • Wenn eine Nachfrist für den Pool konfiguriert ist, warten Agents auf neue Aufträge für die durch die Nachfrist angegebene Dauer, bevor sie heruntergefahren wird.
  • Wenn Standby-Agents aktiviert sind und das Agentimage die Kriterien des aktiven Bereitstellungszeitraums erfüllt, wird der Agent weiterhin ausgeführt und wartet auf Aufträge.

Ausgeführte Agents in zustandsbehafteten Pools werden heruntergefahren und verworfen, wenn sie kontinuierlich für die von Max. Zeit für Standby-Agents angegebene Dauer ausgeführt werden, auch wenn die vorherigen Bedingungen zutreffen. Wenn z . B. max. Zeit für Standby-Agents für drei Tage konfiguriert ist und der Standby-Agent-Modus auf "Manuell", "Alle Wochenschemas" (Computer verfügbar 24/7) festgelegt ist, werden die Agents nach drei fortlaufenden Tagen der Betriebszeit neu gestartet.

Wichtig

Agents in zustandsbehafteten Pools können weiterhin heruntergefahren und verworfen werden, nachdem ein Auftrag abgeschlossen wurde, wenn keine Nachfrist vorhanden ist, kein aktiver Bereitstellungszeitraum für Standby-Agents und keine Aufträge in der Warteschlange, die dem Agent entsprechen. Sobald ein Agent verworfen wurde, geht jeder Zustand verloren.

Die Karenzzeit ermöglicht die kostengünstigste Methode der Ausführung zustandsbehafteter Pools für Pipelines mit konsistenter Last und erfordert nicht die Verwendung des Standby-Agent-Modus, um Agents online zu halten und bereit für die Annahme von Aufträgen zu sein.

Standby-Agent-Modus

Wenn Sie einen Pool erstellen, ist der Standby-Agent-Modus standardmäßig deaktiviert, und es gibt keine Standby-Agents, die Ihren Pipelines sofort zugewiesen werden müssen, was möglicherweise einige Minuten bis zu 15 Minuten warten muss, damit ein Agent bei Bedarf bereitgestellt wird. Um eine bessere Leistung zu erzielen, aktivieren Sie den Standby-Agent-Modus , und konfigurieren Sie einen Standby-Agent-Zeitplan, der Kapazität für Ihre Workload bereitstellt.

  • Deaktiviert – Der Standby-Agent-Modus ist deaktiviert, und Agents werden on-demand bereitgestellt, wenn Aufträge in die Warteschlange gestellt werden.
  • Manuell – Konfigurieren eines manuellen Standbyzeitplans.
  • Automatisch – Verwenden Sie einen automatischen Standbyzeitplan basierend auf dem Nutzungsverlauf des Agents und kann für Kosten und Leistung konfiguriert werden.

Screenshot der Auswahl des Standby-Agent-Modus.

Manuell

Der manuelle Modus eignet sich am besten für Teams, die über Kenntnisse ihrer CI/CD-Pipelines verfügen. Wenn Sie die manuelle Option auswählen, müssen Sie Ihr Vorbereitstellungsschema basierend auf Ihrem Verständnis definieren, wann Agents im Pool am ehesten verwendet werden und wie viele Agents wahrscheinlich verwendet werden, und eine Bereitstellungsanzahl von Agents angeben, die die projizierte Nachfrage erfüllen.

Sie können Einen eigenen Bereitstellungszeitplan erstellen oder aus einem der vordefinierten Zeitpläne auswählen und die Zeitzone so konfigurieren, dass sie für die Angabe der Zeitpläne verwendet wird. Der Standardwert für "TimeZone vor der Bereitstellung" ist (UTC) Koordinierte Weltzeit.

Tipp

Die Anzahl der Bereitstellungen in einem Schema darf nicht größer sein als die maximal in den Pooleinstellungen konfigurierten Agents.

Alle paar Minuten überprüft verwaltete DevOps-Pools die Anzahl der aktiven Agents, die Aufträge ausführen, und Standby-Agents, die auf Aufträge warten, um sicherzustellen, dass die Vom aktuellen Bereitstellungsschema angegebene Anzahl von Agents verfügbar ist. Wenn die aktuelle Bereitstellungsanzahl 10 ist und fünf Agents Aufträge ausführen und zwei Agents im Standbymodus ausgeführt werden, starten verwaltete DevOps-Pools drei zusätzliche Standby-Agents, um die Gesamtzahl der Agents bis zu 10 zu bringen.

Die Konfiguration des manuellen Standby-Agents kann auf eine der folgenden drei Arten konfiguriert werden.

Jeder der Schnellstarts vor der Bereitstellung verfügt über die folgenden allgemeinen Einstellungen zusätzlich zu den spezifischen Einstellungen für diesen Schnellstart.

  • Mit der Vorabbereitstellung von TimeZone können Sie die Zeitzone für die Zeiten in Ihrem Vorbereitstellungsschema konfigurieren. Der Standardwert für "TimeZone vor der Bereitstellung" ist (UTC) Koordinierte Weltzeit.
  • Der Prozentsatz des Standby-Agents konfiguriert den Prozentsatz der Standby-Agents für jedes Image. Sie können eingeben * , um sicherzustellen, dass alle Bilder gleich bereitgestellt werden, oder Sie können eine ganze Zahl zwischen 0 und 100 angeben, um einen Prozentsatz darzustellen. Wenn Sie einen Prozentsatz angeben, muss die Summe für alle Bilder gleich 100 sein. Wenn Sie über ein einzelnes Bild verfügen, geben Sie * ein oder 100 an. Der Prozentsatz des images Standby-Agents wird im Abschnitt bei Verwendung von ARM-Vorlagen konfiguriert. Weitere Informationen finden Sie unter "Konfigurieren von Bildern".

Screenshot des manuellen Standbymodus.

Von Grund auf neu beginnen

Wenn Sie von Grund auf neu beginnen möchten, können Sie eine Liste der Bereitstellungszeiträume hinzufügen, die als Bereitstellungsschema dienen sollen. Jeder Bereitstellungszeitraum besteht aus einem Starttag, einem Endtag, einer Zeitzone, einer Startzeit, einer Startzeit, einer Endzeit und einer Anzahl. Bereitstellungszeiträume können sich nicht gegenseitig überlappen.

Eigenschaft Beschreibung
Mehrtägig Wenn diese Option aktiviert ist, können Sie sowohl einen Starttag als auch einen Endtag für Ihr Bereitstellungsschema konfigurieren.
Bis zum nächsten Zeitraum Wenn diese Option aktiviert ist, wird der Bereitstellungszeitraum von der Startzeit bis zum Beginn des nächsten Bereitstellungszeitraums ausgeführt.
Starttag Der Tag, an dem der Bereitstellungszeitraum beginnt.
Endtag Der Tag, an dem der Bereitstellungszeitraum endet. Erforderlich, wenn mehrere Tage überprüft werden.
Startzeit Der Zeitpunkt, zu dem der Bereitstellungszeitraum beginnt.
Endzeit Der Zeitraum, zu dem der Bereitstellungszeitraum endet. Erforderlich, es sei denn , der nächste Zeitraum wird überprüft.
Anzahl Die Anzahl der bereitzustellenden Standby-Agents. Diese Zahl muss größer als Null sein und darf nicht größer als der Wert der maximalen Agents sein, der in den Pooleinstellungen konfiguriert ist.

Nach dem Erstellen eines Bereitstellungszeitraums können Sie den Zeitraum aus der Liste der Vorbereitstellungsschemas löschen oder bearbeiten.

Im folgenden Beispiel wird ein manuelles Schema mit 1 Agent konfiguriert, der montagmorgens von 12:00 uhr bis 5:00 Uhr EST bereitgestellt wird.

Screenshot des manuellen Skalierungsschemas.

Weekday-Schema

Wenn Sie das Wochentagsschema auswählen, können Sie eine Start- und Endzeit angeben, in der die angegebene Anzahl von Standby-Agents jeden Wochentag im Standbymodus ist.

Eigenschaft Beschreibung
Startzeit Der Zeitpunkt, zu dem der Bereitstellungszeitraum beginnt.
Endzeit Der Zeitraum, zu dem der Bereitstellungszeitraum endet.
Anzahl der Bereitstellungen Die Anzahl der bereitzustellenden Standby-Agents. Diese Zahl muss größer als Null sein und darf nicht größer als der Wert der maximalen Agents sein, der in den Pooleinstellungen konfiguriert ist.

Im folgenden Beispiel werden vier Agents so konfiguriert, dass sie während der Arbeitszeit mit 0 Agents während der Arbeitsstunden und wochenenden unter Verwendung der Eastern Standard Time verwendet werden.

Screenshot des Wochentagsschemas.

Alle Wochenschema

Wenn Sie das Schema "Alle Wochen" auswählen, können Sie eine Reihe von Agents angeben, die 24/7 verfügbar sein sollen.

Screenshot des gesamten Wochenschemas.

Automatisch

Wenn Sie Ihre Verwendungsmuster nicht kennen und sich auf die automatische Prognose basierend auf früheren Daten verlassen möchten, wählen Sie "Automatisch" aus. Sie können die Kosten- und Agentleistung mithilfe eines Schiebereglers mit den folgenden fünf Optionen ausgleichen. Verwaltete DevOps-Pools führen eine Abfrage in den letzten drei Wochen mit Verlaufsdaten (sofern verfügbar) aus, organisieren In die Warteschlange eingereihte Sitzungen des Pools in fünf Minuten und weisen jedes Stunde das angegebene Quantil (um Spitzen zu vermeiden) zu.

  • Effektivstes (MostCostEffective) - 10. Quantil
  • Mehr Kosteneffektiv (MoreCostEffective) - 25. Quantil
  • Ausgeglichen (Standard) () (Balanced) - 50. Quantil
  • Mehr Leistung (MorePerformance) - 75. Quantil
  • Beste Leistung (BestPerformance) - 90. Quantil

Screenshot der Einstellung für die automatische Skalierung.

Siehe auch