Service Fabric översikt över 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 processorkestrerare som gör att du kan vara värd för dina kluster var som helst:i Azure, i ett lokalt datacenter eller hos valfri molnleverantör. Du kan använda val annat ramverk för att skriva dina tjänster och välja var du vill köra programmet från flera miljöalternativ. Den här artikeln beskriver den terminologi som används Service Fabric för att förstå de termer som används i dokumentationen.

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, , som börjar köras vid start och startar FabricHost.exe sedan 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 enskild dator eller virtuell dator genom att köra flera instanser av Fabric.exe och FabricGateway.exe .

Program- och tjänstbegrepp

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

Service Fabric inbyggda program

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

Tjänst: En tjänst utför en komplett och fristående funktion och kan starta och köras oberoende av andra tjänster. En tjänst består av kod, konfiguration och data. För varje tjänst består koden av körbara binärfiler, 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 fil ApplicationManifest.xml 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 queue-service-paket, ett frontend-service-paket 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 instans av programtyp 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 versionsdelade oberoende av varandra.

Tjänsttyp: Namnet/versionen som tilldelats till en tjänsts kodpaket, datapaket och konfigurationspaket. Tjänsttypen definieras i filen och ServiceManifest.xml bäddas in i en katalog för tjänstpaket. Tjänstpaketkatalogen 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 en 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 till exempel en kalkylatortjänst där värden skickas till tjänsten utförs en beräkning som använder dessa värden och sedan returneras ett resultat.
  • Tillståndsfull: Använd en tillståndsfull tjänst när Service Fabric vill hantera tjänstens tillstånd via dess Reliable Collections eller Reliable Actors programmeringsmodeller. När du skapar en namngiven tjänst anger du hur många partitioner du vill sprida ut ditt tillstånd över för skalbarhet. Ange också hur många gånger tillståndet ska replikeras 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 sedan det här tillståndet till alla sekundära repliker för att hålla ditt tillstånd synkroniserat. Service Fabric 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åndsful services) 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 koden, statiska data och konfigurationspaket för tjänsttypen. Filerna i tjänstpaketkatalogen refereras till av programtypens ApplicationManifest.xml -fil. Ett tjänstpaket kan till exempel referera till koden, 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 hjälp av dess namn/version. Varje instans av tjänsttyp tilldelas ett URI-namn som omfattas av dess namngivna program-URI. Om du till exempel skapar en "MyDatabase"-namngiven tjänst i ett "MyNamedApp"-program ser URI:en 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 till 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ästkörningar: 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 Service Fabric körningsfiler och använder därför inte några 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ästdata kan inte rapportera inläsningsmått som är specifika för varje tjänstinstans.
  • Körbara tjänstvärdar: Körbara filer som använder Service Fabric programmeringsmodeller genom att länka Service Fabric till körningsfiler, vilket Service Fabric funktioner. En namngiven tjänstinstans kan till exempel registrera slutpunkter Service Fabric tjänstens Naming Service ä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 till 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 till 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 Service Fabric distribuerar och aktiverar tjänster som processer. Service Fabric även distribuera tjänster i containeravbildningar. Containrar är en virtualiseringsteknik som abstraherar det underliggande operativsystemet från program. Ett program och dess körning, beroenden och systembibliotek körs i en container. Containern har fullständig, privat åtkomst till containerns egen isolerade vy över operativsystemets konstruktioner. Service Fabric har stöd för 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 över partitioner, vilket sprider tillståndet över klustrets noder. Genom att dela data mellan partitioner kan den namngivna tjänstens tillstånd skalas. I en partition har tillståndslösa namngivna tjänster instanser, medan tillståndsful namngivna tjänster har repliker. Tillståndslösa namngivna tjänster har vanligtvis 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 Service Fabric skapar en ny instans. Tillståndsful namngivna tjänster upprätthåller sitt tillstånd inom repliker och varje partition har en egen replikuppsättning så att tillståndet hålls synkroniserat. Om en replik misslyckas Service Fabric en ny replik från de befintliga replikerna.

Läs artikeln Partition Service Fabric Reliable Services för mer information.

Systemtjänster

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

Naming Service: Varje Service Fabric kluster har en Naming Service, som matchar tjänstnamn till en plats i klustret. Du hanterar tjänstnamn och -egenskaper, till exempel Domain Name System (DNS) för klustret. Klienter kommunicerar säkert med alla noder i klustret med hjälp av Naming Service för att matcha ett tjänstnamn och dess plats. Program flyttas i klustret. Det kan till exempel bero på fel, resursbalansering eller storleksändring av klustret. Du kan utveckla tjänster och klienter som matchar den aktuella nätverksplatsen. Klienterna 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 Naming Service.

Avbildningsarkiv tjänst: Varje Service Fabric kluster har en Avbildningsarkiv-tjänst där distribuerade versionspaket sparas. Kopiera ett programpaket till Avbildningsarkiv och registrera sedan programtypen som finns i det programpaketet. När programtypen har etablerats skapar du ett namngivet program från den. Du kan avregistrera en programtyp från Avbildningsarkiv när alla dess namngivna program har tagits bort.

Läs Förstå inställningen ImageStoreConnectionString för mer information om Avbildningsarkiv tjänsten.

Läs artikeln Distribuera ett program för mer information om hur du distribuerar program till Avbildningsarkiv tjänsten.

Redundanshanteraren tjänst: Varje Service Fabric kluster har Redundanshanteraren tjänst som ansvarar för följande åtgärder:

  • Utför funktioner relaterade till hög tillgänglighet och konsekvens för tjänster.
  • Orkestrering av program- och klusteruppgraderingar.
  • Interagerar med andra systemkomponenter.

Repair Manager tjänst: 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

För att 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 lågnivååtkomst till Service Fabric. Program och tjänster definieras som registrerade typer i XML-manifestfiler.

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

Reliable Services: Ett API för att skapa tillståndslösa och tillståndsfulla tjänster. Tillståndsful-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åndsfulla objekt via den virtuella aktörsprogrammeringsmodellen. Den här modellen är användbar när du har många oberoende beräkningsenheter eller tillstånd. Den här modellen använder en turbaserad trådmodell, 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 dess 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 den Service Fabric programmodellenrepresenterar 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 paketerar ett befintligt program i en container. Dessutom kan du köra Service Fabric i containrar också.

Körbara gästprogram: 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ästtjänster, 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, hantering av programlivscykel, 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 att distribuera program med hjälp av Docker Compose-modellen.

Miljöer

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

  • Azure Service Fabric: Azures värd Service Fabric kluster. Det ger integrering mellan Service Fabric och Azure-infrastrukturen, tillsammans med uppgraderings- och konfigurationshantering av Service Fabric kluster.
  • Service Fabric fristående: En uppsättning installations- och konfigurationsverktyg för att Service Fabric kluster var som helst (lokalt eller hos en 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: