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


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.

Ezen az oldalon talál egy oktatóvideót, amely bemutatja, hogyan kezelheti az alkalmazás életciklusát:

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

  1. 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.
  2. 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.
  3. Az alkalmazásfejlesztők ezután különböző szolgáltatástípusokkal építenek fel alkalmazásokat.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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

  1. 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.
  2. 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.
  3. 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.
  4. Az operátor hozzáadja és eltávolítja az alkalmazásadminisztrátor által megadott csomópontokat.
  5. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Csomag másolása az ImageStore-ba, és használja a tömörítési lehetőséget

  2. A csomag kiépítése

  3. A csomag eltávolítása a képtárolóból

  4. Az alkalmazás/fürt frissítése

  5. 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.

PowerShell:

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:

  1. Remove-ServiceFabricApplicationPackage ezzel eltávolítja a csomagot az ideiglenes feltöltési helyről.
  2. 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.
  3. CleanupUnusedApplicationTypes automatikusan törli a régi, nem használt alkalmazásverziókat.
    {
      "name": "Management",
      "parameters": [
        {
          "name": "CleanupUnusedApplicationTypes",
          "value": true
        },
        {
          "name": "MaxUnusedAppTypeVersionsToKeep",
          "value": "3"
        }
      ]
    }
    
  4. 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: