Přehled terminologie Service Fabric
Azure Service Fabric je platforma distribuovaných systémů usnadňující balení, nasazování a spravování škálovatelných a spolehlivých mikroslužeb. Service Fabric je orchestrátor kontejnerů a procesů, který umožňuje hostovat clustery kdekoli: v Azure, v místním datacentru nebo v libovolném poskytovateli cloudu. Ke psaní služeb můžete použít libovolnou architekturu a zvolit, kde se má aplikace spouštět z několika možností prostředí. Tento článek podrobně popisuje terminologii používanou Service Fabric k pochopení termínů použitých v dokumentaci.
Související školicí videa uvedená níže podrobně popisují aplikaci, balení, nasazení, abstrakce a terminologii používanou Service Fabric:
Koncepty infrastruktury
Cluster: Sada virtuálních nebo fyzických počítačů připojených k síti, do kterých se nasazují a spravují vaše mikroslužby. Clustery je možné škálovat na tisíce počítačů.
Uzel: Počítač nebo virtuální počítač, který je součástí clusteru, se nazývá uzel. Každému uzlu je přiřazen název uzlu (řetězec). Uzly mají vlastnosti, jako jsou vlastnosti umístění. Každý počítač nebo virtuální počítač má automaticky spouštěnou službu Windows, FabricHost.exe
která se spustí při spuštění a pak spustí dva spustitelné soubory: Fabric.exe
a FabricGateway.exe
. Tyto dva spustitelné soubory tvoří uzel. Pro testovací scénáře můžete hostovat více uzlů na jednom počítači nebo virtuálním počítači spuštěním několika instancí Fabric.exe
a FabricGateway.exe
.
Koncepty aplikací a služeb
Nativní aplikace Service Fabric: Nativní aplikace Service Fabric jsou popsány nativním aplikačním modelem (manifesty aplikací založených na JAZYCE XML a službami).
Koncepty nativní aplikace Service Fabric
Aplikace: Aplikace je kolekce základních služeb, které provádějí určitou funkci nebo funkce. Životní cyklus každé instance aplikace je možné spravovat nezávisle.
Služba: Služba provádí úplnou a samostatnou funkci a může spouštět a spouštět nezávisle na jiných službách. Služba se skládá z kódu, konfigurace a dat. Pro každou službu se kód skládá ze spustitelných binárních souborů, konfigurace se skládá z nastavení služby, která se dají načíst za běhu, a data se skládají z libovolných statických dat, která bude služba využívat.
Typ aplikace: Název/verze přiřazená kolekci typů služeb. Je definován v ApplicationManifest.xml
souboru a vložen v adresáři balíčku aplikace. Adresář se pak zkopíruje do úložiště imagí clusteru Service Fabric. Potom můžete vytvořit pojmenovanou aplikaci z tohoto typu aplikace v clusteru.
Další informace najdete v článku o modelu aplikace.
Balíček aplikace: Adresář disku obsahující soubor typu ApplicationManifest.xml
aplikace. Odkazuje na balíčky služby pro každý typ služby, který tvoří typ aplikace. Soubory v adresáři balíčku aplikace se zkopírují do úložiště imagí clusteru Service Fabric. Například balíček aplikace pro typ e-mailové aplikace může obsahovat odkazy na balíček front-service, balíček front-endové služby a balíček databázové služby.
Pojmenovaná aplikace: Po zkopírování balíčku aplikace do úložiště imagí vytvoříte instanci aplikace v clusteru. Instanci vytvoříte při zadání typu aplikace balíčku aplikace pomocí jejího názvu nebo verze. Každá instance typu aplikace má přiřazený název URI (Uniform Resource Identifier), který vypadá takto: "fabric:/MyNamedApp"
. V rámci clusteru můžete vytvořit více pojmenovaných aplikací z jednoho typu aplikace. Pojmenované aplikace můžete vytvářet také z různých typů aplikací. Každá pojmenovaná aplikace se spravuje a spravuje nezávisle na verzích.
Typ služby: Název/verze přiřazená balíčkům kódu služby, datovým balíčkům a konfiguračním balíčkům. Typ služby je definován v ServiceManifest.xml
souboru a vložen do adresáře balíčku služby. Na adresář balíčku služby se pak odkazuje souborem balíčku ApplicationManifest.xml
aplikace. Po vytvoření pojmenované aplikace v clusteru můžete vytvořit pojmenovanou službu z jednoho z typů služeb typu aplikace. Soubor typu ServiceManifest.xml
služby popisuje službu.
Další informace najdete v článku o modelu aplikace.
Existují dva typy služeb:
- Bezstavová: Pokud je trvalý stav služby uložený v externí službě úložiště, jako je Azure Storage, Azure SQL Database nebo Azure Cosmos DB, použijte bezstavovou službu. Pokud služba nemá trvalé úložiště, použijte bezstavovou službu. Například pro službu kalkulačky, kde se hodnoty předávají službě, se provádí výpočet, který tyto hodnoty používá, a pak se vrátí výsledek.
- Stavové: Stavovou službu použijte, když chcete, aby Service Fabric spravovala stav vaší služby prostřednictvím programovacích modelů Reliable Collections nebo Reliable Actors. Při vytváření pojmenované služby určete, kolik oddílů chcete rozšířit o škálovatelnost. Určete také, kolikrát se má váš stav replikovat napříč uzly, abyste mohli spolehlivost provést. Každá pojmenovaná služba má jednu primární repliku a několik sekundárních replik. Stav pojmenované služby upravíte při zápisu do primární repliky. Service Fabric pak tento stav replikuje do všech sekundárních replik, aby byl váš stav synchronizovaný. Service Fabric automaticky rozpozná, kdy dojde k selhání primární repliky a propaguje existující sekundární repliku na primární repliku. Service Fabric pak vytvoří novou sekundární repliku.
Repliky nebo instance odkazují na kód (a stav stavových služeb) služby, která je nasazená a spuštěná. Viz Repliky a instance.
Rekonfigurace odkazuje na proces jakékoli změny v sadě replik služby. Viz Rekonfigurace.
Balíček služby: Adresář disku obsahující soubor typu ServiceManifest.xml
služby. Tento soubor odkazuje na kód, statická data a konfigurační balíčky pro typ služby. Soubory v adresáři balíčku služby jsou odkazovány souborem ApplicationManifest.xml
typu aplikace. Například balíček služby může odkazovat na kód, statická data a konfigurační balíčky, které tvoří databázovou službu.
Pojmenovaná služba: Po vytvoření pojmenované aplikace můžete v clusteru vytvořit instanci jednoho z jejích typů služeb. Typ služby zadáte pomocí názvu nebo verze služby. Každá instance typu služby má přiřazený název URI vymezený pod jeho pojmenovaným identifikátorem URI aplikace. Pokud například vytvoříte "MyDatabase" pojmenovanou službu v pojmenované aplikaci MyNamedApp, identifikátor URI vypadá takto: "fabric:/MyNamedApp/MyDatabase"
. V pojmenované aplikaci můžete vytvořit několik pojmenovaných služeb. Každá pojmenovaná služba může mít vlastní schéma oddílů a počet instancí nebo replik.
Balíček kódu: Adresář disku obsahující spustitelné soubory typu služby, obvykle soubory EXE/DLL. Soubory v adresáři balíčku kódu jsou odkazovány souborem typu ServiceManifest.xml
služby. Když vytvoříte pojmenovanou službu, balíček kódu se zkopíruje do uzlu nebo uzlů vybraných ke spuštění pojmenované služby. Pak se kód spustí. Existují dva typy spustitelných souborů balíčku kódu:
- Spustitelné soubory hosta: Spustitelné soubory, které běží jako v hostitelském operačním systému (Windows nebo Linux). Tyto spustitelné soubory nepropojují ani neodkazují na žádné soubory modulu runtime Service Fabric, a proto nepoužívají žádné programovací modely Service Fabric. Tyto spustitelné soubory nemůžou používat některé funkce Service Fabric, například službu pojmenování pro zjišťování koncových bodů. Spustitelné soubory hosta nemůžou načítat metriky specifické pro každou instanci služby.
- Spustitelné soubory hostitele služby: Spustitelné soubory, které používají programovací modely Service Fabric, propojením se soubory modulu runtime Service Fabric a povolením funkcí Service Fabric. Pojmenovaná instance služby může například registrovat koncové body ve službě pojmenování Service Fabric a může také hlásit metriky načítání.
Datový balíček: Adresář disku, který obsahuje statické datové soubory typu služby jen pro čtení, obvykle fotku, zvuk a videosoubory. Soubory v adresáři datového balíčku jsou odkazovány souborem typu ServiceManifest.xml
služby. Když vytvoříte pojmenovanou službu, datový balíček se zkopíruje do uzlu nebo uzlů vybraných ke spuštění pojmenované služby. Kód se spustí a bude mít teď přístup k datovým souborům.
Konfigurační balíček: Adresář disku, který obsahuje statické konfigurační soubory typu služby jen pro čtení, obvykle textové soubory. Na soubory v adresáři konfiguračního balíčku odkazuje soubor typu ServiceManifest.xml
služby. Při vytváření pojmenované služby se soubory v konfiguračním balíčku zkopírují do jednoho nebo více uzlů vybraných ke spuštění pojmenované služby. Pak se kód spustí a bude mít přístup ke konfiguračním souborům.
Kontejnery: Service Fabric ve výchozím nastavení nasadí a aktivuje služby jako procesy. Service Fabric může také nasazovat služby v imagích kontejnerů. Kontejnery jsou virtualizační technologie, která abstrahuje základní operační systém z aplikací. Aplikace a její modul runtime, závislosti a systémové knihovny běží v kontejneru. Kontejner má úplný privátní přístup k vlastnímu izolovanému zobrazení konstruktorů operačního systému kontejneru. Service Fabric podporuje kontejnery Windows Serveru a kontejnery Dockeru v Linuxu. Další informace najdete v Service Fabric a kontejnerech.
Schéma oddílů: Při vytváření pojmenované služby zadáte schéma oddílů. Služby s velkým množstvím stavu rozdělují data mezi oddíly, které rozdělují stav mezi uzly clusteru. Rozdělením dat mezi oddíly může váš pojmenovaný stav služby škálovat. V rámci oddílu mají bezstavové pojmenované služby instance, zatímco stavové pojmenované služby mají repliky. Bezstavové pojmenované služby mají obvykle pouze jeden oddíl, protože nemají žádný interní stav. Instance oddílů poskytují dostupnost. Pokud jedna instance selže, ostatní instance budou dál normálně fungovat a Service Fabric vytvoří novou instanci. Stavové pojmenované služby udržují svůj stav v rámci replik a každý oddíl má svou vlastní sadu replik, aby se stav uchovával v synchronizaci. Pokud replika selže, Service Fabric vytvoří novou repliku z existujících replik.
Další informace najdete v článku o spolehlivých službách Service Fabric pro oddíly.
Systémové služby
V každém clusteru se vytvářejí systémové služby, které poskytují funkce platformy Service Fabric.
Služba pojmenování: Každý cluster Service Fabric má službu pojmenování, která překládá názvy služeb do umístění v clusteru. Názvy a vlastnosti služby spravujete, jako je například internetový dns (Domain Name System) pro cluster. Klienti bezpečně komunikují s jakýmkoli uzlem v clusteru pomocí služby pojmenování k překladu názvu služby a jejího umístění. Aplikace se přesunou v rámci clusteru. Důvodem může být například selhání, vyrovnávání prostředků nebo změna velikosti clusteru. Můžete vyvíjet služby a klienty, kteří přeloží aktuální síťové umístění. Klienti získají skutečnou IP adresu počítače a port, na kterém je aktuálně spuštěný.
Další informace o rozhraních API pro komunikaci klientů a služeb, které pracují se službou Pojmenování, najdete v článku Komunikace se službami .
Služba Image Store: Každý cluster Service Fabric má službu Image Store, ve které jsou nasazené balíčky aplikací s verzemi. Zkopírujte balíček aplikace do úložiště imagí a pak zaregistrujte typ aplikace obsažený v tomto balíčku aplikace. Po zřízení typu aplikace z něj vytvoříte pojmenovanou aplikaci. Po odstranění všech pojmenovaných aplikací můžete zrušit registraci typu aplikace ze služby Image Store.
Další informace o službě Image Store najdete v tématu Vysvětlení nastavení ImageStoreConnectionString.
Další informace o nasazení aplikací do služby Image Store najdete v článku Nasazení aplikace.
Služba Správce převzetí služeb při selhání: Každý cluster Service Fabric má službu Správce převzetí služeb při selhání, která je zodpovědná za následující akce:
- Provádí funkce související s vysokou dostupností a konzistencí služeb.
- Orchestruje upgrady aplikací a clusterů.
- Komunikuje s dalšími systémovými komponentami.
Služba Správce oprav: Jedná se o volitelnou systémovou službu, která umožňuje provádět akce opravy v clusteru způsobem, který je bezpečný, automatizovatelný a transparentní. Správce oprav se používá v:
- Provádění oprav údržby Azure v clusterech Azure Service Fabric s odolností silver a gold
- Provádění akcí opravy pro aplikaci Orchestraation oprav
Modely nasazení a aplikací
Pokud chcete nasadit služby, musíte popsat, jak se mají spouštět. Service Fabric podporuje tři různé modely nasazení:
Nativní model
Nativní aplikační model poskytuje vašim aplikacím úplný přístup na nízké úrovni ke službě Service Fabric. Aplikace a služby jsou definovány jako registrované typy v souborech manifestu XML.
Nativní model podporuje architektury Reliable Services a Reliable Actors, které poskytují přístup k rozhraním API modulu runtime Service Fabric a rozhraním API pro správu clusterů v C# a Javě. Nativní model také podporuje libovolné kontejnery a spustitelné soubory.
Reliable Services: Rozhraní API pro vytváření bezstavových a stavových služeb. Stavové služby ukládají svůj stav ve spolehlivých kolekcích, jako je slovník nebo fronta. Můžete také připojit různé komunikační zásobníky, jako je webové rozhraní API a Windows Communication Foundation (WCF).
Reliable Actors: Rozhraní API pro vytváření bezstavových a stavových objektů prostřednictvím programovacího modelu virtuálního objektu actor. Tento model je užitečný, pokud máte velké množství nezávislých jednotek výpočtu nebo stavu. Tento model používá model s vlákny založený na turnu, takže je nejlepší vyhnout se kódu, který volá jiné aktéry nebo služby, protože jednotlivý aktér nemůže zpracovat další příchozí požadavky, dokud se nedokončí všechny odchozí požadavky.
Ve službě Service Fabric můžete také spouštět stávající aplikace:
Kontejnery: Service Fabric podporuje nasazení kontejnerů Dockeru v linuxových a windows serverových kontejnerech ve Windows Serveru 2016 spolu s podporou režimu izolace Hyper-V. V modelu aplikace Service Fabric představuje kontejner hostitele aplikace, ve kterém je umístěno více replik služeb. Service Fabric může spouštět jakékoli kontejnery a scénář je podobný spustitelnému scénáři hosta, ve kterém zabalíte existující aplikaci do kontejneru. Kromě toho můžete služby Service Fabric spouštět i v kontejnerech .
Spustitelné soubory typu hosta: V Azure Service Fabric jako službu můžete spustit libovolný typ kódu, jako je Node.js, Python, Java nebo C++. Service Fabric označuje tyto typy služeb jako spustitelné soubory hosta, které jsou považovány za bezstavové služby. Mezi výhody spouštění spustitelného souboru hosta v clusteru Service Fabric patří vysoká dostupnost, monitorování stavu, správa životního cyklu aplikací, vysoká hustota a zjistitelnost.
Další informace najdete v článku o volbě programovacího modelu pro vaši službu .
Docker Compose
Docker Compose je součástí projektu Dockeru. Service Fabric poskytuje omezenou podporu pro nasazování aplikací pomocí modelu Docker Compose.
Prostředí
Service Fabric je opensourcová technologie platformy, na které je založeno několik různých služeb a produktů. Microsoft nabízí následující možnosti:
- Azure Service Fabric: Nabídka clusteru Service Fabric hostovaná v Azure. Poskytuje integraci mezi Service Fabric a infrastrukturou Azure spolu s upgradem a správou konfigurace clusterů Service Fabric.
- Samostatná služba Service Fabric: Sada instalačních a konfiguračních nástrojů pro nasazení clusterů Service Fabric kdekoli (místně nebo na libovolném poskytovateli cloudu). Nespravuje se v Azure.
- Vývojový cluster Service Fabric: Poskytuje místní vývojové prostředí ve Windows, Linuxu nebo Macu pro vývoj aplikací Service Fabric.
Další kroky
Další informace o Service Fabric: