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


Service Fabric-alkalmazások életciklusa

Más platformokhoz hasonlóan az Azure Service Fabric-en 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 karbantartáson át a végleges leszerelésig. A szolgáltatásmodell lehetővé teszi, hogy több különböző szerepkör is önállóan vegyen részt az alkalmazás életciklusában. Ez a cikk áttekintést nyújt az API-król és arról, hogy a különböző szerepkörök hogyan használják őket a Service Fabric-alkalmazás életciklusának fázisai során.

Ezen a lapon 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örei a következők:

  • Szolgáltatásfejlesztő: Olyan 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 (helpdesk) vagy e-kereskedelmi alkalmazás (bevásárlókocsi) létrehozásához.
  • Alkalmazásfejlesztő: Alkalmazásokat hoz létre egy szolgáltatásgyűjtemény 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áskonfigurációról (a konfigurációs sablon paramétereinek kitöltése), az üzembe helyezésről (a rendelkezésre álló erőforrásokra való leképezésről) és a szolgáltatás minőségéről. Például egy alkalmazás rendszergazdája dönti el az alkalmazás nyelvi területi beállítását (például a Egyesült Államok angol vagy japán nyelven Japán esetében). Egy másik üzembe helyezett alkalmazás különböző beállításokkal rendelkezhet.
  • Operátor: Alkalmazásokat helyez üzembe az alkalmazáskonfiguráció és az alkalmazásadminisztrátor által megadott követelmények alapján. Egy operátor például kiépíti é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 karbantartjá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 ismertetik egy szolgáltatásjegyzékfájlban a kifejlesztett szolgáltatástípusokat, amelyek egy vagy több kódból, konfigurációból és adatcsomagból állnak.
  3. Az alkalmazásfejlesztők ezután különböző szolgáltatástípusok használatával építenek ki egy alkalmazást.
  4. Az alkalmazásfejlesztő deklaratív módon írja le az alkalmazástípust az alkalmazásjegyzékben az alkotó szolgáltatások szolgáltatásjegyzékeire való hivatkozással, valamint az összetevők szolgáltatásainak 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.

Üzembe helyezés

  1. Az alkalmazásgazdák az alkalmazástípust egy adott alkalmazáshoz igazítják, amelyet egy Service Fabric-fürtben kell üzembe helyezni az alkalmazásjegyzék ApplicationType elemének megfelelő paramétereinek megadásával.
  2. Az operátor a CopyApplicationPackage metódus vagy a Copy-ServiceFabricApplicationPackage parancsmag használatával feltölti 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 Blob Store vagy Service Fabric rendszerszolgáltatás.
  3. Az operátor ezt követően a feltöltött alkalmazáscsomagból, a Register-ServiceFabricApplicationType parancsmaggal vagy az alkalmazás REST-műveletével kiépíti a célfürt alkalmazástípusát a feltöltött alkalmazáscsomagból.
  4. Az alkalmazás üzembe helyezése után az operátor a CreateApplicationAsync metódussal, a New-ServiceFabricApplication parancsmaggal vagy az Alkalmazás rest létrehozása művelettel elindítja az alkalmazást az alkalmazás rendszergazdája által 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 rest létrehozása 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 a Service Fabric-fürtben fut.

Példákért tekintse meg az alkalmazás üzembe helyezését.

Teszt

  1. Miután üzembe helyezték a helyi fejlesztői fürtöt vagy egy tesztfürtöt, a szolgáltatásfejlesztő a feladatátvételi tesztkörnyezetet a FailoverTestScenarioParameters és a FailoverTestScenario osztályokkal vagy az Invoke-ServiceFabricFailoverTestScenario parancsmaggal futtatja. A feladatátvételi tesztforgatókönyv fontos áttűnéseken és feladatátvételeken keresztül futtat egy adott szolgáltatást, hogy az továbbra is elérhető és működjön.
  2. A szolgáltatásfejlesztő ezután a ChaosTestScenarioParameters és a ChaosTestScenario osztály vagy az Invoke-ServiceFabricChaosTestScenario parancsmag használatával futtatja a beépített káosztesztelési forgatókönyvet. A káosztesztelési forgatókönyv véletlenszerűen több csomópontot, kódcsomagot és replikahibát indukál a fürtbe.
  3. A szolgáltatásfejlesztő a szolgáltatásközi 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ókért tekintse meg a Hibaelemzési szolgáltatás bemutatása című témakört.

Frissítés

  1. A szolgáltatásfejlesztők frissítik a példányosított alkalmazás rendszerösszetevő szolgáltatásait, és/vagy kijavítják a hibákat, és a szolgáltatásjegyzék új verzióját biztosítják.
  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 biztosítja az alkalmazásjegyzék új verzióját. 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 a CopyApplicationPackage metódus vagy a Copy-ServiceFabricApplicationPackage parancsmag használatával feltölti a frissített 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.
  5. Az operátor a ProvisionApplicationAsync metódus, a Register-ServiceFabricApplicationType parancsmag vagy az Alkalmazás REST-műveletének használatával helyezi üzembe az alkalmazás új verzióját a célfürtben.
  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 rest műveletével 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 Update Application Upgrade REST művelettel.
  9. Ha szükséges, az operátor visszaállítja az aktuális alkalmazásfrissítést a RollbackApplicationUpgradeAsync metódus, a Start-ServiceFabricApplicationRollback parancsmag vagy a visszaállítási alkalmazásfrissítés REST műveletével.
  10. A Service Fabric anélkül frissíti a fürtben futó célalkalmazást, hogy elveszítené a rendszerösszetevő szolgáltatásainak elérhetőségét.

Példákért tekintse meg az alkalmazásfrissítési oktatóanyagot .

Karbantartás

  1. Az operációs rendszer frissítései és javításai esetén 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ásgazdák jóváhagyják a csomópontok hozzáadását vagy eltávolítását egy fürtből az előzménykapacitás-kihasználtsági adatok és az előre jelzett 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átor törölheti az alkalmazáspéldányokat és annak összes szolgáltatását a DeleteApplicationAsync metódus, a Remove-ServiceFabricApplication parancsmag 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 az UnprovisionApplicationAsync metódussal, a Unregister-ServiceFabricApplicationType parancsmaggal vagy az alkalmazás REST-műveletének leépítésével bonthatja le az alkalmazástípust. Az alkalmazástípus leválasztása nem távolítja el az alkalmazáscsomagot az ImageStore-ból.
  4. Az operátor eltávolítja az alkalmazáscsomagot az ImageStore-ból a RemoveApplicationPackage metódus vagy a Remove-ServiceFabricApplicationPackage parancsmag használatával.

Példákért tekintse meg az alkalmazás üzembe helyezését.

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ájlfelhalmozódás miatt az ImageStoreService (háló:/System/ImageStoreService) feltöltheti a lemezt, és növelheti az ImageStoreService-replikák létrehozá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óban

  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 a kiegyensúlyozási műveletektől függően végül az összes csomópontra elosztja a fájlokat. Ez lemezterhelést okozhat az alkalmazások számától és fájlméretétől függően. A rendszer akkor is megőrzi a korábbi példány fájljait, ha egy csomóponton nem fut aktív példány. 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 fel kell vennie az alkalmazástípus regisztrációjának törlésé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 felszabadítja a tárterületet úgy, 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. A 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. A Remove-ServiceFabricClusterPackage eltávolítja a régi nem használt futtatókörnyezet telepítési bináris fájljait.

Feljegyzé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, miután az alkalmazást kiürítették a csomópontról.

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: