Service Fabric-alkalmazás frissítése

Az Azure Service Fabric-alkalmazások szolgáltatások gyűjteményei. A frissítés során a Service Fabric összehasonlítja az új alkalmazásjegyzéket az előző verzióval, és meghatározza, hogy az alkalmazásban mely szolgáltatások igényelnek frissítéseket. A Service Fabric összehasonlítja a szolgáltatásjegyzékben szereplő verziót az előző verzióval. Ha a szolgáltatás verziója nem változott, a szolgáltatás nem lesz frissítve.

Megjegyzés

Az ApplicationParameters nem marad meg az alkalmazásfrissítések 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ábbi módon:

$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

Működés közbeni frissítések áttekintése

Egy folyamatban lévő alkalmazásfrissítésben a frissítés fázisokban történik. A frissítés minden fázisban a fürt csomópontjainak egy részhalmazára, úgynevezett frissítési tartományra lesz alkalmazva. Ennek eredményeképpen az alkalmazás a frissítés során is elérhető marad. A frissítés során előfordulhat, hogy a fürt a régi és az új verziók kombinációját tartalmazza.

Ezért a két verziónak előre és hátra kompatibilisnek kell lennie. Ha nem kompatibilisek, az alkalmazás rendszergazdája felelős a többfázisú frissítés előkészítéséért a rendelkezésre állás fenntartása érdekében. Többfázisú frissítés esetén az első lépés az alkalmazás egy köztes verziójára való frissítés, amely kompatibilis az előző verzióval. A második lépés a végleges verzió frissítése, amely megszakítja a kompatibilitást a frissítés előtti verzióval, de kompatibilis a köztes verzióval.

A fürt konfigurálásakor a frissítési tartományok a fürtjegyzékben vannak megadva. A frissítési tartományok nem kapnak frissítéseket egy adott sorrendben. A frissítési tartomány egy alkalmazás üzembe helyezésének logikai egysége. A frissítési tartományok lehetővé teszik, hogy a szolgáltatások magas rendelkezésre állásban maradjanak a frissítés során.

Nem gördülő frissítések akkor lehetségesek, ha a frissítés a fürt összes csomópontjára vonatkozik, ami akkor fordul elő, ha az alkalmazás csak egy frissítési tartománnyal rendelkezik. Ez a megközelítés nem ajánlott, mivel a szolgáltatás leáll, és a frissítéskor nem érhető el. Emellett az Azure nem biztosít garanciát, ha egy fürt csak egy frissítési tartománnyal van beállítva.

A frissítés befejeződése után az összes szolgáltatás és replika (példány) ugyanabban a verzióban marad, azaz ha a frissítés sikeres, akkor az új verzióra lesznek frissítve; ha a frissítés meghiúsul, és vissza lett állítva, a rendszer visszaállítja őket a régi verzióra.

Állapot-ellenőrzések a frissítések során

Frissítéshez be kell állítani az állapotszabályzatokat (vagy alapértelmezett értékeket lehet használni). A frissítés sikeresnek minősül, ha az összes frissítési tartomány a megadott időkorláton belül frissül, és ha az összes frissítési tartomány kifogástalan állapotúnak minősül. Az kifogástalan állapotú frissítési tartomány azt jelenti, hogy a frissítési tartomány teljesítette az állapotszabályzatban megadott összes állapotellenőrzést. Egy állapotszabályzat például előírhatja, hogy az alkalmazáspéldányon belüli összes szolgáltatásnak kifogástalannak kell lennie, mivel az állapotot a Service Fabric határozza meg.

A Service Fabric által végzett frissítés során az állapotszabályzatok és -ellenőrzések szolgáltatás- és alkalmazáselemzések. Vagyis nem végeznek szolgáltatásspecifikus teszteket. Előfordulhat például, hogy a szolgáltatásnak átviteli sebességre vonatkozó követelménye van, de a Service Fabric nem rendelkezik az átviteli sebesség ellenőrzéséhez szükséges információkkal. Az elvégzett ellenőrzésekről az állapotcikkek között olvashat. A frissítés során végrehajtott ellenőrzések közé tartoznak a tesztek, hogy az alkalmazáscsomag megfelelően lett-e másolva, hogy a példány elindult-e, és így tovább.

Az alkalmazás állapota az alkalmazás gyermek entitásainak összesítése. Röviden: a Service Fabric az alkalmazás állapotát az alkalmazáson jelentett állapoton keresztül értékeli ki. Az alkalmazás összes szolgáltatásának állapotát is így értékeli. A Service Fabric tovább értékeli az alkalmazásszolgáltatások állapotát a gyermekeik állapotának összesítésével, például a szolgáltatásreplikával. Az alkalmazásállapot-szabályzat teljesülése után a frissítés folytatódhat. Ha az állapotszabályzat sérül, az alkalmazás frissítése sikertelen lesz.

Frissítési módok

Az alkalmazásfrissítéshez ajánlott mód a figyelt mód, amely a gyakran használt mód. A figyelt mód egy frissítési tartományon hajtja végre a frissítést, és ha az összes állapot-ellenőrzés (a megadott szabályzatnak megfelelő) megfelel, automatikusan továbblép a következő frissítési tartományra. Ha az állapot-ellenőrzések sikertelenek és/vagy időtúllépést érnek el, a frissítés vissza lesz állítva a frissítési tartományra, vagy a mód nem figyelt manuálisra változik. A frissítés úgy konfigurálható, hogy a sikertelen frissítésekhez a két mód közül válasszon egyet.

A nem figyelt manuális mód manuális beavatkozást igényel a frissítési tartomány minden frissítése után, hogy elindítsa a frissítést a következő frissítési tartományban. Nincs Service Fabric-állapot-ellenőrzés. A rendszergazda elvégzi az állapot- vagy állapotellenőrzéseket, mielőtt elindítja a frissítést a következő frissítési tartományban.

Alapértelmezett szolgáltatások frissítése

Az alkalmazásjegyzékben meghatározott alapértelmezett szolgáltatásparaméterek egy alkalmazásfrissítés részeként is frissíthetők. A frissítés részeként csak azok a szolgáltatásparaméterek módosíthatók, amelyek támogatják az Update-ServiceFabricService szolgáltatással való módosítást. Az alapértelmezett szolgáltatások alkalmazásfrissítés során történő módosításának viselkedése a következő:

  1. Létrejönnek az új alkalmazásjegyzékben az alapértelmezett szolgáltatások, amelyek még nem léteznek a fürtben.
  2. Az előző és az új alkalmazásjegyzékekben is létező alapértelmezett szolgáltatások frissülnek. Az új alkalmazásjegyzék alapértelmezett szolgáltatásának paraméterei felülírják a meglévő szolgáltatás paramétereit. Az alkalmazásfrissítés automatikusan visszaállítódik, ha egy alapértelmezett szolgáltatás frissítése meghiúsul.
  3. Az új alkalmazásjegyzékben nem létező alapértelmezett szolgáltatások törlődnek, ha a fürtben léteznek. Vegye figyelembe, hogy az alapértelmezett szolgáltatás törlése a szolgáltatás összes állapotának törlését eredményezi, és nem vonható vissza.

Az alkalmazásfrissítés visszaállításakor az alapértelmezett szolgáltatásparaméterek visszaállnak a régi értékekre a frissítés megkezdése előtt, de a törölt szolgáltatások nem hozhatók létre újra a régi állapotukkal.

Tipp

Az EnableDefaultServicesUpgrade fürtkonfiguráció beállításának igaznak kell lennie a fenti 2. és 3. szabály engedélyezéséhez (alapértelmezett szolgáltatásfrissítés és -törlés). Ez a funkció a Service Fabric 5.5-ös verziójától kezdve támogatott.

Több alkalmazás frissítése HTTPS-végpontokkal

A HTTPS használatakor ügyelnie kell arra, hogy ne használja ugyanazt a portot ugyanazon alkalmazás különböző példányaihoz. Ennek az az oka, hogy a Service Fabric nem fogja tudni frissíteni az egyik alkalmazáspéldány tanúsítványát. Ha például az 1. vagy a 2. alkalmazás egyaránt szeretné frissíteni az 1. tanúsítványt a 2. tanúsítványra. A frissítés során előfordulhat, hogy a Service Fabric megtisztította a cert 1 regisztrációt http.sys annak ellenére, hogy a másik alkalmazás még mindig használja. Ennek elkerülése érdekében a Service Fabric észleli, hogy már van egy másik alkalmazáspéldány regisztrálva a porton a tanúsítvánnyal (http.sys miatt), és meghiúsul a művelet.

Ezért a Service Fabric nem támogatja két különböző szolgáltatás frissítését ugyanazzal a porttal a különböző alkalmazáspéldányokban. Más szóval nem használhatja ugyanazt a tanúsítványt ugyanazon a porton található különböző szolgáltatásokon. Ha megosztott tanúsítvánnyal kell rendelkeznie ugyanazon a porton, győződjön meg arról, hogy a szolgáltatások elhelyezési korlátozásokkal különböző gépekre vannak helyezve. Vagy fontolja meg a Service Fabric dinamikus portok használatát, ha lehetséges minden egyes szolgáltatáshoz az egyes alkalmazáspéldányokban.

Ha a https használatával meghiúsul a frissítés, hibaüzenet jelenik meg, amely szerint "A Windows HTTP Server API nem támogatja a portot használó alkalmazások több tanúsítványát".

Alkalmazásfrissítési folyamatábra

A bekezdést követő folyamatábra segíthet a Service Fabric-alkalmazások frissítési folyamatának megértésében. A folyamat különösen azt ismerteti, hogy az időtúllépések ( például a HealthCheckStableDuration, a HealthCheckRetryTimeout és a UpgradeHealthCheckInterval) hogyan befolyásolják, hogy egy frissítési tartományban a frissítés sikeresnek vagy sikertelennek minősül-e.

Service Fabric-alkalmazás frissítési folyamata

Következő lépések

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

Az alkalmazás PowerShell-lel történő frissítése végigvezeti a PowerShell használatával végzett alkalmazásfrissítésen.

A frissítési paraméterek használatával szabályozhatja az alkalmazás frissítési módját.

Az adatszializálás használatának elsajátításával kompatibilissé teheti az alkalmazásfrissítéseket.

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

Az alkalmazásfrissítések gyakori problémáinak megoldásához kövesse az alkalmazásfrissítések hibaelhárítása című témakör lépéseit.