Nakonfigurujte nastavení škálování pro správu výkonu a nákladů na spravovaný fond DevOps. Informace o cenách a výkonu najdete v tématu Správa nákladů a výkonu.
Stav agenta
Spravované fondy DevOps je možné nakonfigurovat jako bezstavové nebo stavové.
Stavové fondy – Povolí sdílení agentů mezi několika úlohami.
Výchozí nastavení spravovaného fondu DevOps je bezstavové (pokaždé nový agent), ale v některých případech můžou týmy chtít znovu použít agenty, aby bylo možné znovu použít balíčky nebo soubory vytvořené během předchozího spuštění kanálu. Ú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ě 7 dní, ale můžete ho nakonfigurovat tak, aby se recykloval dříve.
Poznámka:
Bezstavové fondy nebo použití nastavení stavu agenta Při každém použití nového agenta doporučují odborníci na zabezpečení jako ochranu proti útokům dodavatelského řetězce.
Bezstavové fondy
Když je nakonfigurovaný bezstavový agent, pro každou úlohu se zařadí nový agent a po dokončení úlohy se zahodí.
Pokud "kind": "stateful" prostředků nebo { "stateful": {...} } v Azure CLI), považují se agenti ve fondu za stavové. Stavové fondy se konfigurují pomocí následujících nastavení.
Maximální doba provozu pro pohotovostní agenty (maxAgentLifetime) konfiguruje maximální dobu trvání, po které může agent ve stavovém fondu běžet, 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).
Období odkladu (gracePeriodTimeSpan) konfiguruje dobu, po kterou agent ve stavovém fondu čeká na nové úlohy, a až po dokončení všech aktuálních a zařazených úloh do fronty. Formát období odkladu je dd.hh:mm:ss a výchozí období odkladu není.
Zatímco agenti ve bezstavových fondech jsou po každé úloze vypnuti a zahozeni, agenti ve stavových fondech budou dál spuštěni, pokud jsou splněny některé z následujících podmínek.
Pokud se po dokončení první úlohy zařadí do fronty jiná úloha, spravované fondy DevOps odešlou tuto úlohu agentovi, který spustil první úlohu, místo aby ji vypnuli.
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.
Spuštění agentů ve stavových fondech se vypne a zahodí, pokud běží nepřetržitě po dobu trvání určenou maximální dobou provozu pro pohotovostní agenty, i když jsou splněné 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 fondech je možné po dokončení úlohy vypnout a zahodit, pokud neexistuje období odkladu, žádné aktivní období zřizování pro pohotovostní agenty a žádné úlohy ve frontě odpovídající agentu. Po zahození agenta dojde ke ztrátě stavu.
Období odkladu umožňuje nákladově efektivní způsob spouštění stavových fondů pro kanály s konzistentním zatížením a nevyžaduje použití pohotovostního režimu agenta, aby agenti zůstali online a připraveni přijímat úlohy.
Pohotovostní režim agenta
Když vytvoříte fond, režim pohotovostního agenta je ve výchozím nastavení vypnutý a agenti pohotovostního režimu, kteří by se okamžitě přiřadili ke kanálům, což může chvíli čekat až 15 minut, než se agent zřídí na vyžá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.
Pokud je nakonfigurován plán pohotovostního agenta, spravované fondy DevOps pravidelně porovnávají počet zřízených agentů s počtem pohotovostních agentů určeným aktuálním schématem zřizování a podle potřeby spouštějí nové agenty, aby udržely požadovaný počet pohotovostních agentů. Aktuální stav a počet agentů ve fondu můžete zobrazit pomocí podokna Agenti.
Důležité
Počet zřizování v schématu nemůže být větší než maximální počet agentů nakonfigurovaných v nastavení fondu.
Pohotovostní režim agenta se konfiguruje pomocí následujících nastavení:
Vypnuto – Režim pohotovostního agenta je vypnutý a agenti jsou zřízeni 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 plán automatického pohotovostního režimu na základě historie využití agenta a konfigurovatelný pro náklady a výkon.
Pohotovostní agenti jsou nakonfigurováni pomocí resourcePredictionsProfile části agentProfile vlastnosti. Nastavte "kind": "Manual" konfiguraci schématu zahájení od začátku, schématu dne v týdnu nebo celého týdne a zadejte podrobnosti schématu resourcePredictions v části. Nastavte "kind": "Automatic" konfiguraci automatických pohotovostních agentů. Vynecháte oddíl pro ResourcePredictionsProfile zakázání pohotovostních agentů. Podrobnosti o konfiguraci jednotlivých typů škálování najdete v následujících částech.
Agenti se konfigurují pomocí parametru agent-profile při vytváření nebo aktualizaci fondu.
Pohotovostní agenti jsou nakonfigurováni pomocí resourcePredictionsProfile části parametru agent-profile . Nastavte "Manual": {} konfiguraci schématu zahájení od začátku, schématu dne v týdnu nebo celého týdne a zadejte podrobnosti schématu resourcePredictions v části. Nastavte "Automatic": {} konfiguraci automatických pohotovostních agentů. Podrobnosti o konfiguraci jednotlivých typů škálování najdete v následujících částech.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Následující příklad ukazuje obsah souboru agent-profile.json .
Ruční režim je nejvhodnější pro týmy, které mají znalosti o vzorech využití kanálů CI/CD. Pokud vyberete ruční možnost, musíte definovat schéma předběžného zřizování na základě vašeho porozumění tomu, kdy se agenti ve fondu budou pravděpodobně používat a kolik agentů se pravděpodobně použije, a určit počet agentů, kteří splňují projektovanou poptávku.
Můžete vytvořit vlastní plán zřizování nebo si vybrat z některého z předdefinovaných plánů a můžete nakonfigurovat časové pásmo, které se má použít 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.
Konfiguraci ručního pohotovostního agenta je možné nakonfigurovat jedním z následujících tří způsobů.
Začít od začátku – Konfigurace sady období zřizování pro pohotovostní agenty
Každé z rychlých startů před zřízením má kromě konkrétních nastavení pro tento rychlý start následující společná nastavení.
Časové pásmo před zřízením umožňuje nakonfigurovat časové pásmo pro časy ve schématu předběžného zřizování. Výchozí hodnota pro časové pásmo předběžného zřizování je (UTC) Koordinovaný univerzální čas.
Procento pohotovostního agenta konfiguruje 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.
Procento pohotovostního images agenta je nakonfigurováno v části při použití šablon ARM. Další informace najdete v tématu Konfigurace imagí.
Ruční zřizování pohotovostního agenta je uvedené v resourcePredictionsProfile části agentProfilea podrobnosti jsou nakonfigurovány v tomto oddílu resourcePredictions .
Zadejte požadované časové pásmo pro schéma pomocí timeZone vlastnosti. Výchozí hodnota je UTC. Chcete-li načíst seznam názvů časových pásem pro tuto vlastnost, viz TimeZoneInfo.GetSystemTimeZones – metoda.
Plán pro pohotovostní agenty je definován seznamem daysData . Seznam daysData může obsahovat jednu položku nebo sedm položek.
Seznam daysData se sedmi položkami se mapuje na dny v týdnu počínaje neděli. Každý z těchto sedmi položek může obsahovat nula nebo více "time": count položek, zadat čas ve formátu 24 hodin a počet pohotovostních agentů. Zadaný počet pohotovostních agentů se udržuje až do další "time": count položky, která může být ve stejný den nebo následující den.
daysData Seznam s jednou položkou definuje schéma celého týdne, kde jedna "time": count položka odpovídá počtu pohotovostních agentů pro celý týden.
Následující příklad je schéma ručního pohotovostního agenta používající Eastern Standard Time, s jedním agentem zřízeným od pondělí do pátku od 9:00 (počet 1pohotovostních agentů ) až 5:00 PM (počet pohotovostních agentů 0).
Jedna daysData položka obsahuje slovník časů a počet pohotovostních agentů. Každá "time" : count položka určuje počet pohotovostních agentů, které se mají naplánovat od zadaného času, ve formátu 24 hodin. Po sobě jdoucí "time" : count položky určují posloupnost počtu naplánovaných agentů pro daný den.
"daysData": [
{}, # Schedule of standby agent count adjustments for Sunday
{ # Schedule of standby agent count adjustments for Monday
"09:00:00": 1, # Adjust standby agent count to 1
"17:00:00": 0 # Adjust standby agent count to 0
},
{ # Schedule of standby agent count adjustments for Tuesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Wednesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Thursday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Friday
"09:00:00": 1,
"17:00:00": 0
},
{} # Schedule of standby agent count adjustments for Saturday
]
Počet pohotovostních agentů se na konci dne nebo na konci týdne automaticky neobnovuje na nulu a určení prázdné daysData položky pro tento den nezakážuje pohotovostní agenty. Prázdná daysData položka znamená, že pro tento den nedošlo k žádným změnám plánu počtu pohotovostních agentů. Chcete-li nastavit pohotovostního agenta na nulu počínaje konkrétním časovým obdobím, musíte explicitně zadat "time" : count položku s count hodnotou 0.
Příklady
Pokud chcete provést žádné úpravy počtu pohotovostních agentů zadaných na závěr předchozího dne (nebo týdne, pokud konfigurujete první období týdne), zadejte daysData položku s nulovými položkami.
{
}
Pokud chcete naplánovat spuštění a zastavení jednoho pohotovostního agenta 09:00:00 ( 17:00:00 pomocí časového pásma určeného resourcePredictions vlastností), zadejte následující konfiguraci.
{
"09:00:00": 1,
"17:00:00": 0
}
Pokud chcete naplánovat jednoho pohotovostního agenta počínaje půlnocí až 09:00:00po 10 pohotovostních agentů, dokud 17:00:00nezadáte následující konfiguraci.
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Pokud chcete naplánovat, aby byl pohotovostní agent dostupný od 09:00:00 zadaného dne a zastavil 17:00:00 se následující den, použijte dvě po sobě jdoucí daysData položky.
{
"09:00:00": `1`
},
{
"17:00:00": 0
}
Agenti se konfigurují pomocí parametru agent-profile při vytváření nebo aktualizaci fondu.
az mdp pool create \
--agent-profile agent-profile.json
# other parameters omitted for space
Následující příklad ukazuje obsah souboru agent-profile.json .
Ruční zřizování pohotovostního agenta je zadané v resourcePredictionsProfile části parametru agent-profile a podrobnosti jsou nakonfigurovány v resourcePredictions části.
Zadejte požadované časové pásmo pro schéma pomocí timeZone vlastnosti. Výchozí hodnota je UTC. Chcete-li načíst seznam názvů časových pásem pro tuto vlastnost, viz TimeZoneInfo.GetSystemTimeZones – metoda.
Plán pro pohotovostní agenty je definován seznamem daysData . Seznam daysData může obsahovat jednu položku nebo sedm položek.
Seznam daysData se sedmi položkami se mapuje na dny v týdnu počínaje neděli. Každý z těchto sedmi položek může obsahovat nula nebo více "time": count položek, zadat čas ve formátu 24 hodin a počet pohotovostních agentů. Zadaný počet pohotovostních agentů se udržuje až do další "time": count položky, která může být ve stejný den nebo následující den.
daysData Seznam s jednou položkou definuje schéma celého týdne, kde jedna "time": count položka odpovídá počtu pohotovostních agentů pro celý týden.
Následující příklad je schéma ručního pohotovostního agenta používající Eastern Standard Time, s jedním agentem zřízeným od pondělí do pátku od 9:00 (počet 1pohotovostních agentů ) až 5:00 PM (počet pohotovostních agentů 0).
Jedna daysData položka obsahuje slovník časů a počet pohotovostních agentů. Každá "time" : count položka určuje počet pohotovostních agentů, které se mají naplánovat od zadaného času, ve formátu 24 hodin. Po sobě jdoucí "time" : count položky určují posloupnost počtu naplánovaných agentů pro daný den.
"daysData": [
{}, # Schedule of standby agent count adjustments for Sunday
{ # Schedule of standby agent count adjustments for Monday
"09:00:00": 1, # Adjust standby agent count to 1
"17:00:00": 0 # Adjust standby agent count to 0
},
{ # Schedule of standby agent count adjustments for Tuesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Wednesday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Thursday
"09:00:00": 1,
"17:00:00": 0
},
{ # Schedule of standby agent count adjustments for Friday
"09:00:00": 1,
"17:00:00": 0
},
{} # Schedule of standby agent count adjustments for Saturday
]
Počet pohotovostních agentů se na konci dne nebo na konci týdne automaticky neobnovuje na nulu a určení prázdné daysData položky pro tento den nezakážuje pohotovostní agenty. Prázdná daysData položka znamená, že pro tento den nedošlo k žádným změnám plánu počtu pohotovostních agentů. Chcete-li nastavit pohotovostního agenta na nulu počínaje konkrétním časovým obdobím, musíte explicitně zadat "time" : count položku s count hodnotou 0.
Příklady
Pokud chcete provést žádné úpravy počtu pohotovostních agentů zadaných na závěr předchozího dne (nebo týdne, pokud konfigurujete první období týdne), zadejte daysData položku s nulovými položkami.
{
}
Pokud chcete naplánovat spuštění a zastavení jednoho pohotovostního agenta 09:00:00 ( 17:00:00 pomocí časového pásma určeného resourcePredictions vlastností), zadejte následující konfiguraci.
{
"09:00:00": 1,
"17:00:00": 0
}
Pokud chcete naplánovat jednoho pohotovostního agenta počínaje půlnocí až 09:00:00po 10 pohotovostních agentů, dokud 17:00:00nezadáte následující konfiguraci.
{
"00:00:00": 1,
"09:00:00": 10,
"17:00:00": 0
}
Pokud chcete naplánovat, aby byl pohotovostní agent dostupný od 09:00:00 zadaného dne a zastavil 17:00:00 se následující den, použijte dvě po sobě jdoucí daysData položky.
{
"09:00:00": `1`
},
{
"17:00:00": 0
}
Začít od začátku
Pokud se rozhodnete začít úplně od začátku, můžete přidat seznam období zřizování, která budou sloužit jako schéma zřizování. Každé období zřizování se skládá z počátečního dne, koncového dne, časového pásma, času zahájení, koncového času a počtu. Období zřizování se nemůžou vzájemně překrývat.
Vlastnost
Popis
Vícedenní
Po zaškrtnutí můžete nakonfigurovat počáteční i koncový den pro schéma zřizování.
Do dalšího období
Po zaškrtnutí se období zřizování spustí od času zahájení 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 skončí období zřizování Vyžaduje se, pokud je zaškrtnuto vícedenní.
Čas spuštění
Čas zahájení období zřizování.
Koncový čas
Čas ukončení období zřizování. Povinné, pokud není zaškrtnuto další období .
Počet
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ž hodnota Maximální hodnota agentů nakonfigurovaná v nastavení fondu.
Po vytvoření období zřizování můžete období odstranit nebo upravit ze seznamu schémat před zřízením.
Následující příklad nakonfiguruje ruční schéma s 1 agentem zřízeným v pondělí ráno od 12:00 do 5:00 EST.
Pokud zvolíte schéma dne v týdnu, můžete zadat počáteční a koncový čas, ve kterém bude zadaný počet pohotovostních agentů v pohotovostním režimu každý pracovní den.
Vlastnost
Popis
Čas spuštění
Čas zahájení období zřizování.
Koncový čas
Čas ukončení období zřizování.
Počet zřizování
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ž hodnota Maximální hodnota agentů nakonfigurovaná v nastavení fondu.
Následující příklad konfiguruje čtyři agenty, kteří se mají používat během pracovní doby s 0 agenty během nepracovních a víkendů pomocí východního standardního času.
Pokud neznáte vzory využití a chcete se spolehnout na automatické prognózování na základě minulých dat, zvolte Automaticky. Mezi výkonem nákladů a agenta můžete vyrovnávat pomocí posuvníku s následujícími pěti možnostmi. Spravované fondy DevOps spouští dotaz za poslední tři týdny historických dat (pokud jsou k dispozici), uspořádají relace ve frontě fondu do pětiminutových období a přiřadí zadaný percentil (aby nedocházelo ke špičkám) každou hodinu.