Introduktion till Service Fabric Resource Model

Viktigt

Förhandsversionen av Azure Service Fabric Mesh har dragits tillbaka. Nya distributioner kommer inte längre att tillåtas via Service Fabric Mesh-API:et. Stödet för befintliga distributioner fortsätter till och med den 28 april 2021.

Mer information finns i Förhandsversionen av Azure Service Fabric Mesh.

Service Fabric-resursmodellen beskriver en enkel metod för att definiera resurser som utgör ett Service Fabric Mesh-program. Enskilda resurser kan distribueras till valfri Service Fabric-miljö. Service Fabric-resursmodellen är också kompatibel med Azure Resource Manager Model. Följande typer av resurser stöds för närvarande i den här modellen:

  • Program och tjänster
  • Nätverk
  • Gateways
  • Hemligheter och hemligheter/värden
  • Volymer

Varje resurs beskrivs deklarativt i en resursfil, vilket är ett enkelt YAML- eller JSON-dokument som beskriver Mesh-programmet och som etableras av Service Fabric-plattformen.

Program och tjänster

En programresurs är distributions-, versionshanterings- och livslängdsenheten för ett Mesh-program. Den består av en eller flera tjänstresurser som representerar en mikrotjänst. Varje tjänstresurs består i sin tur av ett eller flera kodpaket som beskriver allt som behövs för att köra den containeravbildning som är associerad med kodpaketet.

Appar och tjänster

En tjänstresurs deklarerar följande:

  • Containernamn, version och register
  • Processor- och minnesresurser som krävs för varje container
  • Nätverksslutpunkter
  • Referenser till andra resurser, till exempel nätverk, volymer och hemligheter

Alla kodpaket som definieras som en del av en tjänstresurs distribueras och aktiveras tillsammans som en grupp. Tjänstresursen beskriver också hur många instanser av tjänsten som ska köras och även referenser till andra resurser (till exempel nätverksresurs) som den är beroende av.

Om ett Mesh-program består av fler än en tjänst är det inte säkert att de körs tillsammans på samma nod. Under en uppgradering av programmet leder dessutom fel vid uppgradering av en enskild tjänst till att alla tjänster återställs till sin tidigare version.

Som tidigare nämnts kan livscykeln för varje programinstans hanteras oberoende av varandra. En programinstans kan till exempel uppgraderas oberoende av de andra programinstanserna. Vanligtvis behåller du antalet tjänster i ett program ganska litet, eftersom ju fler tjänster du lägger till i ett program, desto svårare blir det att hantera varje tjänst oberoende av varandra.

Nätverk

Nätverksresursen är individuellt distribuerbar resurs, oberoende av en program- eller tjänstresurs som kan referera till den som deras beroende. Det används för att skapa ett nätverk för dina program. Flera tjänster från olika program kan ingå i samma nätverk. Mer information finns i om nätverk i Service Fabric Mesh-program.

Anteckning

Den aktuella förhandsversionen stöder endast en en-till-en-mappning mellan program och nätverk

Nätverk och gateway

Gateways

En gatewayresurs ansluter två nätverk och dirigerar trafik. En gateway gör att dina tjänster kan kommunicera med externa klienter och ger en ingress till dina tjänster. En gateway kan också användas för att ansluta ditt Mesh-program till ditt eget befintliga virtuella nätverk. Mer information finns i om nätverk i Service Fabric Mesh-program.

Nätverk och gateway

Hemligheter

Hemlighetsresurser kan distribueras oberoende av ett program eller en tjänstresurs som kan referera till den som deras beroende. Den används för att på ett säkert sätt leverera hemligheter till dina program. Flera tjänster från olika program kan referera till värden för samma hemlighet.

Volymer

Containrar gör ofta tillfälliga diskar tillgängliga. Tillfälliga diskar är dock tillfälliga, så du får en ny tillfällig disk och förlorar informationen när en container kraschar. Det är också svårt att dela information om tillfälliga diskar med andra containrar. Volymer är kataloger som monteras i dina containerinstanser som du kan använda för att bevara tillstånd. Volymer ger dig allmän fillagring och gör att du kan läsa/skriva filer med vanliga I/O-fil-API:er för diskar. Volymresursen är ett deklarativt sätt att beskriva hur en katalog monteras och säkerhetskopieringslagringen för den (antingen Azure Files Volume eller Service Fabric Reliable Volume). Mer information finns i lagringstillstånd.

Diagram som visar en tjänst som flödar till en diskvolym, som flödar till både Service Fabric Reliable Volume, sedan till en replikerad lokal disk och till Azure Files Volym och sedan till nätverkslagring.

Programmeringsmodeller

Tjänstresursen kräver bara att en containeravbildning körs, vilket refereras i de kodpaket som är associerade med resursen. Du kan köra valfri kod, skriven på valfritt språk, med valfritt ramverk i containern utan att behöva känna till eller använda Service Fabric Mesh-specifika API:er.

Programkoden förblir portabel även utanför Service Fabric Mesh och dina programdistributioner förblir konsekventa oavsett vilket språk eller ramverk som används för att implementera dina tjänster. Oavsett om ditt program är ASP.NET Core, Go eller bara en uppsättning processer och skript förblir Service Fabric Mesh-resursdistributionsmodellen densamma.

Paketering och distribution

Service Fabric Mesh-program som baseras på resursmodellen paketeras som Docker-containrar. Service Fabric Mesh är en delad miljö med flera klientorganisationer och containrar ger dig en hög isoleringsnivå. Dessa program beskrivs med ett JSON-format eller ett YAML-format (som sedan konverteras till JSON). När du distribuerar ett Mesh-program till Azure Service Fabric Mesh är den JSON som används för att beskriva programmet en Azure Resource Manager-mall. Resurser mappas till Azure-resurser. När du distribuerar ett Mesh-program till ett Service Fabric-kluster (fristående eller Azure-värdbaserat) är den JSON som används för att beskriva programmet ett format som liknar en Azure Resource Manager-mall. När mesh-program har distribuerats kan de hanteras via HTTP-gränssnitt eller Azure CLI.

Nästa steg

Mer information om Service Fabric Mesh finns i översikten: