Service Fabric och containrar
Introduktion
Azure Service Fabric är en distribuerad systemplattform som gör det enkelt att paketera, distribuera och hantera skalbara och tillförlitliga mikrotjänster och containrar.
Service Fabric är Microsofts containerorkestrerare för distribution av mikrotjänster över ett kluster av datorer. Service Fabric drar nytta av de lärdomar som dragits under dess år med att köra tjänster på Microsoft i stor skala.
Mikrotjänster kan utvecklas på många sätt, t.ex. genom att använda programmeringsmodeller för Service Fabric, ASP.NET Core eller distribuera valfri kod. Om du bara vill distribuera och hantera containrar är Service Fabric också ett bra val.
Som standard distribuerar och aktiverar Service Fabric dessa tjänster som processer. Processerna ger den snabbaste aktiveringen och högsta densitetsanvändningen av resurserna i ett kluster. Service Fabric kan också distribuera tjänster i containeravbildningar. Du kan också blanda tjänster i processer och tjänster i containrar i samma program.
Om du vill hoppa in och prova containrar i Service Fabric kan du prova en snabbstart, självstudie eller exempel:
Snabbstart: Distribuera ett Linux-containerprogram till Service Fabric
Snabbstart: Distribuera ett Windows-containerprogram till Service Fabric
Containerisera en befintlig .NET-app
Exempel på container för Service Fabric
Vad är containrar?
Containrar löser problemet med att köra program på ett tillförlitligt sätt i olika datormiljöer genom att tillhandahålla en oföränderlig miljö som programmet kan köras i. Containrar omsluter ett program och alla dess beroenden, till exempel bibliotek och konfigurationsfiler, i sin egen isolerade "ruta" som innehåller allt som behövs för att köra programvaran i containern. Oavsett var containern körs har programmet i den alltid allt som behövs för att köras, till exempel rätt versioner av dess beroende bibliotek, eventuella konfigurationsfiler och allt annat som behövs för att köras.
Containrar körs direkt ovanpå kerneln och har en isolerad vy över filsystemet och andra resurser. Ett program i en container har ingen kunskap om andra program eller processer utanför containern. Varje program och dess körnings-, beroenden och systembibliotek körs i en container med fullständig privat åtkomst till containerns egen isolerade vy över operativsystemet. Förutom att göra det enkelt att tillhandahålla alla programberoenden som krävs för att köras i olika datormiljöer är säkerhet och resursisolering viktiga fördelar med att använda containrar med Service Fabric – som annars kör tjänster i en process.
Jämfört med virtuella datorer har containrar följande fördelar:
- Liten: Containrar använder ett enda lagringsutrymme och lagerversioner och uppdateringar för att öka effektiviteten.
- Snabb: Containrar behöver inte starta ett helt operativsystem, så de kan starta mycket snabbare – vanligtvis på några sekunder.
- Portabilitet: En containerbaserad programavbildning kan porteras för att köras i molnet, lokalt, på virtuella datorer eller direkt på fysiska datorer.
- Resursstyrning: En container kan begränsa de fysiska resurser som den kan använda på värden.
Service Fabric-stöd för containrar
Service Fabric stöder distribution av Docker-containrar i Linux och Windows Server-containrar på Windows Server 2016 och senare, tillsammans med stöd för Hyper-V-isoleringsläge.
Containerkörningar som är kompatibla med ServiceFabric:
- Linux: Docker
- Windows:
- Windows Server 2022: Mirantis Container Runtime
- Windows Server 2019/2016: DockerEE
Docker-containrar i Linux
Docker tillhandahåller API:er för att skapa och hantera containrar ovanpå Linux-kernelcontainrar. Docker Hub tillhandahåller en central lagringsplats för att lagra och hämta containeravbildningar. En Linux-baserad självstudiekurs finns i Skapa ditt första Service Fabric-containerprogram i Linux.
Windows Server-containrar
Windows Server 2016 och senare tillhandahåller två olika typer av containrar som skiljer sig åt beroende på isoleringsnivå. Windows Server-containrar och Docker-containrar liknar varandra eftersom båda har namnrymd och filsystemisolering, samtidigt som de delar kerneln med den värd som de körs på. I Linux har den här isoleringen traditionellt tillhandahållits av cgroups och namnområden, och Windows Server-containrar beter sig på liknande sätt.
Windows-containrar med Hyper-V-stöd ger mer isolering och säkerhet eftersom ingen container delar operativsystemets kernel med någon annan container eller med värden. Med den här högre nivån av säkerhetsisolering riktas Hyper-V-aktiverade containrar mot potentiellt fientliga scenarier med flera klientorganisationer. En Windows-baserad självstudiekurs finns i Skapa ditt första Service Fabric-containerprogram i Windows.
Följande bild visar de olika typerna av tillgängliga virtualiserings- och isoleringsnivåer.
Scenarier för att använda containrar
Här är typiska exempel där en container är ett bra val:
Lift and shift för IIS: Du kan placera en befintlig ASP.NET MVC-app i en container i stället för att migrera den till ASP.NET Core. Dessa ASP.NET MVC-appar är beroende av IIS (Internet Information Services). Du kan paketera dessa program i containeravbildningar från den förskapade IIS-avbildningen och distribuera dem med Service Fabric. Mer information om Windows-containrar finns i Containeravbildningar på Windows Server .
Blanda containrar och Service Fabric-mikrotjänster: Använd en befintlig containeravbildning för en del av ditt program. Du kan till exempel använda NGINX-containern för webbklientdelen av ditt program och tillståndskänsliga tjänster för den mer intensiva backend-beräkningen.
Minska effekten av "bullriga grannar"-tjänster: Du kan använda resursstyrningsförmågan för containrar för att begränsa de resurser som en tjänst använder på en värd. Om tjänster kan förbruka många resurser och påverka andras prestanda (till exempel en tidskrävande, frågeliknande åtgärd) kan du överväga att placera dessa tjänster i containrar som har resursstyrning.
Kommentar
Ett Service Fabric-kluster är en enskild klientorganisation och värdbaserade program anses vara betrodda. Om du överväger att vara värd för program som inte är betrodda kan du läsa Värd för ej betrodda program i ett Service Fabric-kluster.
Service Fabric tillhandahåller en programmodell där en container representerar en programvärd där flera tjänstrepliker placeras. Service Fabric har också stöd för ett körbart gästscenario där du inte använder de inbyggda Service Fabric-programmeringsmodellerna, utan i stället paketera ett befintligt program, skrivet med valfritt språk eller ramverk, i en container. Det här scenariot är det vanliga användningsfallet för containrar.
Du kan också köra Service Fabric-tjänster i en container. Stöd för att köra Service Fabric-tjänster i containrar är för närvarande begränsat.
Service Fabric innehåller flera containerfunktioner som hjälper dig att skapa program som består av containerbaserade mikrotjänster, till exempel:
- Distribution och aktivering av containeravbildningar.
- Resursstyrning, inklusive att ange resursvärden som standard i Azure-kluster.
- Autentisering av lagringsplats.
- Containerport som värd för portmappning.
- Identifiering och kommunikation mellan containrar.
- Möjlighet att konfigurera och ange miljövariabler.
- Möjlighet att ange säkerhetsautentiseringsuppgifter för containern.
- Ett val av olika nätverkslägen för containrar.
En omfattande översikt över containerstöd i Azure, till exempel hur du skapar ett Kubernetes-kluster med Azure Kubernetes Service, hur du skapar ett privat Docker-register i Azure Container Registry med mera finns i Azure for Containers.
Nästa steg
I den här artikeln har du lärt dig om det stöd som Service Fabric tillhandahåller för att köra containrar. Sedan går vi igenom exempel på var och en av funktionerna för att visa hur du använder dem.
Skapa ditt första Service Fabric-containerprogram i Linux
Skapa ditt första Service Fabric-containerprogram i Windows
Läs mer om Windows-containrar