Service Fabric-alkalmazások életciklusa
Más platformokhoz hasonlóan az Azure Service Fabricben futó alkalmazások általában a következő fázisokon mennek keresztül: tervezés, fejlesztés, tesztelés, üzembe helyezés, frissítés, karbantartás és eltávolítás. A Service Fabric első osztályú támogatást nyújt a felhőalkalmazások teljes alkalmazás-életciklusához, a fejlesztéstől kezdve az üzembe helyezésen, a napi felügyeleten és a karbantartáson át a végleges leszerelésig. A szolgáltatásmodell lehetővé teszi, hogy több különböző szerepkör egymástól függetlenül részt vegyen az alkalmazás életciklusában. Ez a cikk áttekintést nyújt az API-król, valamint arról, hogyan használják őket a különböző szerepkörök a Service Fabric-alkalmazás életciklusának szakaszaiban.
Fontos
A Service Fabrichez két parancssori felületi eszközt lehet használni. Az Azure CLI-vel kezelhetők az Azure-erőforrások, például az Azure-ban tárolt Service Fabric-fürtök. A Service Fabric parancssori felületével közvetlenül a Service Fabric-fürthöz kapcsolódva lehet kezelni a fürtöt, az alkalmazásokat és a szolgáltatásokat (függetlenül attól, hogy a fürt hol található).
Szolgáltatásmodell-szerepkörök
A szolgáltatásmodell-szerepkörök a következők:
- Szolgáltatásfejlesztő: Moduláris és általános szolgáltatásokat fejleszt, amelyek több, azonos vagy különböző típusú alkalmazásban is felhasználhatók. Például egy üzenetsor-szolgáltatás használható jegykezelő alkalmazás (segélyszolgálat) vagy e-kereskedelmi alkalmazás (bevásárlókocsi) létrehozásához.
- Alkalmazásfejlesztő: Alkalmazásokat hoz létre szolgáltatások egy gyűjteményének integrálásával bizonyos konkrét követelmények vagy forgatókönyvek kielégítése érdekében. Egy e-kereskedelmi webhely például integrálhatja a "JSON Stateless Front-End Service", az "Auction Stateful Service" és a "Queue Stateful Service" szolgáltatást egy aukciós megoldás létrehozásához.
- Alkalmazásadminisztrátor: Döntéseket hoz az alkalmazás konfigurációjával (a konfigurációs sablon paramétereinek kitöltésével), az üzembe helyezéssel (a rendelkezésre álló erőforrásokhoz való hozzárendeléssel) és a szolgáltatás minőségével kapcsolatban. Például az alkalmazás rendszergazdája dönti el az alkalmazás nyelvi területi beállítását (például az angol nyelvet a Egyesült Államok vagy a japán nyelvet Japánban). Egy másik üzembe helyezett alkalmazásnak különböző beállításai lehetnek.
- Operátor: Az alkalmazásokat az alkalmazás rendszergazdája által megadott alkalmazáskonfiguráció és követelmények alapján helyezi üzembe. Egy operátor például kiépítheti és üzembe helyezi az alkalmazást, és biztosítja, hogy az Azure-ban fusson. Az operátorok figyelik az alkalmazás állapotával és teljesítményével kapcsolatos információkat, és szükség szerint fenntartják a fizikai infrastruktúrát.
Fejlesztés
- A szolgáltatásfejlesztők különböző típusú szolgáltatásokat fejlesztenek a Reliable Actors vagy a Reliable Services programozási modell használatával.
- A szolgáltatásfejlesztők deklaratív módon írják le a kifejlesztett szolgáltatástípusokat egy vagy több kódból, konfigurációból és adatcsomagból álló szolgáltatásjegyzék-fájlban.
- Az alkalmazásfejlesztők ezután különböző szolgáltatástípusokkal építenek fel alkalmazásokat.
- Az alkalmazásfejlesztők deklaratív módon írják le az alkalmazástípust az alkalmazásjegyzékben az alkotó szolgáltatások szolgáltatásjegyzékére való hivatkozással, valamint a rendszerösszetevő szolgáltatások különböző konfigurációs és üzembehelyezési beállításainak megfelelő felülírásával és paraméterezésével.
Példákért tekintse meg a Reliable Actors használatának első lépéseit és a Reliable Services használatának első lépéseit ismertető cikket.
Üzembe helyezés
- Az alkalmazásadminisztrátor az alkalmazástípust egy adott alkalmazásra szabja, amelyet egy Service Fabric-fürtön kell üzembe helyezni az alkalmazásjegyzék ApplicationType elemének megfelelő paramétereinek megadásával.
- Az operátor a CopyApplicationPackage metódussal vagy a Copy-ServiceFabricApplicationPackage parancsmaggal tölti fel az alkalmazáscsomagot a fürt lemezképtárolójába. Az alkalmazáscsomag tartalmazza az alkalmazásjegyzéket és a szolgáltatáscsomagok gyűjteményét. A Service Fabric alkalmazásokat helyez üzembe a rendszerképtárban tárolt alkalmazáscsomagból, amely lehet azure blobtároló vagy Service Fabric rendszerszolgáltatás.
- Az operátor ezután kiépít egy alkalmazástípust a célfürtben a feltöltött alkalmazáscsomagból a ProvisionApplicationAsync metódussal, a Register-ServiceFabricApplicationType parancsmaggal vagy az Alkalmazás REST-jének kiépítése művelettel.
- Az alkalmazás kiépítése után egy operátor elindítja az alkalmazást az alkalmazás rendszergazdája által a CreateApplicationAsync metódussal, a New-ServiceFabricApplication parancsmaggal vagy az Alkalmazás létrehozása REST művelettel megadott paraméterekkel.
- Az alkalmazás üzembe helyezése után az operátor a CreateServiceAsync metódust, a New-ServiceFabricService parancsmagot vagy a Szolgáltatás létrehozása REST-műveletet használja az alkalmazás új szolgáltatáspéldányainak létrehozásához az elérhető szolgáltatástípusok alapján.
- Az alkalmazás most már fut a Service Fabric-fürtben.
Példákért lásd: Alkalmazás üzembe helyezése .
Tesztelés
- A helyi fejlesztési fürtön vagy tesztfürtön való üzembe helyezést követően a szolgáltatásfejlesztő futtatja a beépített feladatátvételi tesztforgatókönyvet a FailoverTestScenarioParameters és a FailoverTestScenario osztály vagy az Invoke-ServiceFabricFailoverTestScenario parancsmag használatával. A feladatátvételi teszt forgatókönyve egy adott szolgáltatást futtat fontos áttűnéseken és feladatátvételeken keresztül annak biztosítása érdekében, hogy az továbbra is elérhető és működőképes legyen.
- A szolgáltatásfejlesztő ezután futtatja a beépített káosztesztelési forgatókönyvet a ChaosTestScenarioParameters és a ChaosTestScenario osztály vagy az Invoke-ServiceFabricChaosTestScenario parancsmag használatával. A káosztesztelési forgatókönyv véletlenszerűen több csomópontot, kódcsomagot és replikahibát okoz a fürtben.
- A szolgáltatásfejlesztőa szolgáltatások közötti kommunikációt olyan tesztforgatókönyvek készítésével teszteli, amelyek az elsődleges replikákat a fürt köré helyezik át.
További információ : Bevezetés a hibaelemzési szolgáltatás használatába.
Frissítés
- A szolgáltatásfejlesztő frissíti a példányosított alkalmazás rendszerösszetevő szolgáltatásait, és/vagy kijavítja a hibákat, és a szolgáltatásjegyzék új verzióját biztosítja.
- Az alkalmazásfejlesztő felülbírálja és paraméterezi a konzisztens szolgáltatások konfigurációs és üzembehelyezési beállításait, és az alkalmazásjegyzék új verzióját biztosítja. Az alkalmazásfejlesztő ezután beépíti a szolgáltatásjegyzékek új verzióit az alkalmazásba, és egy frissített alkalmazáscsomagban biztosítja az alkalmazástípus új verzióját.
- Az alkalmazásadminisztrátor a megfelelő paraméterek frissítésével beépíti az alkalmazástípus új verzióját a célalkalmazásba.
- Egy operátor feltölti a frissített alkalmazáscsomagot a fürt lemezképtárolójába a CopyApplicationPackage metódussal vagy a Copy-ServiceFabricApplicationPackage parancsmaggal. Az alkalmazáscsomag tartalmazza az alkalmazásjegyzéket és a szolgáltatáscsomagok gyűjteményét.
- Az operátor az alkalmazás új verzióját a célfürtben a ProvisionApplicationAsync metódus, a Register-ServiceFabricApplicationType parancsmag vagy az Alkalmazás REST-kiépítése művelettel építi ki.
- Az operátor az UpgradeApplicationAsync metódus, a Start-ServiceFabricApplicationUpgrade parancsmag vagy az Alkalmazás REST-frissítése művelettel frissíti a célalkalmazást az új verzióra.
- Az operátor a GetApplicationUpgradeProgressAsync metódussal, a Get-ServiceFabricApplicationUpgrade parancsmaggal vagy az Alkalmazásfrissítési folyamat lekérése REST művelettel ellenőrzi a frissítés előrehaladását.
- Szükség esetén az operátor módosítja és újra alkalmazza az aktuális alkalmazásfrissítés paramétereit az UpdateApplicationUpgradeAsync metódus, az Update-ServiceFabricApplicationUpgrade parancsmag vagy az Alkalmazásfrissítés REST-műveletének használatával.
- Szükség esetén az operátor visszaállítja az aktuális alkalmazásfrissítést a RollbackApplicationUpgradeAsync metódussal, a Start-ServiceFabricApplicationRollback parancsmaggal vagy az Alkalmazásfrissítés visszaállítása REST-művelettel.
- A Service Fabric anélkül frissíti a fürtön futó célalkalmazást, hogy elveszítené a hozzá tartozó szolgáltatások rendelkezésre állását.
Példákért tekintse meg az alkalmazásfrissítési oktatóanyagot .
Karbantartás
- Az operációs rendszer frissítéséhez és javításához a Service Fabric-interfészek az Azure-infrastruktúrával garantálják a fürtben futó összes alkalmazás rendelkezésre állását.
- A Service Fabric platform frissítései és javításai esetén a Service Fabric anélkül frissíti magát, hogy elveszítené a fürtön futó alkalmazások rendelkezésre állását.
- Az alkalmazásadminisztrátor jóváhagyja a csomópontok hozzáadását vagy eltávolítását egy fürtből a korábbi kapacitáskihasználtsági adatok és a várható jövőbeli igények elemzése után.
- Az operátor hozzáadja és eltávolítja az alkalmazásadminisztrátor által megadott csomópontokat.
- Amikor új csomópontokat ad hozzá a fürthöz, vagy eltávolítja a meglévő csomópontokat a fürtből, a Service Fabric automatikusan betölti a futó alkalmazásokat a fürt összes csomópontja között az optimális teljesítmény elérése érdekében.
Eltávolítás
- Az operátorok törölhetik a fürt egy futó szolgáltatásának egy adott példányát anélkül, hogy eltávolítanák a teljes alkalmazást a DeleteServiceAsync metódus, a Remove-ServiceFabricService parancsmag vagy a Szolgáltatás törlése REST művelettel.
- Az operátorok törölhetik az alkalmazáspéldányokat és annak összes szolgáltatását a DeleteApplicationAsync metódussal, a Remove-ServiceFabricApplication parancsmaggal vagy az Alkalmazás törlése REST művelettel.
- Miután az alkalmazás és a szolgáltatások leálltak, az operátor megszüntetheti az alkalmazástípus leépítését az UnprovisionApplicationAsync metódussal, a Unregister-ServiceFabricApplicationType parancsmaggal vagy az Alkalmazás REST-műveletének megszüntetésével. Az alkalmazástípus leépítésének megszüntetése nem távolítja el az alkalmazáscsomagot az ImageStore-ból.
- Egy operátor eltávolítja az alkalmazáscsomagot az ImageStore-ból a RemoveApplicationPackage metódussal vagy a Remove-ServiceFabricApplicationPackage parancsmaggal.
Példákért lásd: Alkalmazás üzembe helyezése .
Lemezterület megőrzése a fürt lemezképtárolójában
Az ImageStoreService megőrzi a másolt és kiépített csomagokat, ami fájlok felhalmozódásához vezethet. A fájlok felhalmozódása miatt az ImageStoreService (fabric:/System/ImageStoreService) kitölti a lemezt, és növelheti az ImageStoreService replikák buildelési idejét.
A fájlok felhalmozódásának elkerülése érdekében használja a következő kiépítési sorozatot:
Csomag másolása az ImageStore-ba, és használja a tömörítési lehetőséget
A csomag kiépítése
A csomag eltávolítása a képtárolóból
Az alkalmazás/fürt frissítése
A régi verzió leépítésének megszüntetése
A fenti eljárás 3. és 5. lépése megakadályozza a fájlok felhalmozódását a képtárolóban.
Automatikus törlés konfigurálása
A fenti 3. lépést automatizálhatja a PowerShell vagy AZ XML használatával. Ez azt eredményezi, hogy az alkalmazáscsomag automatikusan törlődik az alkalmazástípus sikeres regisztrációja után.
Register-ServiceFabricApplicationTye -ApplicationPackageCleanupPolicy Automatic
XML:
<Section Name="Management">
<Parameter Name="CleanupApplicationPackageOnProvisionSuccess" Value="True" />
</Section>
A fenti 5. lépést xml használatával automatizálhatja. Ez azt eredményezi, hogy a nem használt alkalmazástípusok regisztrációja automatikusan megszűnik.
<Section Name="Management">
<Parameter Name="CleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="PeriodicCleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="TriggerAppTypeCleanupOnProvisionSuccess" Value="true" />
<Parameter Name="MaxUnusedAppTypeVersionsToKeep" Value="3" />
</Section>
Fájlok és adatok törlése csomópontokon
Az alkalmazásfájlok replikálása végül az összes csomópontra osztja el a fájlokat a kiegyensúlyozási műveletektől függően. Ez lemezterhelést okozhat az alkalmazások számától és a fájlméretüktől függően. Még ha egy csomóponton sem fut aktív példány, a rendszer megőrzi a korábbi példány fájljait. Ugyanez igaz az állapotalapú szolgáltatások által használt megbízható gyűjteményekből származó adatokra is. Ez a magasabb rendelkezésre állás célját szolgálja. Ha egy új alkalmazáspéldány ugyanazon a csomóponton található, nem kell fájlokat másolni. Megbízható gyűjtemények esetén csak a különbözetet kell replikálni.
Az alkalmazás bináris fájljainak teljes eltávolításához törölnie kell az alkalmazástípus regisztrációját.
Javaslatok a lemeznyomás csökkentésére:
- Remove-ServiceFabricApplicationPackage ezzel eltávolítja a csomagot az ideiglenes feltöltési helyről.
- A Unregister-ServiceFabricApplicationType úgy oldja fel a tárterületet, hogy eltávolítja az alkalmazástípusfájlokat a képtároló szolgáltatásból és az összes csomópontból. A törléskezelő alapértelmezés szerint óránként fut.
- CleanupUnusedApplicationTypes automatikusan törli a régi, nem használt alkalmazásverziókat.
{ "name": "Management", "parameters": [ { "name": "CleanupUnusedApplicationTypes", "value": true }, { "name": "MaxUnusedAppTypeVersionsToKeep", "value": "3" } ] }
- Remove-ServiceFabricClusterPackage eltávolítja a régi, nem használt futtatókörnyezet telepítési bináris fájljait.
Megjegyzés
Fejlesztés alatt áll egy funkció, amely lehetővé teszi a Service Fabric számára az alkalmazásmappák törlését az alkalmazás csomópontról való kiürítése után.
Következő lépések
A Service Fabric-alkalmazások és -szolgáltatások fejlesztésével, tesztelésével és kezelésével kapcsolatos további információkért lásd: