Sdílet prostřednictvím


Spolehlivost ve službě Azure Stream Analytics

Azure Stream Analytics je vysoce odolná služba, která zpracovává a analyzuje streamovaná data z více zdrojů současně. Stream Analytics poskytuje informace, které můžete použít k vytváření složitých kanálů zpracování událostí pomocí dotazů podobných SQL.

Při používání Azure je spolehlivost sdílenou odpovědností. Microsoft nabízí celou řadu možností, které podporují odolnost a obnovení. Zodpovídáte za pochopení toho, jak tyto možnosti fungují ve všech službách, které používáte, a výběrem možností, které potřebujete ke splnění vašich obchodních cílů a cílů dostupnosti.

Tento článek popisuje, jak je Stream Analytics odolný vůči potenciálním problémům, jako jsou přechodné chyby a výpadky zón dostupnosti. Poskytuje pokyny k ochraně kritických úloh před výpadky oblastí a údržbou služeb. Zvýrazňuje také klíčové informace o smlouvě o úrovni služeb (SLA) Stream Analytics.

Důležité

Zvýšení odolnosti samotné služby Stream Analytics může mít omezený účinek, pokud ostatní komponenty nejsou stejně odolné. Zvažte spolehlivost zdrojů dat, včetně vstupů a výstupů. V závislosti na požadavcích na odolnost možná budete muset provést změny konfigurace v několika oblastech.

Doporučení pro nasazení do produkčního prostředí

Pokud chcete zajistit vysokou spolehlivost v produkčních prostředích, která používají Stream Analytics, doporučujeme provést následující akce:

  • Používejte oblasti, které podporují zóny dostupnosti. Nasaďte úlohy streamování a další prostředky v oblastech, které podporují zóny dostupnosti.
  • Nasaďte dostatečnou kapacitu. Nastavte jednotky streamování (SU) na základě očekávané propustnosti a další kapacity pro zpracování zatížení ve špičce. Přidejte rezervu nad základní požadavky, abyste zvládli náhlé nárůsty.
  • Monitorování stavu Implementujte komplexní monitorování pomocí metrik a diagnostických protokolů služby Azure Monitor ke sledování stavu úloh, vstupních a výstupních událostí a využití prostředků. Nastavte upozornění na kritické metriky, jako jsou zpoždění vodoznaku a chyby za běhu, abyste zjistili problémy předtím, než ovlivní zpracování dat. Další informace najdete v tématu Monitorování Stream Analytics.
  • Implementujte redundanci více oblastí pro klíčové úlohy. Nasaďte stejné úlohy Stream Analytics napříč několika oblastmi. Replikujte jejich konfigurace a zajistěte vhodné směrování dat pro dosažení regionální odolnosti. Stream Analytics neposkytuje nativní replikaci ve více oblastech, ale tento přístup umožňuje přepnutí při selhání a kontinuitu. Další informace najdete v tématu Vlastní řešení pro více oblastí pro odolnost.

Přehled architektury spolehlivosti

Tato část popisuje některé důležité aspekty fungování služby, které jsou z hlediska spolehlivosti nejrelevantní. Tato část představuje logickou architekturu, která obsahuje některé prostředky a funkce, které nasazujete a používáte. Popisuje také fyzickou architekturu, která poskytuje podrobnosti o tom, jak služba funguje v zákulisí.

Logická architektura

Úloha je základní jednotka Stream Analytics, která umožňuje definovat a spustit logiku zpracování datových proudů. Úloha se skládá z následujících hlavních komponent:

  • Vstupy , které čtou streamovaná data ze zdrojů dat, jako jsou Azure Event Hubs, Azure IoT Hub nebo Azure Storage.
  • Dotaz, který zpracovává a transformuje data.
  • Výstupy , které průběžně zapisují výsledky do různých cílů, jako jsou Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB a Power BI.

Další informace najdete v tématu Model prostředků Stream Analytics.

Fyzická architektura

Stream Analytics dosahuje vysoké spolehlivosti použitím několika vrstev odolnosti pro zmírnění problémů v podkladové infrastruktuře a vstupních a výstupních zdrojích dat. Následující komponenty pomáhají zajistit, aby vaše úlohy běžely robustně:

  • Pracovní uzly: Úlohy Stream Analytics běží v rámci clusteru. Virtuální počítače v rámci clusteru se označují jako pracovní uzly. Pokud používáte skladové položky Standard nebo Standard V2, vaše úlohy se spouštějí ve sdílených clusterech. Když použijete skladovou položku Dedicated, vaše úlohy běží na vlastním vyhrazeném clusteru.

    Platforma automaticky spravuje vytváření pracovních uzlů, umísťování úloh mezi pracovními uzly, monitorování stavu a náhradu pracovních uzlů, které nejsou v pořádku, takže virtuální počítače nevidíte ani nespravujete přímo.

  • Sus: SU představují výpočetní prostředky, které spouští úlohu. Čím vyšší je počet jednotek SU, tím více výpočetních prostředků se pro úlohu přidělí. Platforma spravuje pracovní uzly a distribuci úloh napříč pracovními uzly, ale zodpovídáte za přidělování SU úlohám. Další informace najdete v tématu Vysvětlení a úprava SU Stream Analytics.

  • Kontrolní body: Stream Analytics udržuje stav úlohy prostřednictvím pravidelného kontrolního bodu stavu. Kontrolní body pomáhají neúspěšným úlohám rychle obnovit s minimálním opětovným zpracováním dat, a to i pro úlohy, které používají logiku stavového dotazu.

    Když dojde k selhání zpracování, Stream Analytics se automaticky restartuje z posledního kontrolního bodu a znovu zpracuje události, které během zpracování selžou. Tato záruka se vztahuje na všechny předdefinované funkce a uživatelem definované funkce v rámci úlohy. Dosažení komplexního, přesně jednoho doručení ale závisí na možnostech cíle výstupu. Další informace najdete v tématu Koncepty kontrolního bodu a opětovného spuštění v úlohách Stream Analytics.

Poznámka:

Pomocí Stream Analytics ve službě IoT Edge můžete spouštět úlohy ve vlastní infrastruktuře. Když používáte Stream Analytics na IoT Edge, zodpovídáte za jeho nastavení tak, aby splňoval vaše požadavky na spolehlivost. Stream Analytics ve službě IoT Edge je mimo rozsah tohoto článku.

Odolnost proti přechodným chybám

Přechodné chyby jsou krátká, přerušovaná selhání ve složkách. V distribuovaném prostředí, jako je cloud, se vyskytují často a jsou normální součástí provozu. Přechodné chyby se opravují po krátké době. Je důležité, aby vaše aplikace mohly zpracovávat přechodné chyby, obvykle opakováním ovlivněných požadavků.

Všechny aplikace hostované v cloudu by měly při komunikaci se všemi cloudovými rozhraními API, databázemi a dalšími komponentami postupovat podle pokynů pro zpracování přechodných chyb Azure. Další informace najdete v tématu Doporučení pro zpracování přechodných chyb.

Stream Analytics automaticky zpracovává mnoho přechodných chyb, když ingestuje data ze vstupů a zapisuje data do výstupů pomocí integrovaných mechanismů opakování. Po restartování pracovního uzlu nebo opětovném přiřazení úlohy úloha použije kontrolní body k přehrání všech událostí, které nebyly plně zpracovány, a pokračuje ve zpracování, dokud nedosáhne aktuálního vstupního datového proudu.

Je vhodné nastavit zásady chyb výstupu. Tyto zásady se ale vztahují pouze na chyby převodu dat a nemění způsob, jakým Stream Analytics zpracovává přechodné chyby.

Odolnost proti chybám zóny dostupnosti

Zóny dostupnosti jsou fyzicky oddělené skupiny datacenter v rámci oblasti Azure. Když jedna zóna selže, mohou služby přejít na jednu ze zbývajících zón.

Stream Analytics je automaticky zónově redundantní v oblastech, které podporují zóny dostupnosti, což znamená, že úlohy používají více zón dostupnosti. Redundance zón zajišťuje, že vaše úloha zůstane odolná vůči široké škále selhání, včetně katastrofických výpadků datacentra, bez jakýchkoli změn logiky aplikace.

Když vytvoříte úlohu Stream Analytics v oblasti s povolenou zónou, služba distribuuje výpočetní prostředky vaší úlohy do několika zón dostupnosti.

Diagram znázorňující zónově redundantní úlohu Stream Analytics

Tento zónově redundantní model nasazení zajišťuje, že úlohy streamování budou dál zpracovávat data, i když bude celá zóna dostupnosti nedostupná. Následující diagram například ukazuje, jak úlohy pokračují v běhu, pokud dojde k výpadku zóny 3.

Diagram znázorňující zónově redundantní úlohu Stream Analytics, která se bude dál spouštět, když je zóna mimo provoz

Redundance zón se vztahuje na všechny funkce Stream Analytics, včetně zpracování dotazů, kontrolních bodů a úloh správy úloh. Stream Analytics automaticky replikuje data stavu a kontrolního bodu vaší úlohy napříč zónami dostupnosti, což brání ztrátě dat a snižuje výpadky během selhání zóny.

Požadavky

  • Podpora oblastí: Redundance zón pro prostředky Stream Analytics se podporuje v libovolné oblasti, která podporuje zóny dostupnosti. Úplný seznam oblastí, které podporují zóny dostupnosti, najdete v seznamu oblastí Azure.
  • Požadavky na skladovou položku: Redundance zón je dostupná ve všech SKU Stream Analytics.

Náklady

Za redundanci zón ve Stream Analytics se neúčtují další poplatky. Platíte stejnou sazbu za SUs bez ohledu na to, jestli se vaše úloha spouští v zónově redundantní konfiguraci nebo v nezónově redundantní konfiguraci. Další informace najdete v tématu o cenách Stream Analytics.

Konfigurujte podporu zón dostupnosti

Chování, když jsou všechny zóny v pořádku

Tato část popisuje, co očekávat, když jsou úlohy Stream Analytics zónově redundantní a všechny zóny dostupnosti jsou funkční.

  • Směrování provozu mezi zónami: Stream Analytics spouští každou úlohu na pracovních uzlech. Pracovníci v libovolné zóně můžou zpracovávat příchozí streamovaná data. Služba používá k distribuci úloh zpracování napříč zónami interní vyrovnávání zatížení.

  • Replikace dat mezi zónami: Stream Analytics replikuje data stavu úlohy a kontrolního bodu synchronně napříč zónami dostupnosti. Když úloha zpracovává události a aktualizuje svůj stav, Stream Analytics tyto změny zapíše do několika zón dostupnosti, než je potvrdí. Tato synchronní replikace zajišťuje nulovou ztrátu dat, i když bude celá zóna nedostupná. Proces replikace je pro vaši aplikaci transparentní a nemá vliv na latenci zpracování za normálních podmínek.

Chování při selhání zóny

Tato část popisuje, co očekávat, když jsou úlohy Stream Analytics zónově redundantní a dojde k výpadku zóny dostupnosti.

  • Detekce a odpověď: Platforma Stream Analytics zodpovídá za detekci selhání v zóně dostupnosti a odpovídá na ni. Stream Analytics označí pracovníky v zónách, které selhaly, jako nezdravé, a automaticky redistribuuje úkoly pracovníkům ve zbývajících zdravých zónách. Nemusíte dělat nic, abyste zahájili převzetí zóny.
  • Aktivní požadavky: Stream Analytics přesouvá spuštěné úlohy do jiného pracovního uzlu ve zdravé zóně dostupnosti.

    Stream Analytics používá kontrolní body k zachování stavu zpracování. Během selhání zóny pracovníci v zónách, které jsou v pořádku, automaticky přebírají a znovu zpracovávají úlohy spuštěné v selhalé zóně od posledního kontrolního bodu.

  • Očekávaná ztráta dat: Systém kontrolních bodů úloh zajistí, že nedojde ke ztrátě dat.

  • Očekávaný výpadek: Probíhající úlohy se automaticky obnoví, jakmile je platforma přesune do pracovního procesu, který je v pořádku.

  • Přesměrování provozu: Služba automaticky přesměruje všechna nová data na pracovníky v zónách, které jsou v pořádku. Stávající připojení ze vstupních zdrojů se znovu navazují s pracovníky v provozních zónách. Připojení výstupu jsou podobně znovu obnovena, což zajišťuje nepřetržitý tok dat přes kanál streamování.

Obnovení zóny

Po obnovení zóny dostupnosti, která selhala, Stream Analytics ji automaticky znovu integruje do aktivního zpracovatelského souboru. Úlohy začnou používat obnovenou infrastrukturu.

Neprovedete žádnou akci pro obnovení zóny. Platforma zpracovává všechny úlohy obnovení zóny, včetně replikace stavu a redistribuce úloh.

Testování poruch zón

Platforma Stream Analytics spravuje směrování provozu, převzetí služeb při selhání a obnovení zóny, takže není nutné zahajovat ani ověřovat procesy selhání v zónách dostupnosti.

Odolnost proti selháním v celé oblasti

Stream Analytics nasadí prostředky do jedné oblasti Azure. Pokud se oblast stane nedostupnou, vaše úlohy (a vyhrazené clustery, pokud jsou k dispozici) jsou také nedostupné.

Vlastní řešení pro více regionů pro odolnost systémů

Pokud chcete dosáhnout odolnosti více oblastí pro úlohy streamování, zvažte nasazení samostatných úloh ve více oblastech. Při tomto přístupu zodpovídáte za nasazení a správu úloh a za nastavení vhodných strategií směrování dat a replikace. Úlohy Stream Analytics jsou dvě samostatné entity. Je zodpovědností vaší aplikace posílat vstupní data do místních vstupů a odsouhlasit regionální výstupy. Další informace najdete v tématu Dosažení geografické redundance pro úlohy Stream Analytics.

Zálohování a obnovování

Stream Analytics nemá integrovanou funkci zálohování a obnovení.

Pokud chcete přesunout, zkopírovat nebo zálohovat definici a konfiguraci úloh, můžete pomocí rozšíření Stream Analytics pro Visual Studio Code exportovat existující úlohu v cloudu Azure do místního počítače. Po uložení celé konfigurace úloh Stream Analytics místně ji můžete nasadit do stejné oblasti nebo jiné oblasti Azure. Další informace najdete v tématu Kopírování, zálohování a přesouvání úloh Stream Analytics.

Odolnost vůči údržbě služeb

Stream Analytics provádí automatickou údržbu platformy pro aplikaci aktualizací zabezpečení, nasazení nových funkcí a zlepšení spolehlivosti služeb. Může nasazovat aktualizace služeb týdně nebo častěji. Stream Analytics testuje všechny nové aktualizace, aby se zajistila vysoká kvalita.

Zvažte následující body, abyste měli jistotu, že vaše úlohy jsou odolné vůči aktivitám údržby služeb:

  • Nastavte úlohy tak, aby byly odolné proti přehrání. Stream Analytics obvykle používá kontrolní body k obnovení dat po údržbě služby. Někdy ale potřebuje místo toho použít techniku přehrávání. Vstupní zdroje dat je potřeba nastavit tak, aby opakované přehrávání nezpůsobily nesprávné nebo částečné výsledky ve výstupu. Další informace najdete v tématu Obnovení úlohy z upgradu služby.

  • Zvažte zmírnění rizika chyb nasazením stejných úloh. Služba aktivně vyhledává signály po nasazení každé dávky a kontroluje, jestli nasazení zavádí chyby. Bez ohledu na to, kolik testujete, může existující probíhající úloha selhat, když údržba představuje problém. Pokud spouštíte klíčové úlohy, proveďte kroky ke zmírnění tohoto rizika.

    Riziko chyby ovlivňující vaši úlohu můžete snížit nasazením stejných úloh do dvou oblastí Azure. Monitorujte tyto úlohy , abyste dostávali oznámení, když dojde k něčemu neočekávanému. Pokud jedna z těchto úloh po aktualizaci služby Stream Analytics přejde do stavu selhání , proveďte následující akce:

    • Obraťte se na podporu Azure a požádejte o pomoc s identifikací příčiny a řešením problému.
    • Přesměrujte jakékoliv downstream spotřebitele k použití zdravého výstupu úkolu.

    Když vyberete oblasti Azure, které se mají použít pro sekundární úlohu, zvažte, jestli má vaše oblast spárovanou oblast. Seznam oblastí Azure obsahuje nejaktuálnější informace o tom, které oblasti jsou spárované. Stream Analytics zaručuje, že se infrastruktura ve spárovaných oblastech aktualizuje v různých časech. Aktualizace Stream Analytics se nenasazují současně v sadě spárovaných oblastí. Mezi aktualizacemi existuje dostatečná časová mezera k identifikaci a řešení potenciálních problémů.

Smlouva o úrovni služeb

Smlouva o úrovni služeb (SLA) pro služby Azure popisuje očekávanou dostupnost každé služby a podmínky, které musí vaše řešení splnit, aby bylo dosaženo očekávané dostupnosti. Další informace najdete v tématu Smlouvy SLA pro online služby.

Stream Analytics poskytuje samostatné SLA dostupnosti pro volání API pro správu úloh a pro provoz úloh.