Upgrade aplikace Service Fabric pomocí PowerShellu


Nejčastěji používaným a doporučeným přístupem k upgradu je monitorovaný průběžný upgrade. Azure Service Fabric monitoruje stav upgradované aplikace na základě sady zásad stavu. Po upgradu aktualizační domény Service Fabric vyhodnotí stav aplikace a buď přistoupí k další aktualizační doméně, nebo upgrade selže v závislosti na zásadách stavu.

Monitorovaný upgrade aplikace je možné provést pomocí spravovaných nebo nativních rozhraní API, PowerShellu, Azure CLI, Javy nebo REST. Pokyny k provedení upgradu pomocí sady Visual Studio najdete v tématu Upgrade aplikace pomocí sady Visual Studio.

S monitorovanými upgrady Service Fabric se zajištěním provozu může správce aplikace nakonfigurovat zásady vyhodnocení stavu, které Service Fabric používá k určení, jestli je aplikace v pořádku. Kromě toho může správce nakonfigurovat akci, která se má provést při selhání vyhodnocení stavu (například automatické vrácení zpět). Tato část vás provede monitorovaným upgradem jedné z ukázek sady SDK, která používá PowerShell.

Na této stránce najdete školicí video, které vás také provede upgradem aplikace:

Poznámka

Parametry ApplicationParameterse v rámci upgradu aplikace nezachovají. Aby bylo možné zachovat aktuální parametry aplikace, měl by uživatel nejprve získat parametry a předat je do volání rozhraní API pro upgrade, jak je uvedeno níže:

$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters

$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{
    $applicationParameterMap.Add($pair.Name, $pair.Value);
}

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback

Krok 1: Sestavení a nasazení ukázky vizuálních objektů

Sestavte a publikujte aplikaci kliknutím pravým tlačítkem na projekt aplikace VisualObjectsApplication a výběrem příkazu Publikovat . Další informace najdete v kurzu upgradu aplikací Service Fabric. Případně můžete k nasazení aplikace použít PowerShell.

Poznámka

Před použitím některého z příkazů Service Fabric v PowerShellu je nejprve potřeba připojit se ke clusteru pomocí rutiny Connect-ServiceFabricCluster . Podobně se předpokládá, že cluster už byl na místním počítači nastavený. Přečtěte si článek o nastavení vývojového prostředí Service Fabric.

Po sestavení projektu v sadě Visual Studio můžete pomocí příkazu Prostředí PowerShell Copy-ServiceFabricApplicationPackage zkopírovat balíček aplikace do imageStore. Pokud chcete balíček aplikace ověřit místně, použijte rutinu Test-ServiceFabricApplicationPackage . Dalším krokem je registrace aplikace do modulu runtime Service Fabric pomocí rutiny Register-ServiceFabricApplicationType . Následujícím krokem je spuštění instance aplikace pomocí rutiny New-ServiceFabricApplication . Tyto tři kroky jsou obdobou použití položky nabídky Deploy (Nasadit ) v sadě Visual Studio. Po dokončení zřizování byste měli vyčistit zkopírovaný balíček aplikace z úložiště imagí, abyste snížili spotřebované prostředky. Pokud se už typ aplikace nevyžaduje, měla by se registrace zrušit ze stejného důvodu. Další informace najdete v tématu Nasazení a odebrání aplikací pomocí PowerShellu .

Teď můžete použít Service Fabric Explorer k zobrazení clusteru a aplikace. Aplikace má webovou službu, na kterou lze přejít v Internet Exploreru zadáním http://localhost:8081/visualobjects do panelu Adresa. Na obrazovce by se měly pohybovat plovoucí vizuální objekty. Kromě toho můžete pomocí rutiny Get-ServiceFabricApplication zkontrolovat stav aplikace.

Krok 2: Aktualizace ukázky vizuálních objektů

Můžete si všimnout, že s verzí nasazenou v kroku 1 se objekty vizuálu neotáčí. Pojďme upgradovat tuto aplikaci na aplikaci, ve které se také obměňují objekty vizuálu.

V řešení VisualObjects vyberte projekt VisualObjects.ActorService a otevřete soubor StatefulVisualObjectActor.cs. V daném souboru přejděte na metodu MoveObject, okomentujte this.State.Move()a zrušte this.State.Move(true)komentář . Tato změna objekty po upgradu služby otočí.

Musíme také aktualizovat souborServiceManifest.xml (v části PackageRoot) projektu VisualObjects.ActorService. Aktualizujte CodePackage a verzi služby na verzi 2.0 a odpovídající řádky v souboruServiceManifest.xml . Po kliknutí pravým tlačítkem na řešení můžete použít možnost Upravit soubory manifestu sady Visual Studio a provést změny v souboru manifestu.

Po provedení změn by měl manifest vypadat takto (zvýrazněné části zobrazují změny):

<ServiceManifestName="VisualObjects.ActorService" Version="2.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">

<CodePackageName="Code" Version="2.0">

Nyní se souborApplicationManifest.xml (který se nachází v projektu VisualObjects v řešení VisualObjects ) aktualizován na verzi 2.0 projektu VisualObjects.ActorService . Kromě toho se verze aplikace aktualizuje na 2.0.0.0 z verze 1.0.0.0. ApplicationManifest.xml by měl vypadat jako v následujícím fragmentu kódu:

<ApplicationManifestxmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VisualObjects" ApplicationTypeVersion="2.0.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">

 <ServiceManifestRefServiceManifestName="VisualObjects.ActorService" ServiceManifestVersion="2.0" />

Teď sestavte projekt tak, že vyberete jenom projekt ActorService a potom kliknete pravým tlačítkem a vyberete možnost Sestavit v sadě Visual Studio. Pokud vyberete Znovu sestavit vše, měli byste aktualizovat verze pro všechny projekty, protože kód by se změnil. Dále zabalme aktualizovanou aplikaci tak, že kliknete pravým tlačítkem na VisualObjectsApplication, vybereme nabídku Service Fabric a zvolíme Balíček. Tato akce vytvoří balíček aplikace, který lze nasadit. Vaše aktualizovaná aplikace je připravená k nasazení.

Krok 3: Rozhodnutí o zásadách stavu a parametrech upgradu

Seznamte se s parametry upgradu aplikace a procesem upgradu , abyste dobře porozuměli různým parametrům upgradu, časovým limitům a použitým kritériím stavu. V tomto návodu je kritérium vyhodnocení stavu služby nastavené na výchozí (a doporučené) hodnoty, což znamená, že všechny služby a instance by měly být po upgradu v pořádku .

Pojďme ale zvýšit hodnotu HealthCheckStableDuration na 180 sekund (aby služby byly v pořádku alespoň po dobu 120 sekund, než upgrade přejde na další aktualizační doménu). Pojďme také nastavit UpgradeDomainTimeout na 1200 sekund a UpgradeTimeout na 3000 sekund.

Nakonec nastavíme také UpgradeFailureAction na vrácení zpět. Tato možnost vyžaduje, aby Služba Service Fabric vrátila aplikaci zpět k předchozí verzi, pokud během upgradu narazí na nějaké problémy. Proto se při spuštění upgradu (v kroku 4) zadají následující parametry:

FailureAction = Vrácení zpět

HealthCheckStableDurationSec = 180

UpgradeDomainTimeoutSec = 1200

UpgradeTimeout = 3000

Krok 4: Příprava aplikace na upgrade

Teď je aplikace sestavená a připravená k upgradu. Pokud otevřete okno PowerShellu jako správce a zadáte Get-ServiceFabricApplication, mělo by vás upozornit, že se jedná o typ aplikace 1.0.0.0 nasazených objektů VisualObjects .

Balíček aplikace je uložen v následující relativní cestě, kde jste dekomprimovali sadu Service Fabric SDK: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. V adresáři, ve kterém je balíček aplikace uložený, byste měli najít složku Package. Zkontrolujte časová razítka a ujistěte se, že se jedná o nejnovější build (možná budete muset také odpovídajícím způsobem upravit cesty).

Teď zkopírujeme aktualizovaný balíček aplikace do Service Fabric ImageStore (kde jsou balíčky aplikací uložené službou Service Fabric). Parametr ApplicationPackagePathInImageStore informuje Service Fabric, kde může najít balíček aplikace. Aktualizovanou aplikaci jsme umístili do "VisualObjects_V2" pomocí následujícího příkazu (možná budete muset znovu odpovídajícím způsobem upravit cesty).

Copy-ServiceFabricApplicationPackage -ApplicationPackagePath .\Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug\Package -ApplicationPackagePathInImageStore "VisualObjects\_V2"

Dalším krokem je registrace této aplikace ve službě Service Fabric, která se dá provést pomocí příkazu Register-ServiceFabricApplicationType :

Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"

Pokud předchozí příkaz nebude úspěšný, je pravděpodobné, že budete potřebovat znovu sestavit všechny služby. Jak je uvedeno v kroku 2, možná budete muset aktualizovat i verzi webové služby.

Po úspěšné registraci aplikace doporučujeme balíček aplikace odebrat. Odstranění balíčků aplikací z úložiště imagí uvolní systémové prostředky. Udržování nepoužívaných balíčků aplikací spotřebovává diskové úložiště a vede k problémům s výkonem aplikací.

Remove-ServiceFabricApplicationPackage -ApplicationPackagePathInImageStore "VisualObjects\_V2" -ImageStoreConnectionString fabric:ImageStore

Krok 5: Spuštění upgradu aplikace

Teď jsme všichni připraveni spustit upgrade aplikace pomocí příkazu Start-ServiceFabricApplicationUpgrade :

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/VisualObjects -ApplicationTypeVersion 2.0.0.0 -HealthCheckStableDurationSec 60 -UpgradeDomainTimeoutSec 1200 -UpgradeTimeout 3000   -FailureAction Rollback -Monitored

Název aplikace je stejný jako v souboruApplicationManifest.xml . Service Fabric používá tento název k identifikaci aplikace, která se upgraduje. Pokud nastavíte příliš krátké časové limity, může se zobrazit zpráva o chybě, která uvádí problém. Projděte si část pro řešení potíží nebo prodlužte časové limity.

Když teď probíhá upgrade aplikace, můžete ji monitorovat pomocí Service Fabric Explorer nebo pomocí příkazu PowerShellu Get-ServiceFabricApplicationUpgrade:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Během několika minut by měl stav, který jste získali pomocí předchozího příkazu PowerShellu, uvádět, že všechny aktualizační domény byly upgradovány (dokončeny). A měli byste zjistit, že vizuální objekty v okně prohlížeče se začaly otáčet!

Jako cvičení můžete zkusit upgradovat z verze 2 na verzi 3 nebo z verze 2 na verzi 1. Přechod z verze 2 na verzi 1 se také považuje za upgrade. Hrajte si s časovými limity a zásadami stavu, abyste se s nimi seznámili. Při nasazování do clusteru Azure je potřeba správně nastavit parametry. Je dobré nastavit časové limity konzervativně.

Další kroky

Upgrade aplikace pomocí sady Visual Studio vás provede upgradem aplikace pomocí sady Visual Studio.

Pomocí parametrů upgradu můžete řídit, jak se vaše aplikace upgraduje.

Zajistěte kompatibilitu upgradů aplikací tím, že se naučíte používat serializaci dat.

Informace o používání pokročilých funkcí při upgradu aplikace najdete v pokročilých tématech.

Při řešení běžných problémů s upgrady aplikací se podívejte na postup v tématu Řešení potíží s upgrady aplikací.