Översikt över Service Fabric-terminologi

Azure Service Fabric är en distribuerad systemplattform som gör det enkelt att paketera, distribuera och hantera skalbara och tillförlitliga mikrotjänster. Service Fabric är en container och processerkestrerare som gör att du kan vara värd för dina kluster var som helst: i Azure, i ett lokalt datacenter eller på valfri molnleverantör. Du kan använda valfritt ramverk för att skriva dina tjänster och välja var du vill köra programmet från flera miljöval. Den här artikeln beskriver den terminologi som används av Service Fabric för att förstå de termer som används i dokumentationen.

De relaterade utbildningsvideorna som nämns nedan beskriver programmet, paketering, distribution, abstraktioner och terminologi som används av Service Fabric:

Infrastrukturbegrepp

Kluster: En nätverksansluten uppsättning virtuella eller fysiska datorer där dina mikrotjänster distribueras och hanteras. Kluster kan skalas upp till tusentals datorer.

Nod: En dator eller virtuell dator som ingår i ett kluster kallas för en nod. Varje nod tilldelas ett nodnamn (sträng). Noder har egenskaper, till exempel placeringsegenskaper. Varje dator eller virtuell dator har en Windows-tjänst för automatisk start, FabricHost.exe, som börjar köras vid start och sedan startar två körbara filer: Fabric.exe och FabricGateway.exe. Dessa två körbara filer utgör noden. För testscenarier kan du vara värd för flera noder på en enda dator eller virtuell dator genom att köra flera instanser av Fabric.exe och FabricGateway.exe.

Program- och tjänstbegrepp

Internt Service Fabric-program: Inbyggda Service Fabric-program beskrivs av den interna programmodellen (XML-baserade program och tjänstmanifest).

Begrepp för internt Service Fabric-program

Program: Ett program är en samling komponenttjänster som utför en viss funktion eller funktioner. Livscykeln för varje programinstans kan hanteras oberoende av varandra.

Tjänst: En tjänst utför en fullständig och fristående funktion och kan starta och köra oberoende av andra tjänster. En tjänst består av kod, konfiguration och data. För varje tjänst består koden av de körbara binärfilerna, konfigurationen består av tjänstinställningar som kan läsas in vid körning och data består av godtyckliga statiska data som ska användas av tjänsten.

Programtyp: Namnet/versionen som tilldelats en samling tjänsttyper. Den definieras i en ApplicationManifest.xml fil och bäddas in i en programpaketkatalog. Katalogen kopieras sedan till Service Fabric-klustrets avbildningsarkiv. Du kan sedan skapa ett namngivet program från den här programtypen i klustret.

Mer information finns i artikeln Programmodell .

Programpaket: En diskkatalog som innehåller programtypens ApplicationManifest.xml fil. Refererar till tjänstpaketen för varje tjänsttyp som utgör programtypen. Filerna i programpaketkatalogen kopieras till Service Fabric-klustrets avbildningsarkiv. Ett programpaket för en e-postprogramtyp kan till exempel innehålla referenser till ett kötjänstpaket, ett klientdelstjänstpaket och ett databastjänstpaket.

Namngivet program: När du har kopierat ett programpaket till avbildningsarkivet skapar du en instans av programmet i klustret. Du skapar en instans när du anger programtypen för programpaketet med hjälp av dess namn eller version. Varje programtypinstans tilldelas ett URI-namn (Uniform Resource Identifier) som ser ut så här: "fabric:/MyNamedApp". I ett kluster kan du skapa flera namngivna program från en enda programtyp. Du kan också skapa namngivna program från olika programtyper. Varje namngivet program hanteras och versionshanteras oberoende av varandra.

Tjänsttyp: Namnet/versionen som tilldelats till en tjänsts kodpaket, datapaket och konfigurationspaket. Tjänsttypen definieras i ServiceManifest.xml filen och bäddas in i en tjänstpaketkatalog. Katalogen för tjänstpaket refereras sedan till av ett programpakets ApplicationManifest.xml fil. När du har skapat ett namngivet program i klustret kan du skapa en namngiven tjänst från någon av programtypens tjänsttyper. Tjänsttypens ServiceManifest.xml fil beskriver tjänsten.

Mer information finns i artikeln Programmodell .

Det finns två typer av tjänster:

  • Tillståndslös: Använd en tillståndslös tjänst när tjänstens beständiga tillstånd lagras i en extern lagringstjänst, till exempel Azure Storage, Azure SQL Database eller Azure Cosmos DB. Använd en tillståndslös tjänst när tjänsten inte har någon beständig lagring. För en kalkylatortjänst där värden skickas till tjänsten utförs till exempel en beräkning som använder dessa värden och sedan returneras ett resultat.
  • Tillståndskänslig: Använd en tillståndskänslig tjänst när du vill att Service Fabric ska hantera tjänstens tillstånd via programmeringsmodellerna Reliable Collections eller Reliable Actors. När du skapar en namngiven tjänst anger du hur många partitioner du vill sprida tillståndet över för skalbarhet. Ange också hur många gånger du vill replikera ditt tillstånd mellan noder för tillförlitlighet. Varje namngiven tjänst har en enda primär replik och flera sekundära repliker. Du ändrar den namngivna tjänstens tillstånd när du skriver till den primära repliken. Service Fabric replikerar sedan det här tillståndet till alla sekundära repliker för att hålla ditt tillstånd synkroniserat. Service Fabric identifierar automatiskt när en primär replik misslyckas och befordrar en befintlig sekundär replik till en primär replik. Service Fabric skapar sedan en ny sekundär replik.

Repliker eller instanser refererar till kod (och tillstånd för tillståndskänsliga tjänster) för en tjänst som distribueras och körs. Se Repliker och instanser.

Omkonfiguration avser processen för alla ändringar i replikuppsättningen för en tjänst. Se Omkonfiguration.

Tjänstpaket: En diskkatalog som innehåller tjänsttypens ServiceManifest.xml fil. Den här filen refererar till kod, statiska data och konfigurationspaket för tjänsttypen. Filerna i tjänstpaketkatalogen refereras av programtypens ApplicationManifest.xml fil. Ett tjänstpaket kan till exempel referera till de kod-, statiska data- och konfigurationspaket som utgör en databastjänst.

Namngiven tjänst: När du har skapat ett namngivet program kan du skapa en instans av en av dess tjänsttyper i klustret. Du anger tjänsttypen med dess namn/version. Varje instans av tjänsttyp tilldelas ett URI-namn under dess namngivna programs URI. Om du till exempel skapar en "MyDatabase"-namngiven tjänst i ett "MyNamedApp"-program ser URI:n ut så här: "fabric:/MyNamedApp/MyDatabase". I ett namngivet program kan du skapa flera namngivna tjänster. Varje namngiven tjänst kan ha ett eget partitionsschema och antal instanser eller repliker.

Kodpaket: En diskkatalog som innehåller tjänsttypens körbara filer, vanligtvis EXE/DLL-filer. Filerna i kodpaketkatalogen refereras av tjänsttypens ServiceManifest.xml fil. När du skapar en namngiven tjänst kopieras kodpaketet till noden eller noderna som valts för att köra den namngivna tjänsten. Sedan börjar koden köras. Det finns två typer av körbara kodpaket:

  • Körbara gästfiler: Körbara filer som körs som de är på värdoperativsystemet (Windows eller Linux). Dessa körbara filer länkar inte till eller refererar till några Service Fabric-körningsfiler och använder därför inga Service Fabric-programmeringsmodeller. Dessa körbara filer kan inte använda vissa Service Fabric-funktioner, till exempel namngivningstjänsten för slutpunktsidentifiering. Körbara gästdatorer kan inte rapportera inläsningsmått som är specifika för varje tjänstinstans.
  • Körbara filer för tjänstvärdar: Körbara filer som använder Service Fabric-programmeringsmodeller genom att länka till Service Fabric-körningsfiler och aktivera Service Fabric-funktioner. En namngiven tjänstinstans kan till exempel registrera slutpunkter med Service Fabrics namngivningstjänst och även rapportera inläsningsmått.

Datapaket: En diskkatalog som innehåller tjänsttypens statiska, skrivskyddade datafiler, vanligtvis foto-, ljud- och videofiler. Filerna i datapaketkatalogen refereras av tjänsttypens ServiceManifest.xml fil. När du skapar en namngiven tjänst kopieras datapaketet till noden eller noderna som valts för att köra den namngivna tjänsten. Koden börjar köras och kan nu komma åt datafilerna.

Konfigurationspaket: En diskkatalog som innehåller tjänsttypens statiska, skrivskyddade konfigurationsfiler, vanligtvis textfiler. Filerna i konfigurationspaketkatalogen refereras av tjänsttypens ServiceManifest.xml fil. När du skapar en namngiven tjänst kopieras filerna i konfigurationspaketet till en eller flera noder som valts för att köra den namngivna tjänsten. Sedan börjar koden köras och kan nu komma åt konfigurationsfilerna.

Containrar: Som standard distribuerar och aktiverar Service Fabric tjänster som processer. Service Fabric kan också distribuera tjänster i containeravbildningar. Containrar är en virtualiseringsteknik som abstraherar det underliggande operativsystemet från program. Ett program och dess körningsmiljö, beroenden och systembibliotek körs i en container. Containern har fullständig, privat åtkomst till containerns egen isolerade vy av operativsystemskonstruktionerna. Service Fabric stöder Windows Server-containrar och Docker-containrar i Linux. Mer information finns i Service Fabric och containrar.

Partitionsschema: När du skapar en namngiven tjänst anger du ett partitionsschema. Tjänster med stora mängder tillstånd delar upp data mellan partitioner, vilket sprider tillståndet över klustrets noder. Genom att dela upp data mellan partitioner kan den namngivna tjänstens tillstånd skalas. I en partition har tillståndslösa namngivna tjänster instanser, medan tillståndskänsliga namngivna tjänster har repliker. Vanligtvis har tillståndslösa namngivna tjänster bara en partition, eftersom de inte har något internt tillstånd. Partitionsinstanserna tillhandahåller tillgänglighet. Om en instans misslyckas fortsätter andra instanser att fungera normalt och sedan skapar Service Fabric en ny instans. Tillståndskänsliga namngivna tjänster behåller sitt tillstånd inom repliker och varje partition har en egen replikuppsättning så att tillståndet hålls synkroniserat. Om en replik skulle misslyckas skapar Service Fabric en ny replik från de befintliga replikerna.

Mer information finns i artikeln Om tillförlitliga tjänster för Partition Service Fabric .

Systemtjänster

Det finns systemtjänster som skapas i varje kluster som tillhandahåller plattformsfunktionerna i Service Fabric.

Namngivningstjänst: Varje Service Fabric-kluster har en namngivningstjänst som löser tjänstnamn till en plats i klustret. Du hanterar tjänstnamnen och egenskaperna, t.ex. ett DNS (Internet Domain Name System) för klustret. Klienter kommunicerar säkert med valfri nod i klustret med hjälp av namngivningstjänsten för att matcha ett tjänstnamn och dess plats. Program flyttas inom klustret. Detta kan till exempel bero på fel, resursutjämning eller storleksändring av klustret. Du kan utveckla tjänster och klienter som löser den aktuella nätverksplatsen. Klienter hämtar den faktiska datorns IP-adress och port där den körs för närvarande.

Läs Kommunicera med tjänster för mer information om klient- och tjänstkommunikations-API:er som fungerar med namngivningstjänsten.

Image Store-tjänsten: Varje Service Fabric-kluster har en image store-tjänst där distribuerade versionsbaserade programpaket behålls. Kopiera ett programpaket till Avbildningsarkivet och registrera sedan programtypen i det programpaketet. När programtypen har etablerats skapar du ett namngivet program från den. Du kan avregistrera en programtyp från image store-tjänsten när alla dess namngivna program har tagits bort.

Mer information om image store-tjänsten finns i Förstå inställningen ImageStoreConnectionString .

Läs artikeln Distribuera ett program om du vill ha mer information om hur du distribuerar program till image store-tjänsten.

Failover Manager-tjänsten: Varje Service Fabric-kluster har en Failover Manager-tjänst som ansvarar för följande åtgärder:

  • Utför funktioner som rör hög tillgänglighet och konsekvens för tjänster.
  • Samordnar program- och klusteruppgraderingar.
  • Interagerar med andra systemkomponenter.

Repair Manager-tjänsten: Det här är en valfri systemtjänst som gör att reparationsåtgärder kan utföras på ett kluster på ett sätt som är säkert, automatiserat och transparent. Reparationshanteraren används i:

Distributions- och programmodeller

Om du vill distribuera dina tjänster måste du beskriva hur de ska köras. Service Fabric stöder tre olika distributionsmodeller:

Intern modell

Den interna programmodellen ger dina program fullständig åtkomst på låg nivå till Service Fabric. Program och tjänster definieras som registrerade typer i XML-manifestfiler.

Den inbyggda modellen stöder ramverken Reliable Services och Reliable Actors, som ger åtkomst till Service Fabric Runtime-API:er och klusterhanterings-API:er i C# och Java. Den inbyggda modellen stöder också godtyckliga containrar och körbara filer.

Reliable Services: Ett API för att skapa tillståndslösa och tillståndskänsliga tjänster. Tillståndskänsliga tjänster lagrar sitt tillstånd i Reliable Collections, till exempel en ordlista eller en kö. Du kan också ansluta olika kommunikationsstackar, till exempel webb-API och Windows Communication Foundation (WCF).

Reliable Actors: Ett API för att skapa tillståndslösa och tillståndskänsliga objekt via programmeringsmodellen virtuell aktör. Den här modellen är användbar när du har många oberoende beräkningsenheter eller tillståndsenheter. Den här modellen använder en turbaserad trådningsmodell, så det är bäst att undvika kod som anropar andra aktörer eller tjänster eftersom en enskild aktör inte kan bearbeta andra inkommande begäranden förrän alla utgående begäranden har slutförts.

Du kan också köra dina befintliga program på Service Fabric:

Containrar: Service Fabric stöder distribution av Docker-containrar på Linux- och Windows Server-containrar på Windows Server 2016, tillsammans med stöd för Hyper-V-isoleringsläge. I Service Fabric-programmodellen representerar en container en programvärd där flera tjänstrepliker placeras. Service Fabric kan köra alla containrar och scenariot liknar det körbara gästscenariot, där du paketerade ett befintligt program i en container. Dessutom kan du köra Service Fabric-tjänster i containrar också.

Körbara gästfiler: Du kan köra valfri typ av kod, till exempel Node.js, Python, Java eller C++ i Azure Service Fabric som en tjänst. Service Fabric refererar till dessa typer av tjänster som körbara gästdatorer, som behandlas som tillståndslösa tjänster. Fördelarna med att köra en körbar gäst i ett Service Fabric-kluster är hög tillgänglighet, hälsoövervakning, programlivscykelhantering, hög densitet och identifiering.

Mer information finns i artikeln Choose a programming model for your service (Välj en programmeringsmodell för din tjänst ).

Docker Compose

Docker Compose är en del av Docker-projektet. Service Fabric har begränsat stöd för distribution av program med Docker Compose-modellen.

Miljöer

Service Fabric är en plattformsteknik med öppen källkod som flera olika tjänster och produkter baseras på. Microsoft tillhandahåller följande alternativ:

  • Azure Service Fabric: Azures värdbaserade Service Fabric-klustererbjudande. Det ger integrering mellan Service Fabric och Azure-infrastrukturen, tillsammans med uppgradering och konfigurationshantering av Service Fabric-kluster.
  • Fristående Service Fabric: En uppsättning installations- och konfigurationsverktyg för att distribuera Service Fabric-kluster var som helst (lokalt eller på valfri molnleverantör). Hanteras inte av Azure.
  • Service Fabric-utvecklingskluster: Ger en lokal utvecklingsupplevelse i Windows, Linux eller Mac för utveckling av Service Fabric-program.

Nästa steg

Mer information om Service Fabric: