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ő:
- Létrejönnek az új alkalmazásjegyzékben az alapértelmezett szolgáltatások, amelyek még nem léteznek a fürtben.
- 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.
- 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.
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.