Styl architektury web-fronta-pracovní proces

Základními součástmi této architektury jsou webový front-end, který zpracovává požadavky klientů, a pracovní proces, který provádí úlohy náročné na prostředky, dlouhotrvající pracovní postupy nebo dávkové úlohy. Webový front-end komunikuje s pracovním procesem prostřednictvím fronty zpráv.

Logický diagram stylu architektury Web-Fronta-Pracovní proces

Mezi ostatní komponenty, které jsou běžně součástí této architektury, patří:

  • Jedna nebo více databází
  • Mezipaměť pro ukládání hodnot z databáze pro jejich rychlé načítání
  • Síť CDN pro obsluhu statického obsahu
  • Vzdálené služby, jako je e-mail nebo služba SMS. Tyto služby jsou často poskytovány třetími stranami.
  • Zprostředkovatel identity pro ověřování

Web i pracovní proces jsou bezstavové. Stav relace může být ukládán v distribuované mezipaměti. Veškeré dlouhotrvající pracovní postupy provádí asynchronně pracovní proces. Pracovní proces může být aktivován zprávou ve frontě, nebo může být spouštěn podle plánu pro dávkové zpracování. Pracovní proces je volitelná součást. Pokud nemáte žádné dlouhotrvající operace, můžete pracovní proces vynechat.

Front-end může obsahovat webové rozhraní API. Na straně klienta může webové rozhraní API využívat jednostránková aplikace, která bude provádět volání jazyka AJAX, nebo nativní klientská aplikace.

Kdy použít tuto architekturu

Architektura web-fronta-pracovní proces se obvykle implementuje pomocí spravované výpočetní služby – Azure App Service, nebo Azure Cloud Services.

Zvažte použití tohoto stylu architektury v následujících situacích:

  • Aplikace s poměrně jednoduchou doménou.
  • Aplikace s dlouhotrvajícími pracovními postupy nebo dávkovými operacemi.
  • Když chcete dát přednost spravovaným službám před infrastrukturou jako službou (IaaS).

Výhody

  • Relativně jednoduchá architektura, snadná na pochopení
  • Snadné nasazení a správa
  • Jasně oddělené oblasti zájmu
  • Front-end oddělený od pracovního procesu pomocí asynchronního zasílání zpráv
  • Možnost nezávislého škálování front-endu a pracovního procesu

Výzvy

  • Bez uvážlivého přístupu k návrhu se z front-endu a pracovního procesu můžou stát velké, monolitické komponenty, které se obtížně spravují a aktualizují.
  • Pokud front-end a pracovní proces sdílejí schémata dat nebo moduly kódu, může takový návrh obsahovat skryté závislosti.

Osvědčené postupy

Architektura web-fronta-pracovní proces ve službě Azure App Service

Tato část obsahuje doporučení pro architekturu web-fronta-pracovní proces, která používá službu Azure App Service.

Fyzický diagram stylu architektury Web-Fronta-pracovní proces

  • Front-end je implementován jako Azure App Service aplikace a pracovní proces je implementován jako Azure Functions aplikace. Webová aplikace i aplikace funkcí jsou přidružené k plánu App Service, který poskytuje instance virtuálních počítače.

  • Jako frontu zpráv můžete použít buď frontu Azure Service Bus, nebo frontu Azure Storage. (Diagram znázorňuje frontu Azure Storage.)

  • Azure Cache for Redis ukládá stav relace a další data, která potřebují přístup s nízkou latencí.

  • Azure CDN slouží k ukládání statického obsahu, jako jsou obrázky, šablony stylů CSS nebo soubory HTML, do mezipaměti.

  • Pro ukládání zvolte takovou technologii úložiště, která nejlépe vyhovuje potřebám vaší aplikace. Můžete používat i více technologií úložišť (polyglot persistence). Diagram pro ilustraci znázorňuje Azure SQL Database a Azure Cosmos DB.

Další podrobnosti najdete v tématu Referenční architektura pro webové aplikace App Service.

Další aspekty

  • Ne každá transakce k uložení musí projít přes frontu a pracovní proces. Webový front-end může jednoduché operace čtení a zápisu provádět přímo. Pracovní procesy jsou navržené pro úlohy náročné na prostředky nebo dlouhotrvající pracovní postupy. V některých případech nemusíte pracovní proces vůbec potřebovat.

  • Pomocí integrované funkce automatického škálování služby App Service můžete škálovat počet instancí virtuálních počítačů. Pokud lze zatížení aplikace předvídat, použijte automatické škálování na základě plánu. Pokud předvídat nelze, použijte pro automatické škálování pravidla založená na metrice.

  • Zvažte umístění webové aplikace a aplikace funkcí do samostatných App Service plány. Tímto způsobem je lze škálovat nezávisle.

  • Pro produkci a testování používejte odlišné plány služby App Service. Pokud pro ně budete používat stejný plán, poběží testy na produkčních virtuálních počítačích.

  • Používejte nasazovací sloty pro správu nasazení. Díky nim můžete nasadit aktualizovanou verzi do přípravného slotu a pak přepnout na novou verzi. Navíc pokud nastanou potíže s aktualizací, můžete přejít zpět na předchozí verzi.