A Service Fabric terminológiája – áttekintés
Az Azure Service Fabric egy elosztott rendszerplatform, amely megkönnyíti a skálázható és megbízható mikroszolgáltatások csomagolását, üzembe helyezését és kezelését. A Service Fabric egy tároló- és folyamatvezénylő, amellyel fürtöit bárhol üzemeltetheti: az Azure-ban, egy helyszíni adatközpontban vagy bármely felhőszolgáltatón. Bármely keretrendszer használatával megírhatja a szolgáltatásokat, és kiválaszthatja, hogy hol futtassa az alkalmazást több környezeti beállításból. Ez a cikk a Service Fabric által a dokumentációban használt kifejezések megértéséhez használt terminológiát ismerteti.
Az alább említett kapcsolódó oktatóvideók részletesen ismertetik a Service Fabric által használt alkalmazást, csomagolást, üzembe helyezést, absztrakciókat és terminológiát:
Az infrastruktúra fogalmai
Fürt: Virtuális vagy fizikai gépek hálózattal összekapcsolt készlete, amelyekbe a mikroszolgáltatások üzembe helyezése és kezelése történt. A fürtök több ezer gépre skálázhatók.
Csomópont: A fürt részét képező gépet vagy virtuális gépet csomópontnak nevezzük. Minden csomóponthoz hozzá van rendelve egy csomópontnév (sztring). A csomópontok jellemzőkkel rendelkeznek, például elhelyezési tulajdonságokkal. Minden gép vagy virtuális gép rendelkezik egy automatikusan elindítható Windows-szolgáltatással, amely a rendszerindításkor indul el, FabricHost.exe
majd két végrehajtható műveletet indít el: Fabric.exe
és FabricGateway.exe
. Ez a két végrehajtható fájl alkotja a csomópontot. Tesztelési forgatókönyvek esetén több csomópontot is üzemeltethet egyetlen gépen vagy virtuális gépen több példány Fabric.exe
futtatásával FabricGateway.exe
.
Alkalmazás- és szolgáltatásfogalmak
Service Fabric natív alkalmazás: A Service Fabric natív alkalmazásait a natív alkalmazásmodell (XML-alapú alkalmazás- és szolgáltatásjegyzékek) ismerteti.
A Service Fabric natív alkalmazással kapcsolatos fogalmak
Alkalmazás: Az alkalmazás olyan rendszerösszetevő szolgáltatások gyűjteménye, amelyek egy bizonyos funkciót vagy függvényt hajtanak végre. Az egyes alkalmazáspéldányok életciklusa egymástól függetlenül kezelhető.
Szolgáltatás: A szolgáltatás teljes és önálló függvényt végez, és más szolgáltatásoktól függetlenül indítható és futtatható. A szolgáltatás kódból, konfigurációból és adatokból áll. Minden szolgáltatáshoz a kód a végrehajtható bináris fájlokból áll, a konfiguráció a futtatáskor betölthető szolgáltatásbeállításokból, az adatok pedig a szolgáltatás által felhasználandó tetszőleges statikus adatokból állnak.
Alkalmazás típusa: A szolgáltatástípusok gyűjteményéhez rendelt név/verzió. Ez egy ApplicationManifest.xml
fájlban van definiálva, és egy alkalmazáscsomag könyvtárába van beágyazva. A címtár ezután át lesz másolva a Service Fabric-fürt képtárolójába. Ezután létrehozhat egy elnevezett alkalmazást ebből az alkalmazástípusból a fürtön belül.
További információért olvassa el az alkalmazásmodellről szóló cikket.
Alkalmazáscsomag: Az alkalmazástípus fájlját ApplicationManifest.xml
tartalmazó lemezkönyvtár. Az alkalmazástípust alkotó egyes szolgáltatástípusok szolgáltatáscsomagjaira hivatkozik. Az alkalmazáscsomag könyvtárában lévő fájlok át lesznek másolva a Service Fabric-fürt képtárolójába. Egy e-mail-alkalmazástípus alkalmazáscsomagja például tartalmazhat egy üzenetsor-szolgáltatási csomagra, egy frontend-service csomagra és egy adatbázis-szolgáltatási csomagra mutató hivatkozásokat.
Elnevezett alkalmazás: Miután átmásolta az alkalmazáscsomagot a képtárolóba, létrehozza az alkalmazás egy példányát a fürtben. Az alkalmazáscsomag alkalmazástípusának megadásakor létrehoz egy példányt annak nevével vagy verziójával. Minden alkalmazástípus-példányhoz egy egységes erőforrás-azonosító (URI) név tartozik, amely a következőképpen néz ki: "fabric:/MyNamedApp"
. A fürtön belül több elnevezett alkalmazást is létrehozhat egyetlen alkalmazástípusból. Elnevezett alkalmazásokat is létrehozhat különböző alkalmazástípusokból. Az egyes elnevezett alkalmazásokat egymástól függetlenül felügyeli és verziószámozza.
Szolgáltatás típusa: A szolgáltatás kódcsomagjaihoz, adatcsomagjaihoz és konfigurációs csomagjaihoz rendelt név/verzió. A szolgáltatástípus a ServiceManifest.xml
fájlban van definiálva, és egy szolgáltatáscsomag könyvtárába van beágyazva. A szolgáltatáscsomag könyvtárára ezután egy alkalmazáscsomag fájlja hivatkozik ApplicationManifest.xml
. A fürtön belül, egy elnevezett alkalmazás létrehozása után létrehozhat egy elnevezett szolgáltatást az alkalmazástípus egyik szolgáltatástípusából. A szolgáltatástípus fájlja ServiceManifest.xml
a szolgáltatást írja le.
További információért olvassa el az alkalmazásmodellről szóló cikket.
Kétféle szolgáltatás létezik:
- Állapot nélküli: Állapot nélküli szolgáltatás használata, ha a szolgáltatás állandó állapota egy külső tárolószolgáltatásban , például az Azure Storage-ban, az Azure SQL Database-ben vagy az Azure Cosmos DB-ben van tárolva. Állapot nélküli szolgáltatást akkor használjon, ha a szolgáltatás nem rendelkezik állandó tárhellyel. Például egy olyan számológép-szolgáltatás esetében, ahol az értékek átadódnak a szolgáltatásnak, a rendszer számítást végez, amely ezeket az értékeket használja, majd visszaad egy eredményt.
- Állapotalapú: Állapotalapú szolgáltatást akkor használjon, ha azt szeretné, hogy a Service Fabric a Reliable Collections vagy Reliable Actors programozási modelleken keresztül kezelje a szolgáltatás állapotát. Névvel ellátott szolgáltatás létrehozásakor adja meg, hogy hány partíciót szeretne elosztani az állapottal a méretezhetőség érdekében. Adja meg azt is, hogy a megbízhatóság érdekében hányszor replikálja az állapotot csomópontok között. Minden megnevezett szolgáltatás egyetlen elsődleges replikával és több másodlagos replikával rendelkezik. Az elsődleges replikára való íráskor módosíthatja a nevesített szolgáltatás állapotát. A Service Fabric ezután replikálja ezt az állapotot az összes másodlagos replikára az állapot szinkronizálása érdekében. A Service Fabric automatikusan észleli, ha egy elsődleges replika meghibásodik, és előléptet egy meglévő másodlagos replikát egy elsődleges replikára. A Service Fabric ezután létrehoz egy új másodlagos replikát.
A replikák vagy példányok az üzembe helyezett és futó szolgáltatások kódjára (és állapotára) hivatkoznak. Lásd: Replikák és példányok.
Az újrakonfigurálás a szolgáltatás replikakészletében bekövetkező változások folyamatára utal. Lásd: Újrakonfigurálás.
Szolgáltatáscsomag: A szolgáltatástípus fájlját ServiceManifest.xml
tartalmazó lemezkönyvtár. Ez a fájl a szolgáltatástípus kódára, statikus adataira és konfigurációs csomagjaira hivatkozik. A szolgáltatáscsomag könyvtárában található fájlokra az alkalmazástípus fájlja hivatkozik ApplicationManifest.xml
. Egy szolgáltatáscsomag például hivatkozhat az adatbázis-szolgáltatást alkotó kódra, statikus adatokra és konfigurációs csomagokra.
Elnevezett szolgáltatás: Egy elnevezett alkalmazás létrehozása után létrehozhat egy példányt a fürt egyik szolgáltatástípusából. A szolgáltatástípust a nevével/verziójával adhatja meg. Minden szolgáltatástípus-példányhoz hozzá van rendelve egy URI-név, amelynek hatóköre a nevesített alkalmazás URI-ja alatt van. Ha például létrehoz egy "MyDatabase" nevű szolgáltatást egy "MyNamedApp" nevű alkalmazásban, az URI a következőképpen néz ki: "fabric:/MyNamedApp/MyDatabase"
. Egy nevesített alkalmazásban több nevesített szolgáltatást is létrehozhat. Minden megnevezett szolgáltatás saját partíciós sémával és példány- vagy replikaszámokkal rendelkezhet.
Kódcsomag: A szolgáltatástípus végrehajtható fájljait, általában EXE/DLL-fájlokat tartalmazó lemezkönyvtár. A kódcsomag könyvtárában található fájlokra a szolgáltatástípus fájlja hivatkozik ServiceManifest.xml
. Névvel ellátott szolgáltatás létrehozásakor a kódcsomag át lesz másolva a névvel ellátott szolgáltatás futtatásához kijelölt csomópontra vagy csomópontokra. Ezután a kód elindul. A kódcsomagok végrehajtható fájljainak két típusa létezik:
- Vendég végrehajthatók: A gazda operációs rendszeren (Windows vagy Linux) futó végrehajtható fájlok. Ezek a végrehajtható fájlok nem hivatkoznak Service Fabric-futtatókörnyezeti fájlokra, és ezért nem használnak Service Fabric-programozási modelleket. Ezek a végrehajtható fájlok nem tudják használni bizonyos Service Fabric-funkciókat, például az elnevezési szolgáltatást a végpontfelderítéshez. A vendég végrehajthatók nem tudnak jelentést tenni az egyes szolgáltatáspéldányokra jellemző terhelési metrikákról.
- Szolgáltatás-gazdagép végrehajtható elemei: Service Fabric-programozási modelleket használó végrehajtható fájlok Service Fabric-futtatókörnyezeti fájlok csatolásával, a Service Fabric-funkciók engedélyezésével. Egy elnevezett szolgáltatáspéldány például regisztrálhat végpontokat a Service Fabric elnevezési szolgáltatásával, és betöltési metrikákat is jelenthet.
Adatcsomag: A szolgáltatástípus statikus, írásvédett adatfájljait, jellemzően fénykép-, hang- és videofájljait tartalmazó lemezkönyvtár. Az adatcsomag könyvtárában lévő fájlokra a szolgáltatástípus fájlja hivatkozik ServiceManifest.xml
. Névvel ellátott szolgáltatás létrehozásakor a rendszer az adatcsomagot a névvel ellátott szolgáltatás futtatásához kijelölt csomópontra vagy csomópontokra másolja. A kód elindul, és most már hozzáférhet az adatfájlokhoz.
Konfigurációs csomag: A szolgáltatástípus statikus, írásvédett konfigurációs fájljait, általában szöveges fájlokat tartalmazó lemezkönyvtár. A konfigurációs csomag könyvtárában található fájlokra a szolgáltatástípus fájlja hivatkozik ServiceManifest.xml
. Névvel ellátott szolgáltatás létrehozásakor a rendszer a konfigurációs csomag fájljait átmásolja a névvel ellátott szolgáltatás futtatásához kijelölt egy vagy több csomópontra. Ezután a kód elindul, és most már hozzáférhet a konfigurációs fájlokhoz.
Tárolók: A Service Fabric alapértelmezés szerint folyamatként telepíti és aktiválja a szolgáltatásokat. A Service Fabric a szolgáltatásokat tárolólemezképekben is üzembe helyezheti. A tárolók egy virtualizálási technológia, amely elvonja az alapul szolgáló operációs rendszert az alkalmazásoktól. Egy alkalmazás és annak futtatókörnyezete, függőségei és rendszerkódtárai tárolón belül futnak. A tároló teljes, privát hozzáféréssel rendelkezik az operációs rendszer szerkezeteinek saját elkülönített nézetéhez. A Service Fabric támogatja a Windows Server- és Docker-tárolókat Linuxon. További információkért olvassa el a Service Fabricet és a tárolókat.
Partícióséma: Egy elnevezett szolgáltatás létrehozásakor meg kell adnia egy partíciós sémát. A jelentős mennyiségű állapotú szolgáltatások felosztják az adatokat a partíciók között, ami szétosztja az állapotot a fürt csomópontjai között. Az adatok partíciók közötti felosztásával a nevesített szolgáltatás állapota méretezhető. A partíción belül az állapot nélküli névvel ellátott szolgáltatások példányokkal rendelkeznek, míg az állapotalapú névvel ellátott szolgáltatások replikákkal rendelkeznek. Az állapot nélküli szolgáltatások általában csak egy partícióval rendelkeznek, mivel nincsenek belső állapotuk. A partíciópéldányok rendelkezésre állást biztosítanak. Ha egy példány meghibásodik, a többi példány továbbra is megfelelően működik, majd a Service Fabric létrehoz egy új példányt. Az állapotalapú elnevezett szolgáltatások fenntartják az állapotukat a replikákban, és minden partíció saját replikakészlettel rendelkezik, így az állapot szinkronban marad. Ha egy replika meghibásodik, a Service Fabric létrehoz egy új replikát a meglévő replikákból.
További információért olvassa el a Partition Service Fabric megbízható szolgáltatásokról szóló cikket.
Rendszerszolgáltatások
Minden fürtben vannak olyan rendszerszolgáltatások, amelyek a Service Fabric platformképességeit biztosítják.
Elnevezési szolgáltatás: Minden Service Fabric-fürt rendelkezik egy elnevezési szolgáltatással, amely feloldja a szolgáltatásneveket a fürt egy helyére. Kezelheti a szolgáltatásneveket és a tulajdonságokat, például a fürt internetes tartománynévrendszerét (DNS). Az ügyfelek biztonságosan kommunikálnak a fürt bármely csomópontjával az Elnevezési szolgáltatással a szolgáltatásnév és a hely feloldásához. Az alkalmazások a fürtben mozognak. Ennek oka lehet például a hibák, az erőforrás-kiegyensúlyozás vagy a fürt átméretezése. Az aktuális hálózati helyet feloldó szolgáltatásokat és ügyfeleket fejleszthet. Az ügyfelek a tényleges számítógép IP-címét és portját szerzik be, ahol jelenleg fut.
Az elnevezési szolgáltatással működő ügyfél- és szolgáltatáskommunikációs API-kkal kapcsolatos további információkért olvassa el a Szolgáltatásokkal való kommunikáció című témakört.
Képtároló szolgáltatás: Minden Service Fabric-fürt rendelkezik egy Image Store szolgáltatással, ahol az üzembe helyezett, verziószámozott alkalmazáscsomagok megmaradnak. Másolja az alkalmazáscsomagot az Image Store-ba, majd regisztrálja az alkalmazáscsomagban található alkalmazástípust. Az alkalmazástípus kiépítése után létre kell hoznia egy nevesített alkalmazást belőle. Miután az összes elnevezett alkalmazást törölte, törölheti az alkalmazástípus regisztrációját az Image Store szolgáltatásból.
Az Image Store szolgáltatással kapcsolatos további információkért olvassa el az ImageStoreConnectionString beállítás megértését.
Az alkalmazások Image Store szolgáltatásban való üzembe helyezésével kapcsolatos további információkért olvassa el az Alkalmazás üzembe helyezése című cikket.
Feladatátvétel-kezelő szolgáltatás: Minden Service Fabric-fürt rendelkezik feladatátvétel-kezelő szolgáltatással, amely a következő műveletekért felelős:
- A szolgáltatások magas rendelkezésre állásával és konzisztenciájával kapcsolatos funkciókat hajt végre.
- Az alkalmazás- és fürtfrissítések vezénylítése.
- Más rendszerösszetevőkkel is együttműködik.
Repair Manager szolgáltatás: Ez egy választható rendszerszolgáltatás, amely lehetővé teszi, hogy a javítási műveletek biztonságos, automatizált és transzparens módon hajthatók végre a fürtön. A Javításkezelő a következő helyen használható:
- Azure-karbantartási javítások elvégzése Silver és Gold tartósságú Azure Service Fabric-fürtökön.
- Javítási műveletek végrehajtása a Patch Orchestration alkalmazáshoz
Üzembe helyezési és alkalmazásmodellek
A szolgáltatások üzembe helyezéséhez le kell írnia a futtatás módját. A Service Fabric három különböző üzemi modellt támogat:
Natív modell
A natív alkalmazásmodell teljes körű, alacsony szintű hozzáférést biztosít az alkalmazásoknak a Service Fabrichez. Az alkalmazások és szolgáltatások regisztrált típusokként vannak definiálva az XML-jegyzékfájlokban.
A natív modell támogatja a Reliable Services és Reliable Actors keretrendszereket, amelyek hozzáférést biztosítanak a Service Fabric futtatókörnyezeti API-khoz és a fürtkezelési API-khoz C# és Java nyelven. A natív modell tetszőleges tárolókat és végrehajtható fájlokat is támogat.
Reliable Services: Az állapot nélküli és állapotalapú szolgáltatások létrehozásához használandó API. Az állapotalapú szolgáltatások az állapotukat megbízható gyűjteményekben, például szótárban vagy üzenetsorban tárolják. Különböző kommunikációs vermeket is csatlakoztathat, például a Web API-t és a Windows Communication Foundationt (WCF).
Reliable Actors: Egy API, amely állapot nélküli és állapotalapú objektumokat hoz létre a virtuális aktor programozási modelljén keresztül. Ez a modell akkor hasznos, ha sok független számítási vagy állapotegységet alkalmaz. Ez a modell egy turn-alapú szálkezelési modellt használ, ezért a legjobb, ha elkerüli a más szereplőknek vagy szolgáltatásoknak kitárcsázó kódot, mert az egyes szereplők nem tudnak más bejövő kéréseket feldolgozni, amíg az összes kimenő kérése be nem fejeződik.
A meglévő alkalmazásokat a Service Fabricben is futtathatja:
Tárolók: A Service Fabric támogatja a Docker-tárolók Linux- és Windows Server-tárolókon való telepítését a Windows Server 2016-on, valamint támogatja a Hyper-V elkülönítési módot. A Service Fabric-alkalmazásmodellben a tároló egy olyan alkalmazásgazda, amelyben több szolgáltatásreplika található. A Service Fabric bármilyen tárolót futtathat, és a forgatókönyv hasonló a vendég végrehajtható forgatókönyvéhez, ahol egy meglévő alkalmazást csomagol egy tárolóba. Emellett a Service Fabric-szolgáltatásokat tárolókon belül is futtathatja.
Vendég végrehajtható fájlok: Bármilyen típusú kódot futtathat, például Node.js, Python, Java vagy C++ kódot az Azure Service Fabric szolgáltatásként. A Service Fabric az ilyen típusú szolgáltatásokat vendég végrehajtható fájlként jelöli, amelyeket állapot nélküli szolgáltatásként kezelnek. A Service Fabric-fürtön végrehajtható vendég futtatásának előnyei közé tartozik a magas rendelkezésre állás, az állapotfigyelés, az alkalmazás életciklusának kezelése, a nagy sűrűség és a felderíthetőség.
További információért olvassa el a Szolgáltatáshoz tartozó programozási modell kiválasztása című cikket.
Docker Compose
A Docker Compose a Docker-projekt része. A Service Fabric korlátozott támogatást nyújt az alkalmazások Docker Compose-modellel történő üzembe helyezéséhez.
Környezetek
A Service Fabric egy nyílt forráskódú platform technológia, amelyen számos különböző szolgáltatás és termék alapul. A Microsoft a következő lehetőségeket kínálja:
- Azure Service Fabric: Az Azure által üzemeltetett Service Fabric-fürtajánlat. Integrációt biztosít a Service Fabric és az Azure-infrastruktúra között, valamint a Service Fabric-fürtök frissítését és konfigurációkezelését.
- Önálló Service Fabric: Telepítési és konfigurációs eszközök készlete a Service Fabric-fürtök bárhol (a helyszínen vagy bármely felhőszolgáltatón) való üzembe helyezéséhez. Nem az Azure kezeli.
- Service Fabric fejlesztői fürt: Helyi fejlesztési élményt nyújt Windows, Linux vagy Mac rendszeren a Service Fabric-alkalmazások fejlesztéséhez.
Következő lépések
További információ a Service Fabricről: