Sdílet prostřednictvím


Konfigurace škálování

Výkon a náklady instance spravovaných DevOps Pools můžete spravovat konfigurací nastavení škálování. Informace o cenách a výkonu najdete v tématu Správa nákladů a výkonu.

Stav agenta

Fondy můžete nakonfigurovat takto:

  • Bezstavové: Zajistěte pro každou úlohu nový agent.
  • Stavové: Umožňuje sdílení agentů mezi více úlohami.

Výchozí nastavení poolu je bezstavové, čehož můžete dosáhnout nastavením Fresh agenta pokaždé. V některých případech mohou týmy chtít znovu použít agenty a tím i balíčky nebo soubory vytvořené během předchozího běhu pipeline. Úloha sestavení je běžný scénář, kdy týmy chtějí zachovat stav a opakovaně používat agenty. Stavové fondy můžete dosáhnout prostřednictvím spravovaných fondů DevOps a současně je vyrovnáte s osvědčenými postupy zabezpečení. Ve výchozím nastavení je možné agenta opakovaně používat maximálně sedm dní, ale můžete ho nakonfigurovat tak, aby se recykloval dříve.

Poznámka:

Agenti zabezpečení doporučují, aby uživatelé používali bezstavové fondy jako ochranu před útoky na dodavatelský řetězec. Pokaždé použijte nastavení stavu agenta Fresh.

Bezstavové fondy

Při konfiguraci bezstavového agenta se pro každou úlohu zajišťuje nový agent. Po dokončení úlohy se agent zahodí.

Další informace o životním cyklu bezstavových agentů a jejich používání ve službě Azure Pipelines najdete v části Životní cyklus agentů a potenciální zpoždění v části přidělování .

Snímek obrazovky znázorňující bezstavového agenta

Když nastavíte stav agentana Fresh agent pokaždé, pro každou úlohu se zařídí nový agent. Agent se po dokončení úlohy odstraní.

Stavové fondy

Snímek obrazovky znázorňující stavového agenta.

Když povolíte stejného agenta, může ho používat více sestavení ( "kind": "stateful" nastavení v šablonách prostředků nebo { "stateful": {...} } nastavení v Azure CLI), jsou agenti ve fondu stavové. Stavové fondy můžete nakonfigurovat pomocí následujících nastavení:

  • Maximální doba provozu pro pohotovostní agenty (maxAgentLifetime) konfiguruje maximální dobu trvání agenta ve stavovém fondu, než se vypne a zahodí. Formát maximálního času naživo pro pohotovostní agenty je dd.hh:mm:ss. Výchozí hodnota Max time to Live pro pohotovostní agenty je nastavena na maximální povolenou dobu trvání sedm dnů (7.00:00:00).

  • Odkladová doba (gracePeriodTimeSpan) určuje dobu, kterou agent ve stavovém fondu vyčkává na nové úlohy, než se po dokončení všech aktuálních úloh a úloh ve frontě vypne. Formát období odkladu je dd.hh:mm:ss a výchozí období odkladu není.

    Důležité

    Pokud je úloha spuštěná, když vyprší maximální doba živosti pro pohotovostní agenty, agent se nevypne, dokud se úloha nedokončí, není-li úloha již spuštěna déle než dva dny. Jednotlivé úlohy ve spravovaných fondech DevOps se můžou spouštět maximálně dva dny, i když jsou spuštěné v pohotovostním agentovi s více než dvěma dny nakonfigurovanými pro maximální dobu provozu pro pohotovostní agenty. Pokud pracovní postup vyžaduje, abyste spustili jednu úlohu, která trvá déle než dva dny, kontaktujte podporu.

Agenti v bezstavových poolech se po každé úloze vypnou a zahodí. Pokud jsou splněny některé z následujících podmínek, agenti ve stavových fondech budou nadále spuštěni:

  • Pokud se po dokončení první úlohy zařadí jiná úloha do fronty, spravované fondy DevOps odešlou úlohu zařazenou do fronty agentovi, který spustil první úlohu, místo aby ji vypnul.
  • Pokud je pro fond nakonfigurované období odkladu, agenti před vypnutím čekají na nové úlohy po dobu trvání určenou obdobím odkladu.
  • Pokud jsou povoleni pohotovostní agenti a image agenta splňuje kritéria aktivního období zřizování, agent bude dál spouštět a čekat na úlohy.

Agenti, kteří běží ve stavových skupinách, jsou vypnuti a zahozeni, pokud běží nepřetržitě po dobu trvání určenou maximální dobou provozu pro agenty v pohotovostním režimu, i když jsou splněny předchozí podmínky. Pokud je například pro pohotovostní agenty nakonfigurovaný maximální doba provozu po dobu tří dnů a režim pohotovostního agenta je nastavený na ručně, režim celého týdne (počítače dostupné 24/7) se agenti restartují po třech nepřetržitých dnech provozu.

Důležité

Agenty ve stavových skupinách lze po dokončení úlohy vypnout a odstranit, pokud neexistuje žádná doba odkladu, žádné aktivní období zřizování pro pohotovostní agenty ani žádné úlohy ve frontě určené pro agenta. Při zahození agenta dojde ke ztrátě stavu.

Období odkladu umožňují nákladově nejefektivnější způsob spouštění stavových fondů pro kanály s konzistentním zatížením. Období odkladu nevyžadují použití pohotovostního režimu agenta, aby agenti zůstali online a připravení přijímat úlohy.

Pohotovostní režim agenta

Při vytváření fondu je režim pohotovostního agenta ve výchozím nastavení vypnutý. Když je režim pohotovostního agenta vypnutý, nejsou k dispozici žádní pohotovostní agenti, které by bylo možné okamžitě přiřadit k pipeline. Vaše kanály mohou muset čekat od několika sekund do 15 minut, než bude zřízen agent na požádání. Pokud chcete dosáhnout lepšího výkonu, povolte režim pohotovostního agenta a nakonfigurujte plán pohotovostního agenta, který poskytuje kapacitu pro vaši úlohu.

Když konfigurujete plán pohotovostního agenta, spravované fondy DevOps pravidelně porovnávají počet zřízených agentů s počtem pohotovostních agentů, které zadáte v aktuálním schématu zřizování. Spustí nové agenty podle potřeby pro zachování počtu pohotovostních agentů. Pomocí podokna Agenti můžete zobrazit aktuální stav a počet agentů ve vašem fondu.

Důležité

Počet zřizování ve schématu nemůže být větší než maximální počet agentů, kterou nakonfigurujete v nastavení fondu.

Režim pohotovostního agenta můžete nakonfigurovat pomocí následujících nastavení:

  • Vypnuto: Režim pohotovostního agenta je vypnutý a agenti jsou zřizováni na vyžádání, když jsou úlohy zařazeny do fronty.
  • Ruční: Nakonfigurujte plán ručně pohotovostního režimu.
  • Automaticky: Použijte automatický pohotovostní plán založený na historii využití agenta. Můžete ho nakonfigurovat pro náklady a výkon.

Snímek obrazovky znázorňující výběry pro režim pohotovostního agenta

Ruční

Ruční režim je nejvhodnější pro týmy, které znají vzory využití kanálů kontinuální integrace a průběžného doručování (CI/CD). Při použití ruční možnosti je potřeba definovat schéma předběžného zřizování. Schéma definujete na základě vašeho porozumění tomu, jaké agenty ve fondu se budou pravděpodobně používat a kolik agentů se bude pravděpodobně používat. Zadáte počet agentů pro zajištění, kteří splňují projektovanou poptávku.

Můžete vytvořit vlastní plán nasazení nebo si vybrat některý z předdefinovaných. Časové pásmo můžete nakonfigurovat tak, aby používalo k určení plánů. Výchozí hodnota pro časové pásmo předběžného zřizování je (UTC) Koordinovaný univerzální čas.

Ruční pohotovostní agenty můžete nakonfigurovat jedním z následujících tří způsobů:

Každý úvodní průvodce předběžného nastavení má následující společná nastavení (kromě nastavení specifických pro tohoto úvodního průvodce):

  • Časové pásmo předpřipravení: Umožňuje nakonfigurovat časové pásmo pro časové úseky ve schématu předpřipravení. Výchozí hodnota pro časové pásmo předběžného zřizování je (UTC) Koordinovaný univerzální čas.
  • Procento pohotovostního agenta: Nakonfiguruje procento pohotovostních agentů, které chcete použít pro každou image. Můžete zadat * , abyste zajistili, že jsou všechny image zřízeny stejně, nebo můžete zadat celé číslo od 0 do 100, které představuje procento. Pokud zadáte procento, musí se součet pro všechny obrázky rovnat 100. Pokud máte jeden obrázek, zadejte * nebo 100. Pokud používáte šablony Azure Resource Manageru (šablony ARM), můžete v části nakonfigurovat nastavení procenta agenta pohotovostníhoimages režimu. Další informace najdete v tématu Konfigurace imagí.

Snímek obrazovky s režimem ručního pohotovostního režimu

Začátek od nuly

Pokud se rozhodnete začít úplně od začátku, můžete jako schéma zřizování přidat seznam období zřizování. Každé zřizovací období se skládá z počátečního dne, koncového dne, časového pásma, času zahájení, času ukončení a počtu. Období zřizování se nemůžou vzájemně překrývat.

Vlastnost Popis
Vícedenní Když vyberete tuto možnost, můžete nakonfigurovat den počáteční i den koncový pro schéma zřizování.
Do dalšího období Když vyberete tuto možnost, období zřizování probíhá od hodnoty Počáteční čas až do začátku dalšího období zřizování.
Počáteční den Den, kdy začíná období zřizování.
Koncový den Den, kdy končí období provisioningu. Vyžaduje se, pokud je zvolena možnost vícedenní.
Počáteční čas Čas, kdy začíná období poskytování.
Čas ukončení Čas ukončení období zřizování Je požadováno, pokud není vybráno "Do příštího období".
Počet Počet pohotovostních agentů, kteří se mají zřídit. Toto číslo musí být větší než nula a nesmí překročit hodnotu Maximální agenti v Nastavení fondu.

Po vytvoření období zřizování můžete období odstranit nebo upravit ze seznamu schémat předběžného zřizování.

Následující příklad ukazuje, jak nakonfigurovat ruční schéma s jedním agentem zřízeným v pondělí ráno od 12:00 do 5:00 EST.

Snímek obrazovky znázorňující schéma ručního škálování

Schéma dne v týdnu

Pokud vyberete schéma dne v týdnu, můžete zadat počáteční a koncový čas, mezi kterými je zadaný počet pohotovostních agentů v pohotovostním režimu každý pracovní den.

Vlastnost Popis
Počáteční čas Čas, kdy začíná období poskytování.
Čas ukončení Čas ukončení období zřizování
Počet provisioningů Počet pohotovostních agentů, kteří se mají zřídit. Toto číslo musí být větší než nula a nesmí být větší než Maximální počet agentů nakonfigurovaná v nastavení poolu.

Následující příklad konfiguruje čtyři agenty pro použití během pracovní doby a žádné agenty mimo pracovní dobu a o víkendech, s využitím východního standardního času (UTC-5).

Snímek obrazovky znázorňující schéma dne v týdnu

Schéma celého týdne

Pokud zvolíte schéma celého týdne, můžete zadat počet agentů, které chcete mít po celou dobu k dispozici.

Snímek obrazovky znázorňující schéma celého týdne

Automatic (Automaticky)

Pokud neznáte vzory využití a chcete se spolehnout na automatické prognózování na základě minulých dat, vyberte Možnost Automaticky. Mezi náklady a výkonem agenta můžete vyrovnávat pomocí posuvníku s následujícími pěti možnostmi. Spravované fondy DevOps provádějí dotaz na základě historických dat z uplynulých tří týdnů (pokud jsou k dispozici). Organizuje relace ve frontě v rámci poolu do pětiminutových období a přiřazuje zadaný percentil ke každé hodině, aby nedocházelo ke špičkám.

  • Nákladově nejefektivnější (MostCostEffective): desátý percentil.
  • Nákladově efektivnější (MoreCostEffective): 25. percentil.
  • Vyvážená (výchozí) (Balanced): 50. percentil.
  • Vyšší výkon (MorePerformance): percentil 75.
  • Nejlepší výkon (BestPerformance): 90. percentil.

Snímek obrazovky znázorňující nastavení automatického škálování

Životní cyklus agentů a potenciální zpoždění přidělení

Když povolíte pohotovostní agenty pomocí bezstavového schématu, musíte před přechodem z připraveného stavu do přiděleného stavu nainstalovat a nakonfigurovat agenta Azure Pipelines a spustit kanál.

Když spravované DevOps fondy zřídí nové agenty, pokusí se stáhnout nejnovějšího agenta služby Azure Pipelines, aby již byli staženi na pohotovostní agenty, než přejdou do stavu připravenosti. Spuštění, připojení a zahájení úlohy může trvat 10 sekund až minutu v závislosti na rychlosti SKU fondu, použitých obrazech a zatížení sítě. Pokud navíc v pipeline úloze zadáte určitá nastavení, může to vést k opětovnému stažení a spuštění jiného agenta. Regrese a vrácení zpět agenta mohou také způsobit znovustažení agenta.

Připravení agenti mají vždy potenciální zpoždění, protože spravované fondy DevOps používají tohoto agenta efemérním způsobem, což znamená, že zapojujeme a spouštíme agenta úloh jednou na úlohu. Pokud zaznamenáte zpoždění v tom, jak připravení agenti vyzvedávají úlohy z Azure DevOps, zvažte následující otázky:

  • Máte připravené agenty? Nejběžnějším problémem je nedorozumění, kdy by agenti měli být předem zřízeni. Pokud jsou splněny následující podmínky, musí být počítače spuštěny od začátku:
    • Počet úloh zařazených do fronty je větší než počet pohotovostních agentů ve fondu.
    • Úlohy se zařadí do fronty mimo plán předběžného zřizování.
    • Počet pohotovostních agentů je nastavený na prázdný.
  • Správně konfigurujete pohotovostní agenty, kteří mají více imagí? Pokud neurčíte pomocí příkazu ImageOverride, který obrázek má být použit ve vašem kanálu, úlohy budou cílit na první obrázek. V závislosti na nastavení škálování možná nebudete mít k dispozici tolik agentů, kolik očekáváte, protože některé jsou přidělené jiným imagím.
  • Používáte ve svých datových tocích poptávku ImageVersionOverride? Když použijete poptávku ImageVersionOverride k určení jiné verze image, než je nakonfigurovaná v nastavení fondu, spustí se každý agent na vyžádání pomocí zadané verze image. Pohotovostní agenti jsou zřízeni pomocí verzí imagí zadaných v konfiguraci fondu. Pokud použijete ImageVersionOverride, žádní záložní agenti nebudou odpovídat této verzi a spustí se nový agent.
  • Zpomalují nastavení proxy serveru, virtuální sítě nebo brány firewall vašemu fondu? Potenciální zpomalení kvůli nastavení sítě může způsobit, že spuštění agenta a jeho připojení k Azure DevOps bude trvat déle.
  • Přepisujete agentovu verzi? Spravované DevOps fondy ve výchozím nastavení používají nejnovější verzi agenta úloh Azure DevOps. Nastavení v kanálu YAML (například Agent.Version poptávka) a nastavení organizace Azure DevOps můžou vynutit, aby kanály používaly starší verze agenta úloh, které vyžadují opětovné stažení po přidělení počítače.