Dela via


.NET Microservices: Arkitektur för containerbaserade .NET-program

Bokomslag

EDITION v7.0 – Uppdaterad till ASP.NET Core 7.0

Se changelog för bokuppdateringar och bidrag från communityn.

Den här guiden är en introduktion till att utveckla mikrotjänstbaserade program och hantera dem med hjälp av containrar. Den beskriver arkitekturdesign och implementeringsmetoder med hjälp av .NET- och Docker-containrar.

För att göra det enklare att komma igång fokuserar guiden på en referenscontainerbaserad och mikrotjänstbaserad app som du kan utforska. Referensprogrammet finns på github-lagringsplatsen eShopOnContainers .

Inledning

Företag inser i allt högre grad kostnadsbesparingar, löser distributionsproblem och förbättrar DevOps och produktionsåtgärder med hjälp av containrar. Microsoft har släppt containerinnovationer för Windows och Linux genom att skapa produkter som Azure Kubernetes Service och Azure Service Fabric, och genom att samarbeta med branschledare som Docker, Mesosphere och Kubernetes. Dessa produkter levererar containerlösningar som hjälper företag att skapa och distribuera program i molnhastighet och skala, oavsett val av plattform eller verktyg.

Docker håller på att bli de facto-standarden i containerindustrin, med stöd av de viktigaste leverantörerna i Windows- och Linux-ekosystemen. (Microsoft är en av de viktigaste molnleverantörerna som stöder Docker). I framtiden kommer Docker förmodligen att vara allestädes närvarande i alla datacenter i molnet eller lokalt.

Dessutom utvecklas mikrotjänstarkitekturen som en viktig metod för distribuerade verksamhetskritiska program. I en mikrotjänstbaserad arkitektur bygger programmet på en samling tjänster som kan utvecklas, testas, distribueras och versionshanteras oberoende av varandra.

Om den här guiden

Den här guiden är en introduktion till att utveckla mikrotjänstbaserade program och hantera dem med hjälp av containrar. Den beskriver arkitekturdesign och implementeringsmetoder med hjälp av .NET- och Docker-containrar. För att göra det enklare att komma igång med containrar och mikrotjänster fokuserar guiden på ett referenscontainerbaserat och mikrotjänstbaserat program som du kan utforska. Exempelprogrammet är tillgängligt på github-lagringsplatsen eShopOnContainers .

Den här guiden ger grundläggande utvecklings- och arkitekturvägledning främst på utvecklingsmiljönivå med fokus på två tekniker: Docker och .NET. Vår avsikt är att du läser den här guiden när du tänker på din programdesign utan att fokusera på infrastrukturen (molnet eller lokalt) i produktionsmiljön. Du kommer att fatta beslut om infrastrukturen senare när du skapar dina produktionsklara program. Därför är den här guiden avsedd att vara infrastrukturagnostisk och mer utvecklingsmiljöcentrerad.

När du har gått igenom den här guiden är nästa steg att lära dig mer om produktionsklara mikrotjänster i Microsoft Azure.

Utgåva

Den här guiden har reviderats för att täcka .NET 7-versionen tillsammans med många ytterligare uppdateringar relaterade till samma "våg" av tekniker (dvs. Azure och ytterligare teknik från tredje part) som sammanfaller i tid med .NET 7-versionen.

Anmärkning

En ny version av den här eBook skapas för .NET 8 och det nya eShop-exemplet .

Vad den här guiden inte omfattar

Den här guiden fokuserar inte på programmets livscykel, DevOps, CI/CD-pipelines eller teamarbete. Den kompletterande guiden Containerized Docker Application Lifecycle med Microsoft Platform and Tools fokuserar på det ämnet. Den aktuella guiden innehåller inte heller implementeringsinformation om Azure-infrastrukturen, till exempel information om specifika orkestratorer.

Ytterligare resurser

Vem ska använda den här guiden?

Vi skrev den här guiden för utvecklare och lösningsarkitekter som är nya för Docker-baserad programutveckling och mikrotjänstbaserad arkitektur. Den här guiden är till för dig om du vill lära dig hur du utformar, utformar och implementerar koncepttestprogram med Microsofts utvecklingstekniker (med särskilt fokus på .NET) och med Docker-containrar.

Den här guiden är också användbar om du är teknisk beslutsfattare, till exempel en företagsarkitekt, som vill ha en arkitektur- och tekniköversikt innan du bestämmer dig för vilken metod du ska välja för nya och moderna distribuerade program.

Så här använder du den här guiden

Den första delen av den här guiden introducerar Docker-containrar, diskuterar hur du väljer mellan .NET 7 och .NET Framework som ett utvecklingsramverk och ger en översikt över mikrotjänster. Det här innehållet är till för arkitekter och tekniska beslutsfattare som vill ha en översikt men inte behöver fokusera på information om kodimplementering.

Den andra delen av guiden börjar med avsnittet Utvecklingsprocess för Docker-baserade program . Den fokuserar på utvecklings- och mikrotjänstmönster för att implementera program med hjälp av .NET och Docker. Det här avsnittet är av största intresse för utvecklare och arkitekter som vill fokusera på kod och på mönster och implementeringsinformation.

eShopOnContainers-programmet är en referensapp med öppen källkod för .NET och mikrotjänster som har utformats för att distribueras med Docker-containrar. Programmet består av flera undersystem, inklusive flera klientdelar för användargränssnittet för e-butik (en Web MVC-app, ett webb-SPA och en intern mobilapp). Den innehåller även bakgrundens mikrotjänster och containrar för alla nödvändiga serveroperationer.

Syftet med programmet är att visa arkitekturmönster. Det är inte en PRODUCTION-READY MALL för att starta verkliga program. I själva verket är programmet i ett permanent betatillstånd, eftersom det också används för att testa nya potentiellt intressanta tekniker när de visas.

Skicka feedback

Den här boken och relaterade exempel utvecklas ständigt, så din feedback välkomnas. Om du har synpunkter på hur denna bok kan förbättras och du läser denna bok på <learn.microsoft.com>, kan du använda avsnittet Feedback längst ned på sidan.

feedbackavsnittet i sidfoten på alla .NET-dokumentartiklar.

Som du ser i föregående skärmdump kan du i feedbackavsnittet skicka feedback för:

  • Den här produkten: med hjälp av feedbackformuläret för .NET-produkter.
  • Den här sidan: med hjälp av en GitHub-ärendemall med sidinformationen.

Om du läser den här boken som pdf kan du skicka feedback genom att skapa en ny .NET Docs: GitHub-problem eller med hjälp av .NET Architecture eBooks: GitHub-ärendemall.

Krediter

Medförfattare:

Cesar de la Torre, Sr. PM, .NET-produktteamet, Microsoft Corp.

Bill Wagner, Sr. Content Developer, C+E, Microsoft Corp.

Mike Rousos, huvudprogramtekniker, DevDiv CAT-teamet, Microsoft

Redaktörer:

Mike Pope

Steve Hoag

Deltagare och granskare:

Jeffrey Richter, Partner Software Eng, Azure-teamet, Microsoft

Jimmy Bogard, chefsarkitekt på Headspring

Udi Dahan, grundare och VD, särskild programvara

Jimmy Nilsson, medgrundare och VD för Factor10

Glenn Condron, Senior programchef, den ASP.NET-team

Mark Fussell, Principal PM Lead, Azure Service Fabric-teamet, Microsoft

Diego Vega, PM Lead, Entity Framework-teamet, Microsoft

Barry Dorrans, Sr. Security Program Manager

Rowan Miller, Sr. Program Manager, Microsoft

Ankit Asthana, Principal PM Manager, .NET team, Microsoft

Scott Hunter, partnerchef för programhantering, .NET-teamet, Microsoft

Nish Anil, Sr. Program Manager, .NET team, Microsoft

Dylan Reisenberger, arkitekt och dev lead på Polly

Steve "ardalis" Smith - Programvaruarkitekt och tränare - Ardalis.com

Ian Cooper, kodarkitekt på Brighter

Unai Zorrilla, Arkitekt och Utvecklingschef på Plain Concepts

Eduard Tomas, Dev Lead på Plain Concepts

Ramon Tomas, utvecklare på Plain Concepts

David Sanz, utvecklare på Plain Concepts

Javier Valero, Chief Operating Officer på Grupo Solutio

Pierre Millet, Sr. Consultant, Microsoft

Michael Friis, Produktchef, Docker Inc

Charles Lowell, programvarutekniker, VS CAT-team, Microsoft

Miguel Veloso, software development engineer på Plain Concepts

Sumit Ghosh, principal consultant på Neudesic

PUBLICERAD AV

Microsoft Developer Division, .NET och Visual Studio produktteam

En division av Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2023 av Microsoft Corporation

Alla rättigheter reserverade. Ingen del av innehållet i denna bok får reproduceras eller överföras i någon form eller på något sätt utan skriftligt tillstånd från utgivaren.

Denna bok levereras "as-is" och uttrycker författarens åsikter och synpunkter. Åsikterna, åsikterna och informationen som uttrycks i den här boken, inklusive URL:en och andra internetwebbplatsreferenser, kan ändras utan förvarning.

Vissa exempel som visas häri tillhandahålls endast som illustration och är fiktiva. Ingen verklig koppling eller anslutning är avsedd eller bör härledas.

Microsoft och de varumärken som anges på https://www.microsoft.com på webbsidan "Varumärken" är varumärken som tillhör Microsoft-företagsgruppen.

Mac och macOS är varumärken som tillhör Apple Inc.

Docker whale-logotypen är ett registrerat varumärke som tillhör Docker, Inc. Används av behörighet.

Alla andra märken och logotyper tillhör respektive ägare.