Životní cyklus aplikace Service Fabric
Stejně jako u jiných platforem prochází aplikace v Azure Service Fabric obvykle následujícími fázemi: návrh, vývoj, testování, nasazení, upgrade, údržba a odebrání. Service Fabric poskytuje prvotřídní podporu pro úplný životní cyklus cloudových aplikací, od vývoje přes nasazení, každodenní správu a údržbu až po případné vyřazení z provozu. Model služby umožňuje nezávislé účasti několika různých rolí na životním cyklu aplikace. Tento článek obsahuje přehled rozhraní API a jejich používání různými rolemi v průběhu fází životního cyklu aplikace Service Fabric.
Na této stránce najdete školicí video, které popisuje, jak spravovat životní cyklus aplikace:
Důležité
Pro práci se Service Fabric se používají dva nástroje rozhraní příkazového řádku. Azure CLI se používá ke správě prostředků Azure, jako je cluster Service Fabric hostovaný v Azure. Rozhraní příkazového řádku Service Fabric se používá k přímému připojení ke clusteru Service Fabric (bez ohledu na to, kde je hostovaný) a ke správě clusteru, aplikací a služeb.
Role modelu služby
Role modelu služby jsou:
- Vývojář služeb: Vyvíjí modulární a obecné služby, které lze znovu použít a použít ve více aplikacích stejného typu nebo různých typů. Službu fronty můžete například použít k vytvoření aplikace pro vytváření lístků (helpdesk) nebo aplikace elektronického obchodování (nákupní košík).
- Vývojář aplikací: Vytváří aplikace integrací kolekce služeb pro splnění určitých specifických požadavků nebo scénářů. Web elektronického obchodování může například integrovat "JSON Stateless Front-End Service", "Auction Stateful Service" a "Queue Stateful Service" za účelem vytvoření aukčního řešení.
- Správce aplikace: Rozhoduje o konfiguraci aplikace (vyplnění parametrů šablony konfigurace), nasazení (mapování na dostupné prostředky) a kvalitě služby. Správce aplikace například rozhodne o národním prostředí aplikace (angličtina pro USA nebo japonština pro Japonsko). Jiná nasazená aplikace může mít různá nastavení.
- Operátor: Nasadí aplikace na základě konfigurace aplikace a požadavků zadaných správcem aplikace. Operátor například zřídí a nasadí aplikaci a zajistí, že běží v Azure. Operátoři monitorují informace o stavu a výkonu aplikací a podle potřeby udržují fyzickou infrastrukturu.
Vývoj
- Vývojář služeb vyvíjí různé typy služeb pomocí programovacího modelu Reliable Actors nebo Reliable Services.
- Vývojář služby deklarativně popisuje vyvinuté typy služeb v souboru manifestu služby, který se skládá z jednoho nebo více kódů, konfigurace a datových balíčků.
- Vývojář aplikace pak sestaví aplikaci pomocí různých typů služeb.
- Vývojář aplikace deklarativně popisuje typ aplikace v manifestu aplikace odkazováním na manifesty služby základních služeb a odpovídajícím přepsáním a parametrizací různých nastavení konfigurace a nasazení základních služeb.
Příklady najdete v tématech Začínáme se Reliable Actors a Začínáme se Reliable Services .
Nasadit
- Správce aplikace přizpůsobí typ aplikace konkrétní aplikaci, která se má nasadit do clusteru Service Fabric zadáním příslušných parametrů elementu ApplicationType v manifestu aplikace.
- Operátor odešle balíček aplikace do úložiště imagí clusteru pomocí metody CopyApplicationPackage nebo rutiny Copy-ServiceFabricApplicationPackage. Balíček aplikace obsahuje manifest aplikace a kolekci balíčků služeb. Service Fabric nasazuje aplikace z balíčku aplikace uloženého v úložišti imagí, kterým může být úložiště objektů blob Azure nebo systémová služba Service Fabric.
- Operátor pak zřídí typ aplikace v cílovém clusteru z nahraného balíčku aplikace pomocí metody ProvisionApplicationAsync, rutiny Register-ServiceFabricApplicationType nebo operace Rest zřízení aplikace.
- Po zřízení aplikace operátor spustí aplikaci s parametry zadanými správcem aplikace pomocí metody CreateApplicationAsync, rutiny New-ServiceFabricApplication nebo operace Create Application REST.
- Po nasazení aplikace operátor použije metodu CreateServiceAsync, rutinu New-ServiceFabricService nebo operaci Create Service REST k vytvoření nových instancí služby pro aplikaci na základě dostupných typů služeb.
- Aplikace je teď spuštěná v clusteru Service Fabric.
Příklady najdete v tématu Nasazení aplikace .
Test
- Po nasazení do místního vývojového clusteru nebo testovacího clusteru vývojář služby spustí integrovaný testovací scénář převzetí služeb při selhání pomocí tříd FailoverTestScenarioParameters a FailoverTestScenario nebo rutiny Invoke-ServiceFabricFailoverTestScenario. Scénář testu převzetí služeb při selhání spustí zadanou službu prostřednictvím důležitých přechodů a převzetí služeb při selhání, aby se zajistilo, že je stále dostupná a funkční.
- Vývojář služby pak spustí předdefinovaný scénář testu chaosu pomocí tříd ChaosTestScenarioParameters a ChaosTestScenario nebo rutiny Invoke-ServiceFabricChaosTestScenario. Scénář testu chaosu náhodně indukuje do clusteru více uzlů, balíčků kódu a replik.
- Vývojář službytestuje komunikaci mezi službami vytvořením testovacích scénářů, které přesunují primární repliky kolem clusteru.
Další informace najdete v tématu Úvod do služby Fault Analysis Service .
Upgrade
- Vývojář služby aktualizuje základní služby aplikace s instancí nebo opravuje chyby a poskytuje novou verzi manifestu služby.
- Vývojář aplikace přepíše a parametrizuje nastavení konfigurace a nasazení konzistentních služeb a poskytuje novou verzi manifestu aplikace. Vývojář aplikace pak do aplikace začlení nové verze manifestů služby a poskytne novou verzi typu aplikace v aktualizovaném balíčku aplikace.
- Správce aplikace začlení novou verzi typu aplikace do cílové aplikace aktualizací příslušných parametrů.
- Operátor nahraje aktualizovaný balíček aplikace do úložiště imagí clusteru pomocí metody CopyApplicationPackage nebo rutiny Copy-ServiceFabricApplicationPackage. Balíček aplikace obsahuje manifest aplikace a kolekci balíčků služeb.
- Operátor zřídí novou verzi aplikace v cílovém clusteru pomocí metody ProvisionApplicationAsync, rutiny Register-ServiceFabricApplicationType nebo operace Provision an Application REST.
- Operátor upgraduje cílovou aplikaci na novou verzi pomocí metody UpgradeApplicationAsync, rutiny Start-ServiceFabricApplicationUpgrade nebo operace Upgrade aplikace REST.
- Operátor kontroluje průběh upgradu pomocí metody GetApplicationUpgradeProgressAsync, rutiny Get-ServiceFabricApplicationUpgrade nebo operace REST Get Application Upgrade Progress.
- V případě potřeby operátor upraví a znovu provede parametry aktuálního upgradu aplikace pomocí metody UpdateApplicationUpgradeAsync, rutiny Update-ServiceFabricApplicationUpgrade nebo operace REST Update Application Upgrade.
- V případě potřeby operátor vrátí zpět aktuální upgrade aplikace pomocí metody RollbackApplicationUpgradeAsync, rutiny Start-ServiceFabricApplicationRollback nebo operace REST pro vrácení zpět.
- Service Fabric upgraduje cílovou aplikaci spuštěnou v clusteru, aniž by ztratila dostupnost některé z jejích základních služeb.
Příklady najdete v kurzu k upgradu aplikací .
Údržba
- V případě upgradů a oprav operačního systému Service Fabric spolupracuje s infrastrukturou Azure, aby byla zajištěna dostupnost všech aplikací spuštěných v clusteru.
- V případě upgradů a oprav platformy Service Fabric se Service Fabric upgraduje sám, aniž by se ztratila dostupnost jakékoli aplikace spuštěné v clusteru.
- Správce aplikace schválí přidání nebo odebrání uzlů z clusteru po analýze historických dat o využití kapacity a předpokládané budoucí poptávce.
- Operátor přidá a odebere uzly určené správcem aplikace.
- Když se do clusteru přidají nové uzly nebo se odeberou existující uzly, Service Fabric automaticky vyrovnává zatížení spuštěných aplikací napříč všemi uzly v clusteru, aby bylo dosaženo optimálního výkonu.
Odebrat
- Operátor může odstranit konkrétní instanci spuštěné služby v clusteru bez odebrání celé aplikace pomocí metody DeleteServiceAsync, rutiny Remove-ServiceFabricService nebo operace REST Delete Service.
- Operátor může také odstranit instanci aplikace a všechny její služby pomocí metody DeleteApplicationAsync, rutiny Remove-ServiceFabricApplication nebo operace Delete Application REST.
- Jakmile se aplikace a služby zastaví, operátor může zrušit zřízení typu aplikace pomocí metody UnprovisionApplicationAsync, rutiny Unregister-ServiceFabricApplicationType nebo zrušení zřízení operace REST aplikace. Zrušením zřízení typu aplikace se neodebere balíček aplikace z imageStore.
- Operátor odebere balíček aplikace z imageStore pomocí metody RemoveApplicationPackage nebo rutiny Remove-ServiceFabricApplicationPackage.
Příklady najdete v tématu Nasazení aplikace .
Zachování místa na disku v úložišti imagí clusteru
ImageStoreService uchovává zkopírované a zřízené balíčky, což může vést k nahromadění souborů. Akumulace souborů může způsobit, že imageStoreService (fabric:/System/ImageStoreService) zaplní disk a může prodloužit dobu sestavení pro repliky ImageStoreService.
Pokud chcete zabránit kumulaci souborů, použijte následující posloupnost zřizování:
Zkopírujte balíček do ImageStore a použijte možnost komprese.
Zřízení balíčku
Odebrání balíčku v úložišti imagí
Upgrade aplikace nebo clusteru
Zrušení zřízení staré verze
Kroky 3 a 5 výše uvedeného postupu brání kumulaci souborů v úložišti imagí.
Konfigurace pro automatické čištění
Výše uvedený krok 3 můžete automatizovat pomocí PowerShellu nebo XML. To způsobí, že se balíček aplikace po úspěšné registraci typu aplikace automaticky odstraní.
Register-ServiceFabricApplicationTye -ApplicationPackageCleanupPolicy Automatic
XML:
<Section Name="Management">
<Parameter Name="CleanupApplicationPackageOnProvisionSuccess" Value="True" />
</Section>
Výše uvedený krok 5 můžete automatizovat pomocí XML. To způsobí, že se nepoužívané typy aplikací automaticky zruší registrace.
<Section Name="Management">
<Parameter Name="CleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="PeriodicCleanupUnusedApplicationTypes" Value="true" />
<Parameter Name="TriggerAppTypeCleanupOnProvisionSuccess" Value="true" />
<Parameter Name="MaxUnusedAppTypeVersionsToKeep" Value="3" />
</Section>
Čištění souborů a dat na uzlech
Replikace souborů aplikace nakonec distribuuje soubory do všech uzlů v závislosti na akcích vyrovnávání. To může vytvořit tlak na disk v závislosti na počtu aplikací a jejich velikosti souboru. I když na uzlu není spuštěná žádná aktivní instance, soubory z bývalé instance se zachovají. Totéž platí pro data ze spolehlivých kolekcí používaných stavovým službami. To slouží k vyšší dostupnosti. V případě nové instance aplikace na stejném uzlu se nesmí kopírovat žádné soubory. U spolehlivých kolekcí musí být replikována pouze rozdílová hodnota.
Pokud chcete binární soubory aplikace úplně odebrat, musíte zrušit registraci typu aplikace.
Doporučení ke snížení zatížení disku:
- Remove-ServiceFabricApplicationPackage odebere balíček z dočasného umístění pro nahrání.
- Unregister-ServiceFabricApplicationType uvolní prostor úložiště odebráním souborů typu aplikace ze služby úložiště imagí a všech uzlů. Ve výchozím nastavení se správce odstraňování spouští každou hodinu.
- CleanupUnusedApplicationTypes automaticky vyčistí staré nepoužívané verze aplikací.
{ "name": "Management", "parameters": [ { "name": "CleanupUnusedApplicationTypes", "value": true }, { "name": "MaxUnusedAppTypeVersionsToKeep", "value": "3" } ] }
- Remove-ServiceFabricClusterPackage odebere staré nepoužívané binární soubory instalace modulu runtime.
Poznámka
Ve vývoji je funkce, která service Fabricu umožňuje odstranit složky aplikací, jakmile je aplikace evakuována z uzlu.
Další kroky
Další informace o vývoji, testování a správě aplikací a služeb Service Fabric najdete tady: