.NET-mikrotjänster: Arkitektur för containerbaserade .NET-program
EDITION v6.0 – Uppdaterad till ASP.NET Core 6.0
Information om bokuppdateringar och bidrag från communityn finns i ändringsloggen .
Den här guiden är en introduktion till att utveckla mikrotjänstbaserade program och hantera dem med containrar. Den beskriver metoder för arkitekturdesign och implementering 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å eShopOnContainers GitHub-lagringsplatsen.
Åtgärdslänkar
Denna e-bok är också tillgänglig i PDF-format (endast engelsk version) Ladda ned
Klona/förgrena referensprogrammet eShopOnContainers på GitHub
Titta på introduktionsvideon
Lär känna mikrotjänstarkitekturen direkt
Introduktion
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 den faktiska standarden i containerindustrin, som stöds 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 allmänt förekommande i alla datacenter i molnet eller lokalt.
Dessutom är arkitekturen för mikrotjänster 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 containrar. Den beskriver metoder för arkitekturdesign och implementering 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å en referenscontainerbaserad och mikrotjänstbaserad app som du kan utforska. Exempelprogrammet finns på eShopOnContainers GitHub-lagringsplatsen.
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. Den här guiden är därför avsedd att vara infrastrukturagnostisk och mer utvecklingsmiljöcentrerad.
När du har studerat den här guiden är nästa steg att lära dig mer om produktionsklara mikrotjänster på Microsoft Azure.
Version
Den här guiden har reviderats för att omfatta .NET 6-versionen tillsammans med många ytterligare uppdateringar relaterade till samma "våg" av tekniker (det vill sagda Azure och ytterligare teknik från tredje part) som sammanfaller i tid med .NET 6-versionen. Därför har bokversionen också uppdaterats till version 6.0.
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 orkestrerare.
Ytterligare resurser
- Containerbaserad Docker-programlivscykel med Microsoft Platform and Tools (nedladdningsbar e-bok)
https://aka.ms/dockerlifecycleebook
Vem bör 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 en 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, beskriver hur du väljer mellan .NET 6 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 implementering av program med hjälp av .NET och Docker. Det här avsnittet är av störst intresse för utvecklare och arkitekter som vill fokusera på kod och på mönster och implementeringsinformation.
Relaterade mikrotjänster och containerbaserade referensprogram: eShopOnContainers
eShopOnContainers-programmet är en referensapp med öppen källkod för .NET och mikrotjänster som är utformade för att distribueras med Docker-containrar. Programmet består av flera undersystem, inklusive flera klientdelar för e-butiksgränssnittet (en Web MVC-app, ett webb-SPA och en inbyggd mobilapp). Den innehåller även serverdelsmikrotjänster och containrar för alla nödvändiga åtgärder på serversidan.
Syftet med programmet är att demonstrera arkitekturmönster. DET ÄR INTE EN PRODUKTIONSKLAR 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 oss din feedback!
Vi skrev den här guiden för att hjälpa dig att förstå arkitekturen för containerbaserade program och mikrotjänster i .NET. Guiden och det relaterade referensprogrammet kommer att utvecklas, så vi välkomnar din feedback! Om du har kommentarer om hur den här guiden kan förbättras kan du skicka feedback på https://aka.ms/ebookfeedback.
Krediter
Medförfattare:
Cesar de la Torre, Sr. PM, .NET-produktteamet, Microsoft Corp.
Bill Wagner, Sr. Content Developer, C+E, Microsoft Corp.
Mike Rousos, principal software engineer, DevDiv CAT team, Microsoft
Redaktörer:
Mike Pope
Steve Hoag
Deltagare och granskare:
Jeffrey Richter, Partner Software Eng, Azure team, Microsoft
Jimmy Bogard, chefsarkitekt på Headspring
Udi Dahan, grundare & VD, Particular Software
Jimmy Nilsson, medgrundare och VD för Factor10
Glenn Condron, programchef ASP.NET team
Mark Fussell, huvudansvarig PM Lead, Azure Service Fabric team, 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, Partner Director PM, .NET team, 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, Coding Architect på Brighter
Unai Zorrilla, arkitekt och utvecklingsansvarig på Plain Concepts
Eduard Tomas, utvecklingsansvarig 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, Product Manager, Docker Inc
Charles Lowell, programvarutekniker, VS CAT-teamet, Microsoft
Miguel Veloso, software development engineer på Plain Concepts
Sumit Ghosh, principal consultant på Neudesic
Copyright
PUBLICERAD AV
Microsoft Developer Division, .NET och Visual Studio produktteam
En avdelning inom Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Copyright © 2022 av Microsoft Corporation
All rights reserved. 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 förlagets skriftliga tillstånd.
Denna bok tillhandahålls "i nuläget" och uttrycker författarens åsikter och åsikter. Åsikter, åsikter och information som uttrycks i den här boken, inklusive WEBBADRESS och andra referenser till internetwebbplatser, kan ändras utan föregående meddelande.
Vissa exempel i detta dokument tillhandahålls endast som illustration och är fiktiva. Ingen anknytning eller koppling till verkliga förekomster är avsiktlig.
Microsoft och de varumärken som anges på https://www.microsoft.com webbsidan "Varumärken" är varumärken som tillhör Microsofts företagsgrupp.
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.