Megosztás a következőn keresztül:


Service Fabric-alkalmazás frissítése a PowerShell használatával


A leggyakrabban használt és javasolt frissítési módszer a figyelt működés közbeni frissítés. Az Azure Service Fabric állapotszabályzatok alapján figyeli a frissítendő alkalmazás állapotát. A frissítési tartomány (UD) frissítése után a Service Fabric kiértékeli az alkalmazás állapotát, és vagy továbblép a következő frissítési tartományra, vagy az állapotszabályzatoktól függően meghiúsul a frissítés.

A figyelt alkalmazásfrissítés a felügyelt vagy natív API-k, a PowerShell, az Azure CLI, a Java vagy a REST használatával végezhető el. A Visual Studio használatával végzett frissítéssel kapcsolatos utasításokért lásd : Alkalmazás frissítése a Visual Studióval.

A Service Fabric figyelt működés közbeni frissítéseivel az alkalmazás rendszergazdája konfigurálhatja a Service Fabric által használt állapotértékelési szabályzatot annak megállapítására, hogy az alkalmazás kifogástalan állapotban van-e. Emellett a rendszergazda konfigurálhatja az állapotértékelés meghiúsulása esetén végrehajtandó műveletet (például automatikus visszaállítást hajthat végre.) Ez a szakasz végigvezeti a PowerShellt használó SDK-minták egyikének monitorozott frissítésén.

Ezen az oldalon talál egy oktatóvideót, amely egy alkalmazásfrissítésen is végigvezeti:

Feljegyzés

Az ApplicationParameter-eknem maradnak meg egy alkalmazásfrissítés során. Az aktuális alkalmazásparaméterek megőrzése érdekében a felhasználónak először le kell szereznie a paramétereket, és át kell adnia őket a frissítési API-hívásba, az alábbiakhoz hasonlóan:

$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

1. lépés: A Visual Objects-minta létrehozása és üzembe helyezése

Az alkalmazás létrehozásához és közzétételéhez kattintson a jobb gombbal az alkalmazásprojektre, a VisualObjectsApplication parancsra, és válassza a Közzététel parancsot. További információt a Service Fabric alkalmazásfrissítési oktatóanyagában talál. Másik lehetőségként a PowerShell használatával is üzembe helyezheti az alkalmazást.

Feljegyzés

Ahhoz, hogy bármelyik Service Fabric-parancsot használni lehessen a PowerShellben, először a parancsmag használatával kell csatlakoznia a Connect-ServiceFabricCluster fürthöz. Hasonlóképpen feltételezzük, hogy a fürt már be van állítva a helyi gépen. Tekintse meg a Service Fabric fejlesztői környezet beállításáról szóló cikket.

A projekt Visual Studióban való létrehozása után a Copy-ServiceFabricApplicationPackage PowerShell-paranccsal másolhatja az alkalmazáscsomagot az ImageStore-ba. Ha helyben szeretné ellenőrizni az alkalmazáscsomagot, használja a Test-ServiceFabricApplicationPackage parancsmagot. A következő lépés az alkalmazás regisztrálása a Service Fabric-futtatókörnyezetbe a Register-ServiceFabricApplicationType parancsmaggal. A következő lépés az alkalmazás egy példányának elindítása a New-ServiceFabricApplication parancsmag használatával. Ez a három lépés hasonló a Visual Studio Üzembe helyezés menüpontjának használatához. A kiépítés befejezése után törölnie kell a másolt alkalmazáscsomagot a képtárolóból a felhasznált erőforrások csökkentése érdekében. Ha egy alkalmazástípusra már nincs szükség, akkor ugyanebből az okból kell megszüntetni a regisztrációt. További információ: Alkalmazások üzembe helyezése és eltávolítása a PowerShell használatával .

Most a Service Fabric Explorerrel megtekintheti a fürtöt és az alkalmazást. Az alkalmazás rendelkezik egy webszolgáltatással, amely a címsor beírásával http://localhost:8081/visualobjects navigálható az Internet Explorerben. Látnia kell néhány lebegő vizualizációs objektumot a képernyőn. Emellett a Get-ServiceFabricApplication használatával ellenőrizheti az alkalmazás állapotát.

2. lépés: A Visual Objects minta frissítése

Észreveheti, hogy az 1. lépésben üzembe helyezett verzióval a vizualizációobjektumok nem forognak. Frissítsük az alkalmazást olyanra, ahol a vizualizációs objektumok is forognak.

Válassza ki a VisualObjects.ActorService projektet a VisualObjects-megoldásban, és nyissa meg a StatefulVisualObjectActor.cs fájlt. A fájlon belül keresse meg a metódust MoveObject, a megjegyzést this.State.Move()és a megjegyzés feloldását this.State.Move(true). Ez a módosítás a szolgáltatás frissítése után elforgatja az objektumokat.

A VisualObjects.ActorService projekt ServiceManifest.xml fájlját (a PackageRoot alatt) is frissíteni kell. Frissítse a CodePackage-t és a szolgáltatásverziót 2.0-ra, és a megfelelő sorokat a ServiceManifest.xml fájlban. Miután a jobb gombbal a megoldásra kattintott, használhatja a Visual Studio Jegyzékfájlok szerkesztése lehetőséget a jegyzékfájl módosításához.

A módosítások elvégzése után a jegyzéknek az alábbihoz hasonlóan kell kinéznie (a kiemelt részek a módosításokat mutatják):

<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">

Most a ApplicationManifest.xml fájl (a VisualObjects-megoldás alatt található VisualObjects projektben található) a VisualObjects.ActorService projekt 2.0-s verziójára frissül. Emellett az alkalmazás verziója 2.0.0.0-ra frissül az 1.0.0.0-ról. A ApplicationManifest.xml a következő kódrészlethez hasonlóan kell kinéznie:

<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" />

Most hozza létre a projektet az ActorService projekt kiválasztásával, majd kattintson a jobb gombbal a Visual Studióban a Build lehetőségre. Ha az Összes újraépítése lehetőséget választja, frissítenie kell az összes projekt verzióit, mivel a kód megváltozott volna. Ezután csomagoljuk be a frissített alkalmazást úgy, hogy a jobb gombbal a VisualObjectsApplication elemre kattintunk, kiválasztjuk a Service Fabric menüt, és kiválasztjuk a Csomag lehetőséget. Ez a művelet létrehoz egy üzembe helyezhető alkalmazáscsomagot. A frissített alkalmazás készen áll az üzembe helyezésre.

3. lépés: Az állapotszabályzatok és a frissítési paraméterek meghatározása

Ismerkedjen meg az alkalmazásfrissítési paraméterekkel és a frissítési folyamattal , hogy jobban megismerje az alkalmazott frissítési paramétereket, időtúllépéseket és állapotkritériumokat. Ebben az útmutatóban a szolgáltatásállapot-értékelési feltétel az alapértelmezett (és ajánlott) értékekre van állítva, ami azt jelenti, hogy a frissítés után minden szolgáltatásnak és példánynak kifogástalannak kell lennie.

Növeljük azonban a HealthCheckStableDuration értékét 180 másodpercre (hogy a szolgáltatások legalább 120 másodpercig kifogástalan állapotban legyenek, mielőtt a frissítés a következő frissítési tartományra lép). Állítsuk be az UpgradeDomainTimeout értékét 1200 másodpercre, az UpgradeTimeout pedig 3000 másodpercre.

Végül állítsuk be az UpgradeFailureActiont is visszaállításra. Ehhez a beállításhoz a Service Fabricnek vissza kell állítania az alkalmazást az előző verzióra, ha bármilyen probléma merül fel a frissítés során. Így a frissítés indításakor (a 4. lépésben) a következő paraméterek vannak megadva:

FailureAction = Visszaállítás

HealthCheckStableDurationSec = 180

UpgradeDomainTimeoutSec = 1200

UpgradeTimeout = 3000

4. lépés: Alkalmazás előkészítése frissítésre

Az alkalmazás most már készen áll a frissítésre. Ha rendszergazdaként megnyit egy PowerShell-ablakot, és beírja a Get-ServiceFabricApplication parancsot, tudnia kell, hogy ez az üzembe helyezett VisualObjects 1.0.0.0-s alkalmazástípusa.

Az alkalmazáscsomag a következő relatív elérési út alatt van tárolva, ahol a Service Fabric SDK-t tömöríti: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. Ebben a könyvtárban meg kell találnia egy "Csomag" mappát, amelyben az alkalmazáscsomag található. Ellenőrizze az időbélyegeket, és győződjön meg arról, hogy a legújabb buildről van szó (előfordulhat, hogy az útvonalakat is megfelelően kell módosítania).

Most másolja a frissített alkalmazáscsomagot a Service Fabric ImageStore-ba (ahol az alkalmazáscsomagokat a Service Fabric tárolja). Az ApplicationPackagePathInImageStore paraméter tájékoztatja a Service Fabricet, hogy hol találja az alkalmazáscsomagot. A frissített alkalmazást a következő paranccsal a "VisualObjects_V2" fájlba helyeztük (előfordulhat, hogy újra módosítania kell az elérési utakat).

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

A következő lépés az alkalmazás regisztrálása a Service Fabricben, amely a Register-ServiceFabricApplicationType paranccsal hajtható végre:

Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"

Ha az előző parancs nem sikerül, valószínű, hogy az összes szolgáltatás újraépítésére van szükség. A 2. lépésben leírtaknak megfelelően előfordulhat, hogy a WebService-verziót is frissítenie kell.

Javasoljuk, hogy az alkalmazás sikeres regisztrálása után távolítsa el az alkalmazáscsomagot. Az alkalmazáscsomagok lemezképtárból való törlése felszabadítja a rendszererőforrásokat. A nem használt alkalmazáscsomagok megtartása lemeztárolót használ, és az alkalmazás teljesítményével kapcsolatos problémákhoz vezet.

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

5. lépés: Az alkalmazásfrissítés indítása

Most már mind arra vagyunk beállítva, hogy elindítsuk az alkalmazásfrissítést a Start-ServiceFabricApplicationUpgrade paranccsal:

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

Az alkalmazás neve megegyezik a ApplicationManifest.xml fájlban leírt névvel. A Service Fabric ezzel a névvel azonosítja, hogy melyik alkalmazást frissítik. Ha túl rövidre állítja az időtúllépéseket, előfordulhat, hogy a problémát jelző hibaüzenet jelenik meg. Tekintse meg a hibaelhárítási szakaszt, vagy növelje az időtúllépéseket.

Most, hogy az alkalmazás frissítése folytatódik, a Service Fabric Explorerrel vagy a Get-ServiceFabricApplicationUpgrade PowerShell paranccsal figyelheti azt:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Néhány perc múlva az előző PowerShell-parancs használatával kapott állapotnak azt kell tartalmaznia, hogy az összes frissítési tartomány frissítve lett (befejeződött). És azt kell tapasztalnia, hogy a böngészőablakban lévő vizuális objektumok forogni kezdtek!

Megpróbálhatja frissíteni a 2-es verzióról a 3-as verzióra, vagy gyakorlatként a 2-es verzióról az 1-es verzióra. A 2-es verzióról az 1-es verzióra való áttérés szintén frissítésnek számít. Játsszon időtúllépésekkel és állapotszabályzatokkal, hogy megismerkedjen velük. Azure-fürtön való üzembe helyezéskor a paramétereket megfelelően kell beállítani. Érdemes konzervatív módon beállítani az időtúllépéseket.

Következő lépések

Az alkalmazás Visual Studio használatával történő frissítése végigvezeti egy alkalmazásfrissítésen a Visual Studióval.

Az alkalmazás frissítési paraméterekkel történő frissítésének szabályozása.

Az alkalmazásfrissítések kompatibilissé tételéhez ismerje meg az adat szerializálás használatát.

Speciális témakörökre hivatkozva megtudhatja, hogyan használhat speciális funkciókat az alkalmazás frissítése során.

Az alkalmazásfrissítésekkel kapcsolatos gyakori problémákat az alkalmazásfrissítések hibaelhárításának lépéseire hivatkozva háríthatja el.