Upravit

Sdílet prostřednictvím


Vytváření úloh na spotových virtuálních počítačích

Azure Virtual Machines

Tento článek popisuje osvědčené postupy pro vytváření na spotových virtuálních počítačích Azure. Zahrnuje nasaditelný ukázkový scénář. Spotové virtuální počítače (spotové virtuální počítače) poskytují přístup k výpočetní kapacitě s nižšími cenami než běžné virtuální počítače. Díky této slevě jsou vhodné pro organizace, které chtějí optimalizovat náklady. Ale úspory přicházejí s kompromisem. Spotové virtuální počítače je možné kdykoli vyřadit, což znamená, že ztratí přístup k výpočetním prostředkům. Úlohy spuštěné na spotových virtuálních počítačích musí být schopné zvládnout tato přerušení výpočetních prostředků. Správné úlohy a flexibilní mechanismus orchestrace jsou klíčem k úspěchu. Následující doporučení popisují, jak se stavět na spotových virtuálních počítačích.

Principy spotových virtuálních počítačů

Na technické úrovni jsou spotové virtuální počítače stejné jako běžné virtuální počítače. Používají stejné image, hardware a disky, které se překládají na stejný výkon. Klíčovým rozdílem mezi spotovými a běžnými virtuálními počítači je jejich priorita a dostupnost. Spotové virtuální počítače nemají žádnou prioritu pro přístup k výpočetní kapacitě a po přístupu k této výpočetní kapacitě nemají žádné záruky dostupnosti.

  • Žádný přístup s prioritou. Běžné virtuální počítače mají prioritní přístup k výpočetní kapacitě. Při žádosti o výpočetní kapacitu přistupují k výpočetní kapacitě. Spotové virtuální počítače se ale nasazují jenom v případě, že je k dispozici šetřiná výpočetní kapacita. A budou se spouštět jenom v případě, že běžný virtuální počítač nepotřebuje základní hardware.

  • Žádná záruka dostupnosti. Spotové virtuální počítače nemají žádné záruky dostupnosti ani smlouvy o úrovni služeb (SLA). Spotové virtuální počítače můžou okamžitě přijít o přístup k výpočetní kapacitě nebo kdykoli po nasazení nebo vyřazení. Spotové virtuální počítače jsou levnější, protože je možné je vyřadit. Když Azure potřebuje zpět výpočetní kapacitu, odešle se oznámení o vyřazení a vyřadí spotový virtuální počítač. Azure poskytuje oznámení o minimálním 30sekundovém předstihu před skutečným vyřazením. Další informace naleznete v tématu Průběžné monitorování vyřazení.

Vysvětlení cen spotových virtuálních počítačů

Spotové virtuální počítače můžou být až 90% levnější než běžné virtuální počítače s průběžnými platbami. Sleva se liší podle poptávky, velikosti virtuálního počítače, oblasti nasazení a operačního systému. Pokud chcete získat odhad úspor nákladů, podívejte se na cenového nástroje Azure Spot Virtual Machines a přehled cen spotových virtuálních počítačů. Můžete se také dotazovat na rozhraní API maloobchodních cen Azure, abyste programově získali spotové ceny pro libovolnou skladovou položku.

Vysvětlení přerušitelných úloh

Spotové virtuální počítače jsou ideální pro přerušitelné úlohy, které sdílejí několik společných charakteristik. Přerušitelné úlohy mají minimální až žádná časová omezení, nízkou prioritu organizace a krátkou dobu zpracování. Spouští procesy, které se najednou zastaví a obnoví později, aniž by poškodily základní organizační procesy. Příklady přerušitelných úloh jsou aplikace dávkového zpracování, analýzy dat a úlohy, které vytvářejí agenta kontinuální integrace a průběžného nasazování pro neprodukční prostředí. Tyto funkce se porovnávají s běžnými nebo kritickými úlohami, které mají smlouvy SLA, rychlé relace a stavová data.

Spotové virtuální počítače můžete použít v nerušitelných úlohách, ale neměly by to být jediný zdroj výpočetní kapacity. Používejte tolik běžných virtuálních počítačů, kolik potřebujete ke splnění požadavků na dobu provozu.

Vysvětlení vyřazení

Spotové virtuální počítače po vytvoření nemají žádné smlouvy SLA a můžou kdykoli přijít o přístup k výpočetním prostředkům. Tuto výpočetní ztrátu nazýváme vyřazení. Vyřazení výpočetní nabídky a poptávky Když poptávka po určité velikosti virtuálního počítače překročí určitou úroveň, Azure vyřadí spotové virtuální počítače, aby byly výpočetní prostředky dostupné pro běžné virtuální počítače. Poptávka je specifická pro umístění. Například zvýšení poptávky v oblasti A nemá vliv na spotové virtuální počítače v oblasti B.

Spotové virtuální počítače mají dvě možnosti konfigurace, které ovlivňují vyřazení. Tyto konfigurace jsou typ vyřazení a zásady vyřazení spotového virtuálního počítače. Tyto konfigurace nastavíte při vytváření spotového virtuálního počítače. Typ vyřazení definuje podmínky vyřazení. Zásada vyřazení určuje, co dělá vyřazení spotového virtuálního počítače.

Typ vyřazení

Změny kapacity nebo změny cen způsobují vyřazení. Způsob, jakým změny kapacity a ceny ovlivňují spotové virtuální počítače, závisí na typu vyřazení, který zvolíte při vytváření virtuálního počítače. Typ vyřazení definuje podmínky vyřazení. Typy vyřazení jsou vyřazení pouze kapacity a cenu nebo vyřazení kapacity.

  • vyřazení pouze kapacity: Tento typ vyřazení aktivuje vyřazení, pokud už není k dispozici nadbytečná výpočetní kapacita. Ve výchozím nastavení je cena omezena sazbou průběžných plateb. Tento typ vyřazení použijte, pokud nechcete platit víc než cenu za průběžné platby.

  • Cena nebo vyřazení kapacity: Tento typ vyřazení má dva triggery. Azure vyřadí spotový virtuální počítač, když už není k dispozici nadbytečná výpočetní kapacita nebo náklady na virtuální počítač překračují vámi nastavenou maximální cenu. Tento typ vyřazení umožňuje nastavit maximální cenu daleko pod cenou průběžných plateb. Tento typ vyřazení použijte k nastavení vlastního cenového limitu.

Zásady vyřazení

Zásady vyřazení, které zvolíte pro spotový virtuální počítač, ovlivní jeho orchestraci. Orchestrace je proces zpracování vyřazení a je popsán dále v tomto článku. Zásady vyřazení jsou zásad zastavení nebo zrušení přidělení a odstranění zásad .

zásady zastavení/uvolnění: Zásady zastavení/uvolnění jsou ideální, když úloha může čekat na kapacitu uvolnění v rámci stejného umístění a typu virtuálního počítače. Zásady zastavení/zrušení přidělení zastaví virtuální počítač a ukončí jeho zapůjčení základním hardwarem. Zastavení a uvolnění spotového virtuálního počítače je stejné jako zastavení a uvolnění běžného virtuálního počítače. Virtuální počítač zůstane dostupný v Azure a později můžete stejný virtuální počítač restartovat. Virtuální počítač ztratí výpočetní kapacitu a nestatické IP adresy pomocí zásad zastavení nebo zrušení přidělení. Datové disky virtuálních počítačů ale zůstanou a budou se vám účtovat poplatky. Virtuální počítač také zabírá jádra v předplatném. Virtuální počítače se nedají přesunout z oblasti ani zóny, ani když jsou zastavené nebo uvolněné. Další informace najdete v tématu stavy napájení a fakturační.

Odstranit zásadu: Použít zásadu odstranění, pokud úloha může změnit umístění nebo velikost virtuálního počítače. Změna umístění nebo velikosti virtuálního počítače umožňuje rychlejší nasazení virtuálního počítače. Zásada odstranění odstraní virtuální počítač a libovolný datový disk. Virtuální počítač nezabývá jádra v předplatných. Další informace najdete v tématu zásady vyřazení.

Návrh pro flexibilní orchestraci

Orchestrace je proces nahrazení spotového virtuálního počítače po vyřazení. Je základem pro vytvoření spolehlivě přerušitelné úlohy. Dobrý systém orchestrace má integrovanou flexibilitu. Flexibilita znamená navržení orchestrace tak, aby měla možnosti, používat více velikostí virtuálních počítačů, nasazovat do různých oblastí, mít povědomí o vyřazení a zohlednit různé scénáře vyřazení, aby se zlepšila spolehlivost a rychlost úloh.

Návrh pro rychlost

Pro úlohu, která běží na spotových virtuálních počítačích, je výpočetní kapacita zásadní. Z důvodu možného vyřazení se ujistěte, že rozumíte přidělenému výpočetnímu času, abyste mohli činit informovaná rozhodnutí o návrhu, která upřednostňují rychlost úloh. Obecně byste měli optimalizovat výpočetní čas, který máte. Vytvořte image virtuálního počítače, která má předinstalovaný veškerý požadovaný software. Předinstalovaný software pomáhá minimalizovat čas mezi vyřazením a plně funkční aplikací. Vyhněte se používání výpočetního času u procesů, které nepřispívají k účelu úlohy. Například úloha pro analýzu dat by se měla soustředit na většinu výpočetního času na zpracování dat a co nejmenší čas na shromažďování metadat vyřazení. Eliminujte žádné procesy z vaší aplikace.

Použití více velikostí a umístění virtuálních počítačů

Pokud chcete zvýšit flexibilitu, vytvořte orchestraci tak, aby používala více typů a velikostí virtuálních počítačů. Cílem je poskytnout vašim možnostem orchestrace nahradit vyřazený virtuální počítač. Azure má různé typy a velikosti virtuálních počítačů, které poskytují podobné funkce pro stejnou cenu. Vyfiltrujte minimální virtuální procesory nebo jádra, minimální paměť RAM pro virtuální počítače a maximální cenu. Tento proces vám pomůže najít několik virtuálních počítačů, které se vejdou do rozpočtu a mají dostatek energie pro spouštění úloh.

Každý typ virtuálního počítače má míru vyřazení vyjádřenou v procentech, například 0%-5%, 5%-10%, 10%-15%, 15%-20%nebo 20+%. Míra vyřazení se může lišit v různých oblastech. Možná zjistíte lepší míru vyřazení pro stejný typ virtuálního počítače v jiné oblasti. Sazby vyřazení pro každý typ virtuálního počítače najdete na portálu na kartě Základy. Vedle Velikostvyberte Zobrazit historii cen nebo Zobrazit všechny velikosti. Data spotových virtuálních počítačů můžete získat také prostřednictvím kódu programu pomocí Azure Resource Graphu.

Ve vašem systému orchestrace zvažte použití funkce skóre umístění spotů k vyhodnocení pravděpodobnosti úspěchu pro jednotlivá spotová nasazení.

Další informace najdete v následujících zdrojích informací:

Použití nejflexibilnější zásady vyřazení

Zásady vyřazení vyřazeného spotového virtuálního počítače ovlivňují proces nahrazení. Například zásada odstranění je flexibilnější než zásada zastavení nebo zrušení přidělení.

  • Nejprve zvažte zásadu odstranění: Použít zásadu odstranění, pokud ji vaše úloha zvládne. Odstranění umožňuje orchestraci nasadit náhradní spotové virtuální počítače do nových zón a oblastí. Tato flexibilita nasazení může vaší úloze pomoct rychleji najít volnou výpočetní kapacitu než zastavený nebo uvolněný virtuální počítač. Zastavené nebo uvolněné virtuální počítače musí čekat na volnou výpočetní kapacitu ve stejné zóně, ve které byly vytvořeny. Pro zásady odstranění potřebujete externí proces pro monitorování vyřazení a orchestraci nasazení do různých oblastí, použití různých skladových položek virtuálních počítačů nebo obojího.

  • porozumět zásadám zastavení nebo zrušení přidělení: zásady zastavení a zrušení přidělení mají menší flexibilitu než zásady odstranění. Spotové virtuální počítače musí zůstat ve stejné oblasti a zóně. Zastavený nebo uvolněný virtuální počítač nemůžete přesunout do jiného umístění. Vzhledem k tomu, že virtuální počítače mají pevné umístění, potřebujete něco, co je potřeba k opětovnému přidělení virtuálního počítače, jakmile bude výpočetní kapacita dostupná. Neexistuje způsob, jak předpovědět dostupnost výpočetní kapacity. Proto byste měli použít automatizovaný kanál plánu k pokusu o opětovné nasazení po vyřazení. Vyřazení by mělo aktivovat plánový kanál a pokusy o opětovné nasazení by měly nepřetržitě kontrolovat výpočetní kapacitu, dokud nebude k dispozici.

Politika Kdy použít zásadu
Odstranění zásad – dočasné výpočetní prostředky a data

- Nechcete platit za datové disky.

- Minimální rozpočet
Zastavení nebo zrušení přidělení zásad – Potřebujete konkrétní velikost virtuálního počítače.

- Nejde změnit umístění

- Dlouhý proces instalace aplikace

- Neomezená doba čekání

- Neřízených úsporou nákladů

Průběžné monitorování vyřazení

Monitorování je klíčem ke spolehlivosti úloh na spotových virtuálních počítačích. Spotové virtuální počítače nemají po vytvoření smlouvu SLA a je možné je kdykoli vyřadit. Nejlepším způsobem, jak zlepšit spolehlivost úloh na spotových virtuálních počítačích, je předvídat, kdy budou vyřazeny. Pokud máte tyto informace, můžete se pokusit o řádné vypnutí úloh a aktivovat automatizaci pro orchestraci nahrazení.

  • použít naplánované události: pro každý virtuální počítač použijte službu Naplánované události. Azure odesílá virtuálním počítačům signály, když je údržba infrastruktury ovlivní. Vyřazení se kvalifikují jako údržba infrastruktury. Azure odešle signál Preempt všem virtuálním počítačům minimálně 30 sekund, než se vyřadí. Služba Naplánované události umožňuje zachytit tento Preempt signál dotazováním koncového bodu na statické nesměrovatelné IP adrese 169.254.169.254.

  • Používejte časté dotazy: dotazování koncového bodu naplánovaných událostí často k orchestraci řádného vypnutí. Koncový bod naplánovaných událostí můžete dotazovat až každou sekundu, ale pro všechny případy použití nemusí být nutná jedna sekunda. Tyto dotazy musí pocházet z aplikace, která běží na spotovém virtuálním počítači. Dotaz nemůže pocházet z externího zdroje. V důsledku toho dotazy spotřebovávají výpočetní kapacitu virtuálního počítače a ukradnou výpočetní výkon z hlavní úlohy. Abyste splnili svoji konkrétní situaci, musíte tyto konkurenční priority vyvážit.

  • Automatizace orchestrace: Jakmile shromáždíte signál Preempt, měla by orchestrace na tento signál reagovat. Vzhledem k časovým omezením by se signál Preempt měl pokusit o řádné vypnutí úlohy a spustit automatizovaný proces, který nahradí spotový virtuální počítač. Další informace najdete v následujících zdrojích informací:

Sestavení systému nasazení

Orchestrace potřebuje automatizovaný kanál k nasazení nových spotových virtuálních počítačů po vyřazení. Kanál by měl běžet mimo přerušovatelnou úlohu, aby se zajistila trvalost. Kanál nasazení by měl fungovat podle zásad vyřazení, které zvolíte pro spotové virtuální počítače.

Pro zásady odstranění doporučujeme vytvořit kanál, který používá různé velikosti virtuálních počítačů a nasazuje do různých oblastí. Pro zásady zastavení nebo zrušení přidělení potřebuje kanál nasazení dvě odlišné akce. Pro počáteční vytvoření virtuálního počítače musí kanál nasadit správné velikosti virtuálních počítačů do správného umístění. U vyřazeného virtuálního počítače se kanál musí pokusit restartovat virtuální počítač, dokud nebude fungovat. Kombinace upozornění služby Azure Monitor a funkcí Azure je jedním ze způsobů, jak automatizovat systém nasazení. Kanál může používat šablony bicep. Jsou deklarativní a idempotentní a představují osvědčený postup pro nasazení infrastruktury.

Příprava na okamžité vyřazení

Azure může vyřadit spotový virtuální počítač hned po jeho vytvoření a před spuštěním úloh. V některých případech může existovat dostatek kapacity k vytvoření spotového virtuálního počítače, ale nebude to trvat. Spotové virtuální počítače po vytvoření nemají žádné záruky dostupnosti ani smlouvy SLA. Vaše orchestrace musí počítat s okamžitým vyřazením. Signál Preempt poskytuje oznámení o vyřazení minimálně 30 sekund předem.

Začleňte do orchestrace kontroly stavu virtuálního počítače, abyste se připravili na okamžité vyřazení. Orchestrace okamžitého vyřazení nemůže záviset na naplánovaných událostech Preempt signálu. Pouze samotný virtuální počítač se může dotazovat na Preempt signál a není dostatek času na spuštění aplikace, dotazování koncového bodu Naplánované události a řádné vypnutí. Kontrola stavu se proto musí nacházet mimo prostředí úloh. Kontroly stavu musí monitorovat stav spotového virtuálního počítače a spustit kanál nasazení, který nahradí spotový virtuální počítač, když se stav změní na zrušení přidělení nebo zastavení.

Plánování několika souběžných vyřazení

Pokud spustíte cluster spotových virtuálních počítačů, vytvořte úlohu tak, aby vydržela několik souběžných vyřazení. Několik spotových virtuálních počítačů v úloze je možné současně vyřadit. Souběžné vyřazení několika virtuálních počítačů může ovlivnit propustnost aplikace. Aby se této situaci zabránilo, kanál nasazení by měl být schopný shromáždit signály z několika virtuálních počítačů a současně nasadit několik náhradních virtuálních počítačů.

Návrh pro řádné vypnutí

Proces vypnutí virtuálního počítače by měl být kratší než 30 sekund a před vyřazením by se měl virtuální počítač vypnout. Doba trvání vypnutí závisí na tom, jak často se vaše úloha dotazuje na koncový bod Naplánované události. Čím častěji se dotazujete na koncový bod, tím déle může proces vypnutí trvat. Proces vypnutí by měl uvolnit prostředky, vyprázdnění připojení a vyprázdnění protokolů událostí. Měli byste pravidelně vytvářet a ukládat kontrolní body, abyste zachovali kontext a vytvořili efektivnější strategii obnovení. Kontrolní bod je jen informace o tom, jaké procesy nebo transakce musí další virtuální počítač začít. Měly by indikovat, jestli by měl virtuální počítač pokračovat tam, kde předchozí virtuální počítač skončil, nebo jestli by se měl nový virtuální počítač vrátit zpět a spustit celý proces znovu. Kontrolní body uložte mimo prostředí spotového virtuálního počítače, například v účtu úložiště.

Otestování orchestrace

Simulujte události vyřazení pro testování orchestrace v vývojových/testovacích prostředích. Další informace naleznete v tématu Simulace vyřazení.

Návrh idempotentní úlohy

Doporučujeme navrhnout idempotentní úlohu. Výsledek zpracování události více než jednou by měl být stejný jako zpracování jednou. Vyřazení může vést k vynuceným vypnutím, a to i přes úsilí o zajištění řádného vypnutí. Vynucené vypnutí může ukončit procesy před dokončením. Idempotentní úlohy můžou přijímat stejnou zprávu vícekrát beze změny výsledku. Další informace najdete v tématu idempotence.

Použití období zahřátí aplikace

Většina přerušitelných úloh spouští aplikace. Aplikace potřebují čas na instalaci a spuštění. Potřebují také čas připojit se k externímu úložišti a shromažďovat informace z kontrolních bodů. Před zahájením zpracování nechte aplikaci dobu zahřátí. Během období zahřívání by se aplikace měla spustit, navázat připojení a připravit se na přispívání. Povolit aplikaci spustit zpracování dat pouze po ověření stavu aplikace.

diagram životního cyklu úloh s obdobím zahřátí aplikace

Konfigurace spravovaných identit přiřazených uživatelem

Přiřaďte spravované identity přiřazené uživatelem, abyste zjednodušili proces ověřování a autorizace. Spravované identity přiřazené uživatelem umožňují vyhnout se vkládání přihlašovacích údajů do kódu a nejsou svázané s jedním prostředkem, jako jsou spravované identity přiřazené systémem. Spravované identity přiřazené uživatelem obsahují oprávnění a přístupové tokeny z ID Microsoft Entra, které je možné během orchestrace znovu použít a přiřadit k spotovým virtuálním počítačům. Konzistence tokenů napříč spotovými virtuálními počítači pomáhá zjednodušit orchestraci a zjednodušuje přístup k prostředkům úloh, které spotové virtuální počítače mají.

Pokud používáte spravované identity přiřazené systémem, může nový spotový virtuální počítač získat jiný přístupový token od Microsoft Entra ID. Pokud potřebujete použít spravované identity přiřazené systémem, vytvořte úlohy odolné vůči 403 Forbidden Error odpovědí. Vaše orchestrace potřebuje získat tokeny z ID Microsoft Entra se správnými oprávněními. Další informace najdete v tématu spravované identity.

Ukázkový scénář

Ukázkový scénář nasadí aplikaci pro zpracování fronty, která se kvalifikuje jako přerušitelná úloha. Skripty ve scénáři slouží jako příklady. Scénář vás provede jednorázovým ručním nasdílením nasazení prostředků. Tato implementace nemá kanál nasazení. Kanál nasazení je však nezbytný k automatizaci procesu orchestrace. Následující diagram znázorňuje architekturu ukázkového scénáře.

Diagram znázorňující ukázku architektury scénáře

Stáhnout soubor Visia této architektury.

Následující pracovní postup odpovídá předchozímu diagramu:

  1. definici aplikace virtuálního počítače: Definice aplikace virtuálního počítače se vytvoří v galerii výpočetních prostředků Azure. Definuje název aplikace, umístění, operační systém a metadata. Verze aplikace je čísloovaná verze definice aplikace virtuálního počítače. Verze aplikace představuje aplikaci virtuálního počítače. Musí být ve stejné oblasti jako spotové virtuální počítače. Verze aplikace odkazuje na zdrojový balíček aplikace v účtu úložiště.

  2. Účet úložiště: Účet úložiště ukládá balíček zdrojové aplikace. V této architektuře se jedná o komprimovaný soubor tar s názvem worker-0.1.0.tar.gz. Obsahuje dva soubory. Jedním souborem je orchestrate.sh skript Bash, který nainstaluje pracovní aplikaci .NET.

  3. spotového virtuálního počítače: nasadí spotové virtuální počítače. Musí být ve stejné oblasti jako verze aplikace. Stáhne worker-0.1.0.tar.gz do virtuálního počítače po nasazení. Šablona bicep nasadí image Ubuntu na standardní rodinný virtuální počítač. Tyto konfigurace splňují potřeby této aplikace a nejsou obecnými doporučeními pro vaše aplikace.

  4. Fronta úložiště: druhá služba, která běží v pracovním procesu .NET, obsahuje logiku fronty zpráv. Id Microsoft Entra uděluje spotovým virtuálním počítačům přístup k frontě úložiště ve službě Azure Queue Storage s identitou přiřazenou uživatelem pomocí řízení přístupu na základě role.

  5. pracovní aplikaci .NET: Skript orchestrate.sh nainstaluje pracovní aplikaci .NET, která spouští dvě služby na pozadí. První služba se dotazuje koncového bodu Naplánované události, vyhledá Preempt signál a odešle tento signál druhé službě. Druhá služba zpracovává zprávy z fronty úložiště a naslouchá Preempt signálu z první služby. Když druhá služba obdrží signál, přeruší zpracování fronty úložiště a začne se vypínat.

  6. koncový bod naplánovaných událostí dotazu: požadavek rozhraní API se odešle na statickou nesměrovatelnou IP adresu 169.254.169.254. Požadavek rozhraní API se dotazuje koncového bodu naplánovaných událostí na signály údržby infrastruktury.

  7. Application Insights: Architektura používá Application Insights jenom pro účely výuky. Nejedná se o základní součást orchestrace přerušitelných úloh, ale umožňuje ověřit telemetrii z pracovní aplikace .NET. Pracovní aplikace .NET odesílá telemetrii do Application Insights. Další informace najdete v tématu Povolení živých metrik z aplikace .NET.

Nasazení tohoto scénáře

logo GitHubu existuje úložiště GitHub označované jako přerušitelné úlohy na místě, které obsahují šablony, skripty a podrobné pokyny k nasazení této architektury.

Další krok