Delen via


Configureer schaalbaarheid

Configureer schaalinstellingen om de prestaties en kosten van uw beheerde DevOps-pool te beheren. Zie Kosten en prestaties beheren voor meer informatie over prijzen en prestaties.

Agentstatus

Beheerde DevOps-pools kunnen worden geconfigureerd als stateless of stateful.

De standaardinstelling voor een beheerde DevOps-pool is staatloos (elke keer nieuwe agent), maar in sommige gevallen willen teams mogelijk agents opnieuw gebruiken om de pakketten of bestanden die zijn gemaakt tijdens de vorige pijplijnuitvoering opnieuw te gebruiken. Buildworkload is een veelvoorkomend scenario waarin teams de status willen behouden en agents opnieuw willen gebruiken. U kunt stateful pools bereiken via beheerde DevOps-pools terwijl u deze balanceert met aanbevolen beveiligingsprocedures. Standaard kan een agent maximaal 7 dagen opnieuw worden gebruikt, maar u kunt deze zo configureren dat deze eerder wordt gerecycled.

Notitie

Stateless pools of het gebruik van de agentstatusinstelling Fresh agent elke keer worden aanbevolen door beveiligingsexperts als verdediging tegen supply chain-aanvallen.

Staatloze pools

Wanneer een staatloze agent is geconfigureerd, wordt voor elke taak een nieuwe agent aangeschaft en wordt deze verwijderd nadat de taak is voltooid.

Schermopname van een staatloze agent.

Wanneer de status van de agent elke keer op Fresh-agent is ingesteld, wordt voor elke taak een nieuwe agent aangeschaft en wordt deze verwijderd nadat de taak is voltooid.

Stateful pools

Schermopname van een stateful agent.

Wanneer dezelfde agent kan worden gebruikt door meerdere builds ("kind": "stateful" in resourcesjablonen of { "stateful": {...} } in Azure CLI), worden agents in de pool beschouwd als stateful. Stateful pools worden geconfigureerd met behulp van de volgende instellingen.

  • De maximale time-to-live voor stand-byagents (maxAgentLifetime) configureert de maximale duur die een agent in een stateful pool kan uitvoeren voordat deze wordt afgesloten en verwijderd. De notatie voor maximale time to live voor stand-byagents is dd.hh:mm:ss. De standaardwaarde van Maximale time to live voor stand-byagents is ingesteld op de maximaal toegestane duur van zeven dagen (7.00:00:00).

  • Respijtperiode (gracePeriodTimeSpan) configureert de hoeveelheid tijd die een agent in een stateful pool wacht op nieuwe taken voordat ze worden afgesloten nadat alle huidige en in de wachtrij geplaatste taken zijn voltooid. De notatie voor respijtperiode is dd.hh:mm:ss en de standaardwaarde is geen respijtperiode.

Terwijl agents in staatloze pools na elke taak worden afgesloten en verwijderd, blijven agents in stateful pools actief als aan een van de volgende voorwaarden wordt voldaan.

  • Als er een andere taak in de wachtrij staat wanneer de eerste taak is voltooid, stuurt Beheerde DevOps-pools die taak naar de agent die de eerste taak heeft uitgevoerd in plaats van deze af te sluiten.
  • Als er een respijtperiode is geconfigureerd voor de pool, wachten agents op nieuwe taken voor de duur die is opgegeven door de respijtperiode voordat ze worden afgesloten.
  • Als stand-byagents zijn ingeschakeld en de agentinstallatiekopieën voldoen aan de criteria van de actieve inrichtingsperiode, blijft de agent actief en wordt gewacht op taken.

Actieve agents in stateful pools worden afgesloten en verwijderd als ze continu worden uitgevoerd voor de duur die is opgegeven door Max time to live voor stand-byagenten, zelfs als aan de vorige voorwaarden wordt voldaan. Als de maximale duur voor live voor stand-byagenten bijvoorbeeld drie dagen is geconfigureerd en de stand-byagentmodus is ingesteld op Handmatig, De hele weekschema (machines beschikbaar 24/7), worden de agents opnieuw opgestart na drie doorlopende dagen van uptime.

Belangrijk

Agents in stateful pools kunnen nog steeds worden afgesloten en verwijderd nadat een taak is voltooid als er geen respijtperiode is, geen actieve inrichtingsperiode voor stand-byagents en geen taken in de wachtrij die overeenkomen met de agent. Zodra een agent is verwijderd, gaat elke status verloren.

Respijtperiode maakt het de meest rendabele manier om stateful pools uit te voeren voor pijplijnen met consistente belasting en vereist geen gebruik van de stand-byagentmodus om agents online te houden en klaar te zijn voor het accepteren van taken.

Stand-byagentmodus

Wanneer u een pool maakt, is de stand-byagentmodus standaard uitgeschakeld en er zijn geen stand-byagents die onmiddellijk aan uw pijplijnen moeten worden toegewezen. Dit kan enkele ogenblikken, tot 15 minuten, duren voordat een agent op aanvraag wordt ingericht. Voor betere prestaties schakelt u de stand-byagentmodus in en configureert u een stand-byagentschema dat capaciteit biedt voor uw workload.

Wanneer een stand-byagentschema is geconfigureerd, vergelijkt Managed DevOps Pools periodiek het aantal ingerichte agenten met het aantal stand-byagenten dat is gespecificeerd volgens het huidige inrichtingsschema, en worden er nieuwe agenten gestart indien nodig om het aantal stand-byagenten te behouden. U kunt de huidige status en het aantal agents in uw pool bekijken met behulp van het deelvenster Agents.

Belangrijk

Het aantal inrichtingen in een schema kan niet groter zijn dan de maximumagenten die zijn geconfigureerd in groepsinstellingen.

De stand-byagentmodus wordt geconfigureerd met behulp van de volgende instellingen:

  • Uit : de stand-byagentmodus is uitgeschakeld en agents worden op aanvraag ingericht wanneer taken in de wachtrij worden geplaatst.
  • Handmatig : een handmatig stand-byschema configureren.
  • Automatisch : gebruik een automatisch stand-byschema op basis van de gebruiksgeschiedenis van de agent en configureerbaar voor kosten en prestaties.

Schermopname van de selectie van de stand-byagentmodus.

Handmatig

Handmatige modus is het meest geschikt voor teams die kennis hebben van hun ci/CD-pijplijnengebruikspatronen. Als u de handmatige optie selecteert, moet u uw pre-inrichtingsschema definiëren op basis van uw inzicht in wanneer agents in de pool waarschijnlijk worden gebruikt en hoeveel agents waarschijnlijk worden gebruikt, en een inrichtingsaantal agents opgeven dat voldoet aan de verwachte vraag.

U kunt uw eigen inrichtingsschema maken of kiezen uit een van de vooraf gedefinieerde planningen en u kunt de tijdzone configureren die moet worden gebruikt voor het opgeven van de planningen. De standaardwaarde voor Pre-provisioning TimeZone is (UTC) Coordinated Universal Time.

Handmatige stand-byagentconfiguratie kan op een van de volgende drie manieren worden geconfigureerd.

Elk van de quickstarts voor vooraf inrichten bevat de volgende algemene instellingen naast de specifieke instellingen voor die quickstart.

  • Met de tijdzone vooraf inrichten kunt u de tijdzone configureren voor de tijden in uw pre-inrichtingsschema. De standaardwaarde voor Pre-provisioning TimeZone is (UTC) Coordinated Universal Time.
  • Het percentage stand-byagent configureert het gewenste percentage stand-byagents voor elke installatiekopieën. U kunt invoeren * om ervoor te zorgen dat alle installatiekopieën gelijk worden ingericht of u kunt een geheel getal opgeven van 0 tot 100 om een percentage weer te geven. Als u een percentage opgeeft, moet het totaal voor alle afbeeldingen gelijk zijn aan 100. Als u één afbeelding hebt, geeft * u of 100 op. Het percentage stand-byagent wordt geconfigureerd in de images sectie wanneer u ARM-sjablonen gebruikt. Zie Installatiekopieën configureren voor meer informatie.

Schermopname van de handmatige stand-bymodus.

Begin helemaal opnieuw

Als u ervoor kiest om helemaal opnieuw te beginnen, kunt u een lijst met inrichtingsperioden toevoegen om te fungeren als uw inrichtingsschema. Elke inrichtingsperiode bestaat uit een begindag, einddag, tijdzone, begintijd, eindtijd en een telling. Inrichtingsperioden kunnen elkaar niet overlappen.

Eigenschappen Beschrijving
Meerdere dagen Wanneer dit is ingeschakeld, kunt u zowel een begindag als een einddatum configureren voor uw inrichtingsschema.
Tot volgende periode Wanneer dit is ingeschakeld, wordt de inrichtingsperiode uitgevoerd vanaf de begintijd tot het begin van de volgende inrichtingsperiode.
Begindag De dag waarop de inrichtingsperiode begint.
Einddag De dag waarop de inrichtingsperiode afloopt. Vereist als meerdere dagen is ingeschakeld.
Begintijd De tijd waarop de inrichtingsperiode begint.
Eindtijd De tijd waarop de inrichtingsperiode afloopt. Vereist tenzij de volgende periode is ingeschakeld.
Tellen Het aantal stand-byagents dat moet worden ingericht. Dit getal moet groter zijn dan nul en mag niet groter zijn dan de waarde maximumagenten die zijn geconfigureerd in de poolinstellingen.

Nadat u een inrichtingsperiode hebt gemaakt, kunt u de periode verwijderen of bewerken uit de lijst met schema's vóór inrichting .

In het volgende voorbeeld wordt een handmatig schema geconfigureerd met 1 agent ingericht op maandagochtend van 12:00 tot 05:00 uur EST.

Schermopname van het handmatige schaalschema.

Weekdagschema

Als u het weekdagschema kiest, kunt u een begin- en eindtijd opgeven waarin het opgegeven aantal stand-byagents elke weekdag stand-by is.

Eigenschappen Beschrijving
Begintijd De tijd waarop de inrichtingsperiode begint.
Eindtijd De tijd waarop de inrichtingsperiode afloopt.
Aantal inrichtingen Het aantal stand-byagents dat moet worden ingericht. Dit getal moet groter zijn dan nul en mag niet groter zijn dan de waarde maximumagenten die zijn geconfigureerd in de poolinstellingen.

In het volgende voorbeeld worden vier agents geconfigureerd die moeten worden gebruikt tijdens werkuren met 0 agents tijdens niet-werkuren en weekenden, met behulp van Eastern Standard Time.

Schermopname van het weekdagschema.

Schema alle weken

Als u het schema van de hele week kiest, kunt u een aantal agents opgeven dat u 24/7 wilt gebruiken.

Schermopname van het schema van de hele week.

Automatisch

Als u uw gebruikspatronen niet kent en wilt vertrouwen op automatische prognose op basis van eerdere gegevens, kiest u Automatisch. U kunt met behulp van een schuifregelaar een balans maken tussen kosten en agentprestaties met de volgende vijf opties. Beheerde DevOps-pools voeren een query uit in de afgelopen drie weken historische gegevens (indien beschikbaar), het organiseren van sessies in de wachtrij van de pool in perioden van vijf minuten en wijst het opgegeven percentiel (om pieken te voorkomen) toe aan elk uur.

  • Meest rendabel (MostCostEffective) - 10e percentiel
  • Rendabeler (MoreCostEffective) - 25e percentiel
  • Evenwichtig (standaard) (Balanced) - 50e percentiel
  • Meer prestaties (MorePerformance) - 75e percentiel
  • Beste prestaties (BestPerformance) - 90e percentiel

Schermopname van de instelling voor automatisch schalen.

Zie ook