Rychlý start: Nasazení aplikace spolehlivých služeb v .NET do Service Fabric

Azure Service Fabric je platforma distribuovaných systémů pro nasazování a správu škálovatelných a spolehlivých mikroslužeb a kontejnerů.

Tento rychlý start ukazuje, jak nasadit první aplikaci .NET do Service Fabric. Až budete hotovi, budete mít hlasovací aplikaci s webovým front-endem v ASP.NET Core, která ukládá výsledky hlasování do stavové back-end služby v clusteru.

Snímek obrazovky aplikace

Pomocí této aplikace se naučíte:

  • Vytvoření aplikace pomocí .NET a Service Fabric
  • Použití ASP.NET core jako webového front-endu
  • Ukládání dat aplikace do stavové služby
  • Místní ladění aplikace
  • Škálování aplikace na více instancí napříč několika uzly
  • Provedení upgradu aplikace se zajištěním provozu

Požadavky

K provedení kroků v tomto kurzu Rychlý start je potřeba:

  1. Nainstalujte Visual Studio 2019 pomocí úloh vývoj pro Azure a ASP.NET a vývoje pro web.

  2. Nainstalovat Git.

  3. Instalace sady Microsoft Azure Service Fabric SDK

  4. Spusťte následující příkaz a povolte sadě Visual Studio nasazování do místního clusteru Service Fabric:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

Sestavení clusteru

Po instalaci modulu runtime, sady SDK, Visual Studio nástrojů, Dockeru a spuštění Dockeru vytvořte místní vývojový cluster s pěti uzly.

Poznámka

Důvodem spuštění Dockeru při vytváření clusteru je to, že se cluster vytvoří s povolenými funkcemi kontejneru. Pokud Docker není spuštěný, budete muset cluster znovu vytvořit, abyste umožnili funkce kontejneru. Přestože pro tento konkrétní rychlý start není nutné, je jako osvědčený postup zahrnuta instrukce, aby měl Docker spuštěný při vytváření clusteru. Zkontrolujte, že je Dockeru spuštěný, otevřením okna terminálu a zadáním příkazu docker ps, abyste viděli, jestli došlo k chybě. Pokud odpověď neindikuje chybu, Docker je spuštěný a vy jste připravení vytvořit cluster.

Nastavení Windows 10 nebo Windows Server pro kontejnery

  1. Jako správce otevřete nové okno PowerShellu se zvýšenými oprávněními.

  2. Vývojový cluster vytvoříte spuštěním následujícího příkazu PowerShellu:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    
  3. Spuštěním následujícího příkazu spusťte nástroj správce místního clusteru:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager\ServiceFabricLocalClusterManager.exe"
    

Poznámka

Ukázková aplikace v tomto rychlém startu používá funkce, které nejsou dostupné v systému Windows 7.

Stažení ukázky

V příkazovém okně naklonujte spuštěním následujícího příkazu úložiště ukázkové aplikace do místního počítače.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Aplikaci spustíte místně.

Klikněte pravým tlačítkem na ikonu sady Visual Studio v nabídce Start a zvolte Spustit jako správce. Pokud chcete ke službám připojit ladicí program, musíte ho Visual Studio jako správce.

Otevřete řešení sady Visual Studio Voting.sln z úložiště, které jste naklonovali.

Hlasovací aplikace ve výchozím nastavení naslouchá na portu 8080. Port aplikace je nastavený v souboru /VotingWeb/PackageRoot/ServiceManifest.xml. Port aplikace můžete změnit aktualizací atributu Port elementu Endpoint. Pokud chcete aplikaci nasadit a spustit místně, port aplikace musí být otevřený a dostupný na vašem počítači. Pokud změníte port aplikace, nahraďte novou hodnotu portu aplikace 8080 v celém tomto článku.

Pokud chcete aplikaci nasadit, stiskněte F5.

Poznámka

V okně Visual Studio se zobrazí zpráva Adresa URL aplikace není nastavená nebo není nastavená adresa URL protokolu HTTP/HTTPS, takže prohlížeč se v aplikaci neotevře. Tato zpráva neznačí chybu, pouze informuje, že se prohlížeč nespustí automaticky.

Po dokončení nasazení spusťte prohlížeč a otevřete ho, abyste http://localhost:8080 si prohlédněte webový front-end aplikace.

Front-end aplikace

Teď můžete přidat sadu možností hlasování a začít přijímat hlasy. Aplikace je spuštěná a ukládá veškerá data v clusteru Service Fabric, aniž by potřebovala samostatnou databázi.

Prohlídka ukázkové hlasovací aplikace

Hlasovací aplikace se skládá ze dvou služeb:

  • Webová front-end služba (VotingWeb) – Webová front-end služba v ASP.NET, která obsluhuje webovou stránku a zveřejňuje webová rozhraní API pro komunikaci s back-end službou.
  • Back-end služba (VotingData) – Webová služba v ASP.NET Core, která zveřejňuje rozhraní API pro ukládání výsledků hlasování do spolehlivého slovníku trvale uloženého na disku.

Diagram aplikace

Při hlasování v aplikaci dojde k následujícím událostem:

  1. JavaScript odešle požadavek s hlasem do webového rozhraní API ve webové front-end službě jako požadavek HTTP PUT.

  2. Webová front-end služba pomocí proxy vyhledá požadavek HTTP PUT a přesměruje ho do back-end služby.

  3. Back-end služba přijme příchozí požadavek a uloží aktualizované výsledky do spolehlivého slovníku, který se replikuje do několika uzlů v rámci clusteru a trvale se uloží na disku. Veškerá data aplikace se ukládají v clusteru, takže není potřeba žádná databáze.

Ladění v sadě Visual Studio

Aplikace by měla být spuštěná bez problémů, ale pomocí ladicího programu se můžete podívat, jak fungují klíčové části aplikace. Při ladění aplikace v Visual Studio, používáte místní cluster Service Fabric vývojový cluster. Prostředí ladění můžete přizpůsobit vašemu scénáři. V této aplikaci se data ukládají v back-end službě s použitím spolehlivého slovníku. Sada Visual Studio ve výchozím nastavení odebere aplikaci při zastavení ladicího programu. Odebrání aplikace způsobí i odebrání dat v back-end službě. Pokud chcete zachovat data mezi ladicími relacemi, otevřete Vlastnosti projektu Voting a změňte Režim ladění aplikace na Automatický upgrade.

Pokud se chcete podívat, co se děje v kódu, proveďte následující kroky:

  1. Otevřete soubor /VotingWeb/Controllers/VotesController.cs a nastavte zarážku v metodě Put webového rozhraní API (řádek 69) – Soubor můžete vyhledat v Průzkumníku řešení v sadě Visual Studio.

  2. Otevřete soubor /VotingData/Controllers/VoteDataController.cs a nastavte zarážku v metodě Put tohoto webového rozhraní API (řádek 54).

  3. Vraťte se do prohlížeče a klikněte na některou možnost hlasování nebo přidejte novou. Dostanete se k první zarážce v kontroleru rozhraní API webového front-endu.

    • V tomto kroku JavaScript v prohlížeči odešle požadavek do kontroleru webového rozhraní API ve front-end službě.

      Front-end služba pro přidání hlasu

    • Nejprve se vytvoří adresa URL k ReverseProxy pro back-end službu (1).

    • Pak se do ReverseProxy odešle požadavek HTTP PUT (2).

    • Nakonec se do klienta vrátí odpověď z back-end služby (3).

  4. Pokračujte stisknutím klávesy F5.

    • Po zobrazení výzvy v prohlížeči udělte skupině ServiceFabricAllowedUsers oprávnění ke čtení a provádění v režimu ladění.

    • Teď jste na zalomení back-endové služby.

      Back-end služba pro přidání hlasu

    • Na prvním řádku v metodě (1)StateManager načte nebo přidá spolehlivý slovník counts.

    • Všechny interakce s hodnotami ve spolehlivém slovníku vyžadují transakci. Tuto transakci vytvoří tento příkaz using (2).

    • V transakci se pro možnost hlasování aktualizuje hodnota příslušného klíče a potvrdí se operace (3). Jakmile se vrátí metoda potvrzení, data ve slovníku se aktualizují a replikují do dalších uzlů v clusteru. Data jsou teď bezpečně uložená v clusteru a v případě selhání back-end služby ji můžou převzít ostatní uzly, aby data byla i nadále dostupná.

  5. Pokračujte stisknutím klávesy F5.

Pokud chcete zastavit ladicí relaci, stiskněte Shift + F5.

Provedení upgradu aplikace se zajištěním provozu

Když do aplikace nasazujete nové aktualizace, Service Fabric je bezpečným způsobem zavádí postupně. Upgrady se zajištěním provozu zajišťují upgradování bez výpadků a také automatické vrácení zpět v případě, že dojde k chybě.

Pokud chcete upgradovat aplikaci, postupujte následovně:

  1. Otevřete v sadě Visual Studio soubor /VotingWeb/Views/Home/Index.cshtml.

  2. Změňte nadpis na stránce přidáním nebo aktualizací textu. Nadpis můžete změnit například na Ukázková hlasovací aplikace Service Fabric v2.

  3. Soubor uložte.

  4. V Průzkumníku řešení klikněte pravým tlačítkem na Voting a zvolte Publikovat. Zobrazí se dialogové okno Publikovat.

  5. Klikněte na tlačítko Verze manifestu a změňte verzi služby a aplikace.

  6. Změňte například verzi elementu Kód v části VotingWebPkg na 2.0.0 a klikněte na Uložit.

    Dialogové okno pro změnu verze

  7. v dialogovém okně publikovat Service Fabric aplikaci zaškrtněte políčko upgradovat aplikaci.

  8. Změňte cílový profil na PublishProfiles\Local.5Node.xml a ujistěte se, že je koncový bod připojení nastavený na místní cluster.

  9. Vyberte možnost upgradovat aplikaci.

    Dialogové okno pro publikování – nastavení upgradu

  10. Klikněte na Publikovat.

    V průběhu upgradu můžete aplikaci dál používat. Vzhledem k tomu, že v clusteru máte spuštěné dvě instance služby, můžou některé požadavky přicházet do upgradované verze aplikace, zatímco jiné můžou stále přicházet do staré verze.

  11. Otevřete prohlížeč a přejděte na adresu clusteru na portu 19080. Například, http://localhost:19080/.

  12. Ve stromovém zobrazení klikněte na uzel Aplikace a pak na Probíhající upgrady v pravém podokně. Zobrazí se postupné zavádění upgradu napříč upgradovacími doménami ve vašem clusteru. U každé domény se nejprve ověří, jestli je v pořádku, a pak se přejde k další. Po ověření stavu domény se upgradovací doména v indikátoru průběhu zobrazí zeleně. Zobrazení upgradu v Service Fabric Exploreru

    Service Fabric zajišťuje bezpečné upgrady tím, že po upgradu služby na každém uzlu v clusteru dvě minuty počká. Počítejte s tím, že úplná aktualizace bude trvat přibližně osm minut.

Další kroky

V tomto rychlém startu jste se naučili:

  • Vytvoření aplikace pomocí .NET a Service Fabric
  • použití ASP.NET core jako webového front-endu
  • Ukládání dat aplikace do stavové služby
  • Místní ladění aplikace
  • Škálování aplikace na více instancí napříč několika uzly
  • Provedení upgradu aplikace se zajištěním provozu

Další informace o Service Fabric a .NET najdete v tomto kurzu: