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.
Pomocí této aplikace se naučíte:
- Vytvoření aplikace pomocí .NET a Service Fabric
- Použití ASP.NET jádra jako webového front-endu
- Ukládání dat aplikace do stavové služby
- Místní ladění aplikace
- Horizontální navýšení kapacity aplikace 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:
Nainstalujte Visual Studio 2019 s úlohami vývoje pro Azure a ASP.NET a vývoje webů.
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, sad SDK, nástrojů sady Visual Studio, 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, aby se cluster vytvořil s povolenými funkcemi kontejneru. Pokud Docker není spuštěný, budete muset cluster vytvořit znovu, abyste povolili funkce kontejneru.
I když pro tento konkrétní rychlý start není nutné, je jako osvědčený postup zahrnuta instrukce, aby byl 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.
Jako správce otevřete nové okno PowerShellu se zvýšenými oprávněními.
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"
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 k vašim službám připojit ladicí program, musíte spustit Visual Studio jako správce.
Otevřete řešení sady Visual Studio Voting.sln z úložiště, které jste naklonovali.
Ve výchozím nastavení aplikace Voting 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ě výstupu sady Visual Studio se zobrazí zpráva "Adresa URL aplikace není nastavená nebo není adresa URL PROTOKOLU HTTP/HTTPS, takže prohlížeč nebude otevřen pro aplikaci.". Tato zpráva neoznačuje chybu, ale prohlížeč se automaticky nespustí.
Po dokončení nasazení spusťte prohlížeč a otevřete http://localhost:8080
ho, aby se zobrazil webový 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.
Když v aplikaci hlasujete, dojde k následujícím událostem:
JavaScript odešle požadavek s hlasem do webového rozhraní API ve webové front-end službě jako požadavek HTTP PUT.
Webová front-end služba pomocí proxy vyhledá požadavek HTTP PUT a přesměruje ho do back-end služby.
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 sadě Visual Studio používáte místní vývojový cluster Service Fabric. Možnosti ladění můžete upravit podle svého scénáře. 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í relacemi, otevřete vlastnosti projektu hlasování 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:
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.
Otevřete soubor /VotingData/Controllers/VoteDataController.cs a nastavte zarážku v metodě Put tohoto webového rozhraní API (řádek 54).
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 na kontroler webového rozhraní API ve front-end službě.
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).
Pokračujte stisknutím 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 v bodu přerušení back-endové služby.
Na prvním řádku v metodě (1)
StateManager
načte nebo přidá spolehlivý slovníkcounts
.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á.
Pokračujte stisknutím 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ě:
Otevřete v sadě Visual Studio soubor /VotingWeb/Views/Home/Index.cshtml.
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.
Uložte soubor.
V Průzkumníku řešení klikněte pravým tlačítkem na Voting a zvolte Publikovat. Zobrazí se dialogové okno Publikovat.
Klikněte na tlačítko Verze manifestu a změňte verzi služby a aplikace.
Změňte například verzi elementu Kód v části VotingWebPkg na 2.0.0 a klikněte na Uložit.
V dialogovém okně Publikovat aplikaci Service Fabric zaškrtněte políčko Upgradovat aplikaci.
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.
Vyberte Upgradovat aplikaci.
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.
Otevřete prohlížeč a přejděte na adresu clusteru na portu 19080. Například
http://localhost:19080/
.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ě.
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 jádra jako webového front-endu
- Ukládání dat aplikace do stavové služby
- Místní ladění aplikace
- Horizontální navýšení kapacity aplikace napříč několika uzly
- Provedení upgradu aplikace se zajištěním provozu
Další informace o Service Fabric a .NET najdete v tomto kurzu: