Megosztás a következőn keresztül:


A Service Fabric-architektúra

A Service Fabric rétegzett alrendszerekkel van felépítve. Ezek az alrendszerek lehetővé teszik olyan alkalmazások írását, amelyek a következők:

  • Magas rendelkezésre állású
  • Méretezhető
  • Kezelhető
  • Tesztelhető

Az alábbi ábrán a Service Fabric fő alrendszerei láthatók.

A Service Fabric architektúrájának diagramja

Az elosztott rendszerekben kulcsfontosságú a fürt csomópontjai közötti biztonságos kommunikáció képessége. A verem alapja az átviteli alrendszer, amely biztonságos kommunikációt biztosít a csomópontok között. Az átviteli alrendszer felett található az összevonási alrendszer, amely a különböző csomópontokat egyetlen entitásba (elnevezett fürtökbe) csoportosítja, hogy a Service Fabric észlelhesse a hibákat, vezetőválasztást hajtson végre, és konzisztens útválasztást biztosítson. Az összevonási alrendszerre rétegzett megbízhatósági alrendszer felel a Service Fabric-szolgáltatások megbízhatóságáért olyan mechanizmusokon keresztül, mint a replikáció, az erőforrás-kezelés és a feladatátvétel. Az összevonási alrendszer az üzemeltetési és aktiválási alrendszert is magában foglalta, amely egyetlen csomóponton kezeli az alkalmazások életciklusát. A felügyeleti alrendszer kezeli az alkalmazások és szolgáltatások életciklusát. A tesztelhetőségi alrendszer segítségével az alkalmazásfejlesztők szimulált hibákkal tesztelhetik szolgáltatásaikat az alkalmazások és szolgáltatások éles környezetben való üzembe helyezése előtt és után. A Service Fabric lehetővé teszi a szolgáltatási helyek feloldását a kommunikációs alrendszeren keresztül. A fejlesztők számára elérhető alkalmazásprogramozási modellek ezekre az alrendszerekre vannak rétegzve, valamint az alkalmazásmodellre az eszközkezelés engedélyezéséhez.

Átviteli alrendszer

A szállítási alrendszer egy pont–pont adatgram kommunikációs csatornát valósít meg. Ez a csatorna a Service Fabric-fürtökön belüli kommunikációra, valamint a service fabric-fürt és az ügyfelek közötti kommunikációra szolgál. Támogatja az egyirányú és a kérésre válaszoló kommunikációs mintákat, amelyek az összevonási rétegben a szórás és a csoportos küldés implementálásának alapját biztosítják. Az átviteli alrendszer X509-tanúsítványokkal vagy Windows-biztonsággal biztosítja a kommunikációt. Ezt az alrendszert a Service Fabric belsőleg használja, és nem érhető el közvetlenül a fejlesztők számára alkalmazásprogramozási célokra.

Összevonási alrendszer

Ahhoz, hogy az elosztott rendszerek csomópontjainak egy halmazát meg lehessen indokolni, konzisztens nézettel kell rendelkeznie a rendszerről. Az összevonási alrendszer a közlekedési alrendszer által biztosított kommunikációs primitíveket használja, és egyetlen egységes fürtbe fűzi össze a különböző csomópontokat, amelyekről ok lehet. Biztosítja a többi alrendszer által igényelt elosztott rendszereket – hibaészlelést, vezetőválasztást és konzisztens útválasztást. Az összevonási alrendszer elosztott kivonattáblákra épül, 128 bites tokentérrel. Az alrendszer létrehoz egy gyűrűtopológiát a csomópontok felett, és a gyűrű minden csomópontja a jogkivonat helyének egy részhalmazát foglalja le a tulajdonjoghoz. A hibaészleléshez a réteg egy szívdobbanáson és választottbírósági eljáráson alapuló bérleti mechanizmust használ. Az összevonási alrendszer bonyolult csatlakozási és indulási protokollokkal garantálja azt is, hogy egy jogkivonatnak csak egyetlen tulajdonosa létezik bármikor. Ez vezetőválasztási és konzisztens útválasztási garanciákat biztosít.

Megbízhatósági alrendszer

A megbízhatósági alrendszer lehetővé teszi a Service Fabric-szolgáltatás állapotának magas rendelkezésre állását a Replikátor, a Feladatátvétel-kezelő és a Resource Balancer használatával.

  • A Replikátor biztosítja, hogy az elsődleges szolgáltatásreplika állapotváltozásai automatikusan másodlagos replikákra replikálódjanak, fenntartva a szolgáltatásreplikakészlet elsődleges és másodlagos replikái közötti konzisztenciát. A replika felelős a replikakészlet replikái közötti kvórumkezelésért. A feladatátvételi egységgel együttműködve lekérheti a replikálni kívánt műveletek listáját, és az újrakonfigurálási ügynök biztosítja a replikakészlet konfigurációját. Ez a konfiguráció azt jelzi, hogy mely replikákat kell replikálni. A Service Fabric egy Fabric Replicator nevű alapértelmezett replikátort biztosít, amely a programozási modell API-jának segítségével magas rendelkezésre állásúvá és megbízhatóvá teheti a szolgáltatás állapotát.
  • A Feladatátvétel-kezelő biztosítja, hogy amikor csomópontokat ad hozzá vagy távolít el a fürtből, a terhelés automatikusan újraelosztásra kerül az elérhető csomópontok között. Ha a fürt egyik csomópontja meghibásodik, a fürt automatikusan újrakonfigurálja a szolgáltatásreplikákat a rendelkezésre állás fenntartása érdekében.
  • A Resource Manager szolgáltatásreplikákat helyez el a fürt meghibásodási tartományai között, és biztosítja, hogy az összes feladatátvevő egység működőképes legyen. A Resource Manager a fürtcsomópontok mögöttes megosztott készletében is kiegyensúlyozza a szolgáltatási erőforrásokat az optimális egységes terheléselosztás érdekében.

Felügyeleti alrendszer

A felügyeleti alrendszer teljes körű szolgáltatás- és alkalmazás-életciklus-felügyeletet biztosít. A PowerShell-parancsmagok és a felügyeleti API-k lehetővé teszik az alkalmazások üzembe helyezését, üzembe helyezését, javítását, frissítését és kiépítésének megszüntetését anélkül, hogy a rendelkezésre állás megszűnik. Ezt a felügyeleti alrendszer az alábbi szolgáltatásokon keresztül hajtja végre.

  • Fürtkezelő: Ez az elsődleges szolgáltatás, amely a megbízhatóságtól a feladatátvételi kezelővel együttműködve helyezi el az alkalmazásokat a csomópontokon a szolgáltatáselhelyezési korlátozások alapján. A feladatátvételi alrendszer Resource Managere biztosítja, hogy a korlátozások soha ne legyenek megtörve. A fürtkezelő kezeli az alkalmazások életciklusát az üzembe helyezéstől a kiépítés megszüntetéséig. Az állapotkezelővel integrálva biztosítja, hogy az alkalmazások rendelkezésre állása ne vesszenek el szemantikai állapot szempontjából a frissítések során.
  • Állapotkezelő: Ez a szolgáltatás lehetővé teszi az alkalmazások, szolgáltatások és fürtentitások állapotfigyelését. A fürtentitások (például csomópontok, szolgáltatáspartíciók és replikák) jelentést tehetnek az állapotinformációkról, amelyeket aztán a központosított állapottárba összesítenek. Ezek az állapotinformációk a fürt több csomópontja között elosztott szolgáltatások és csomópontok aktuális állapotának átfogó pillanatképét biztosítják, lehetővé téve a szükséges korrekciós műveletek elvégzését. Az állapot-lekérdezési API-k lehetővé teszik az állapot-alrendszernek jelentett állapotesemények lekérdezését. Az állapot lekérdezési API-k az állapottárolóban tárolt nyers állapotadatokat vagy egy adott fürtentitás összesített, értelmezett állapotadatait adják vissza.
  • Képtároló: Ez a szolgáltatás az alkalmazás bináris fájljainak tárolását és terjesztését biztosítja. Ez a szolgáltatás egy egyszerű elosztott fájltárolót biztosít, ahová az alkalmazásokat feltöltik és onnan töltik le.

Üzemeltetési alrendszer

A fürtkezelő tájékoztatja a (csomópontokon futó) üzemeltetési alrendszert, hogy mely szolgáltatásokat kell kezelnie egy adott csomóponthoz. Az üzemeltetési alrendszer ezután felügyeli az alkalmazás életciklusát az adott csomóponton. Együttműködik a megbízhatósági és állapotösszetevőkkel, hogy a replikák megfelelően legyenek elhelyezve és kifogástalan állapotban legyenek.

Kommunikációs alrendszer

Ez az alrendszer megbízható üzenetkezelést biztosít a fürtben és a szolgáltatásfelderítésben az elnevezési szolgáltatáson keresztül. Az elnevezési szolgáltatás feloldja a szolgáltatásneveket a fürt egy helyére, és lehetővé teszi a felhasználók számára a szolgáltatásnevek és tulajdonságok kezelését. Az elnevezési szolgáltatás használatával az ügyfelek biztonságosan kommunikálhatnak a fürt bármely csomópontjával a szolgáltatásnév feloldásához és a szolgáltatás metaadatainak lekéréséhez. Egy egyszerű elnevezési ügyfél API használatával a Service Fabric felhasználói olyan szolgáltatásokat és ügyfeleket fejleszthetnek, amelyek képesek feloldni az aktuális hálózati helyet a csomópont dinamizmusa vagy a fürt újraméretezése ellenére.

Tesztelhetőségi alrendszer

A tesztelhetőség egy kifejezetten a Service Fabricre épülő tesztelési szolgáltatásokhoz tervezett eszközcsomag. Az eszközök lehetővé teszik a fejlesztők számára, hogy könnyen indukáljanak értelmes hibákat, és tesztforgatókönyveket futtatva gyakorolják és érvényesítik azokat a számos állapotot és átmenetet, amelyeket egy szolgáltatás az egész élettartama során tapasztalni fog, mindezt ellenőrzött és biztonságos módon. A tesztelhetőség olyan mechanizmust is biztosít, amellyel hosszabb teszteket futtathat, amelyek a rendelkezésre állás elvesztése nélkül képesek átfutni a különböző lehetséges hibákon. Ez egy éles tesztkörnyezetet biztosít.