.NET Microservices: Architectuur voor in containers geplaatste .NET-toepassingen

Book cover

EDITION v6.0 - Bijgewerkt naar ASP.NET Core 6.0

Raadpleeg changelog voor de boekupdates en bijdragen aan de community.

Deze handleiding is een inleiding tot het ontwikkelen van op microservices gebaseerde toepassingen en het beheren ervan met behulp van containers. Er worden architectuurontwerp- en implementatiemethoden besproken met behulp van .NET- en Docker-containers.

Om het gemakkelijker te maken om aan de slag te gaan, richt de handleiding zich op een referentietoepassing in containers en op microservices gebaseerde toepassingen die u kunt verkennen. De referentietoepassing is beschikbaar in de eShopOnContainers GitHub opslagplaats.

Introductie

Ondernemingen realiseren steeds meer kostenbesparingen, het oplossen van implementatieproblemen en het verbeteren van DevOps en productiebewerkingen met behulp van containers. Microsoft heeft containerinnovaties uitgebracht voor Windows en Linux door producten te maken zoals Azure Kubernetes Service en Azure Service Fabric, en door samen te werken met toonaangevende bedrijven zoals Docker, Mesosphere en Kubernetes. Deze producten leveren containeroplossingen die bedrijven helpen bij het bouwen en implementeren van toepassingen op cloudsnelheid en -schaal, ongeacht hun keuze aan platform of hulpprogramma's.

Docker wordt de feitelijke standaard in de containerindustrie, ondersteund door de belangrijkste leveranciers in de Windows- en Linux-ecosystemen. (Microsoft is een van de belangrijkste cloudleveranciers die Docker ondersteunen.) In de toekomst is Docker waarschijnlijk alomtegenwoordig in elk datacenter in de cloud of on-premises.

Daarnaast is de microservicesarchitectuur een belangrijke benadering voor gedistribueerde bedrijfskritieke toepassingen. In een architectuur op basis van microservices is de toepassing gebouwd op een verzameling services die onafhankelijk van elkaar kunnen worden ontwikkeld, getest, geïmplementeerd en versiebeheer.

Over deze handleiding

Deze handleiding is een inleiding tot het ontwikkelen van op microservices gebaseerde toepassingen en het beheren ervan met behulp van containers. Er worden architectuurontwerp- en implementatiemethoden besproken met behulp van .NET- en Docker-containers. Om het eenvoudiger te maken om aan de slag te gaan met containers en microservices, richt de handleiding zich op een referentietoepassing in een container en op microservice gebaseerde toepassing die u kunt verkennen. De voorbeeldtoepassing is beschikbaar in de eShopOnContainers GitHub opslagplaats.

Deze handleiding bevat fundamentele richtlijnen voor ontwikkeling en architectuur, voornamelijk op ontwikkelomgevingsniveau, met een focus op twee technologieën: Docker en .NET. Onze bedoeling is dat u deze handleiding leest wanneer u nadenkt over uw toepassingsontwerp zonder zich te richten op de infrastructuur (cloud of on-premises) van uw productieomgeving. U neemt later beslissingen over uw infrastructuur wanneer u uw toepassingen maakt die gereed zijn voor productie. Daarom is deze handleiding bedoeld als infrastructuuronafhankelijk en meer ontwikkelomgevingsgericht.

Nadat u deze handleiding hebt bestudeerd, is de volgende stap om meer te weten te komen over microservices die gereed zijn voor productie op Microsoft Azure.

Versie

Deze handleiding is herzien om .NET 6-versie te behandelen, samen met veel aanvullende updates met betrekking tot dezelfde 'golf' technologieën (dat wil gezegd: Azure en aanvullende technologieën van derden) die op tijd samen met de .NET 6-release vallen. Daarom is de boekversie ook bijgewerkt naar versie 6.0.

Wat deze handleiding niet dekt

Deze handleiding richt zich niet op de levenscyclus van toepassingen, DevOps, CI/CD-pijplijnen of teamwerk. De aanvullende handleiding voor de levenscyclus van docker-toepassingen in containers met Microsoft Platform en Hulpprogramma's richt zich op dat onderwerp. De huidige handleiding bevat ook geen implementatiedetails over de Azure-infrastructuur, zoals informatie over specifieke orchestrators.

Aanvullende resources

Wie moet deze handleiding gebruiken

We hebben deze handleiding geschreven voor ontwikkelaars en oplossingsarchitecten die niet bekend zijn met op Docker gebaseerde toepassingsontwikkeling en architectuur op basis van microservices. Deze handleiding is bedoeld voor u als u wilt leren hoe u proof-of-concept-toepassingen kunt ontwerpen, ontwerpen en implementeren met Microsoft-ontwikkeltechnologieën (met speciale aandacht voor .NET) en met Docker-containers.

U vindt deze handleiding ook nuttig als u een technische besluitvormer bent, zoals een ondernemingsarchitect, die een architectuur- en technologieoverzicht wil voordat u besluit welke benadering u moet selecteren voor nieuwe en moderne gedistribueerde toepassingen.

Het gebruik van deze handleiding

In het eerste deel van deze handleiding maakt u kennis met Docker-containers, wordt besproken hoe u kunt kiezen tussen .NET 6 en het .NET Framework als ontwikkelingsframework en een overzicht van microservices biedt. Deze inhoud is bedoeld voor architecten en technische besluitvormers die een overzicht willen, maar die zich niet hoeven te richten op details van de code-implementatie.

Het tweede deel van de handleiding begint met het ontwikkelproces voor op Docker gebaseerde toepassingen . Het richt zich op de ontwikkelings- en microservicepatronen voor het implementeren van toepassingen met behulp van .NET en Docker. Deze sectie is van belang voor ontwikkelaars en architecten die zich willen richten op code en op patronen en implementatiedetails.

De eShopOnContainers-toepassing is een opensource-referentie-app voor .NET en microservices die zijn ontworpen om te worden geïmplementeerd met behulp van Docker-containers. De toepassing bestaat uit meerdere subsystemen, waaronder verschillende front-ends voor e-store-gebruikersinterface (een Web MVC-app, een web-BEVEILIGD-WACHTWOORDVERIFICATIE en een systeemeigen mobiele app). Het bevat ook de back-end microservices en containers voor alle vereiste bewerkingen aan de serverzijde.

Het doel van de toepassing is om architectuurpatronen weer te geven. HET IS GEEN SJABLOON DIE GEREED IS VOOR PRODUCTIE OM echte toepassingen te starten. In feite heeft de toepassing een permanente bètastatus, omdat deze ook wordt gebruikt om nieuwe mogelijk interessante technologieën te testen terwijl ze worden weergegeven.

Stuur ons uw feedback!

We hebben deze handleiding geschreven om inzicht te verkrijgen in de architectuur van containertoepassingen en microservices in .NET. De handleiding en de bijbehorende referentietoepassing zullen zich ontwikkelen, dus we verwelkomen uw feedback! Als u opmerkingen hebt over hoe deze handleiding kan worden verbeterd, kunt u feedback indienen op https://aka.ms/ebookfeedback.

Tegoeden

Medeauteurs:

Caesar de la Torre, Sr. PM, .NET-productteam, Microsoft Corp.

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

Mike Rousos, Principal Software Engineer, DevDiv CAT-team, Microsoft

Editors:

Mike Paus

Steve Hoag

Deelnemers en revisoren:

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

Jimmy Bogard, Chief Architect bij Headspring

Udi Dahan, ceo van oprichter & , specifieke software

Jimmy Nilsson, mede-oprichter en CEO van Factor10

Glenn Condron, Sr. Program Manager, ASP.NET team

Mark Fussell, Principal PM Lead, Azure Service Fabric team, Microsoft

Diego Vega, PM Lead, Entity Framework-team, 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, Architect en Dev Lead bij Polly

Steve "ardalis" Smith - Software Architect en Trainer - Ardalis.com

Ian Cooper, Coding Architect bij Brighter

Unai Zorrilla, Architect en Dev Lead bij Plain Concepts

Edward Tomas, Dev Lead bij Plain Concepts

Ramon Tomas, Ontwikkelaar bij Plain Concepts

David Sanz, Ontwikkelaar bij Plain Concepts

Javier Valero, Chief Operating Officer bij Solution Solutio

Pierre Millet, Sr. Consultant, Microsoft

Michael Friis, Product Manager, Docker Inc

Charles Lowell, Software Engineer, VS CAT-team, Microsoft

Miguel Veloso, Software Development Engineer bij Plain Concepts

Sumit Ghosh, Principal Consultant bij Neudesic

GEPUBLICEERD DOOR

Microsoft Developer Division, .NET en Visual Studio productteams

Een divisie van Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2022 door Microsoft Corporation

All rights reserved. Geen enkel deel van de inhoud van dit boek mag in enige vorm of zonder schriftelijke toestemming van de uitgever worden gereproduceerd of verzonden.

Dit boek wordt 'as-is' verstrekt en geeft de mening en meningen van de auteur aan. De weergaven, meningen en informatie die in dit boek worden uitgedrukt, inclusief URL en andere internetwebsiteverwijzingen, kunnen zonder kennisgeving veranderen.

Sommige voorbeelden die hierin worden opgegeven, zijn alleen ter illustratie en zijn volledig fictief. Er is geen daadwerkelijke associatie of verband bedoeld of af te leiden.

Microsoft en de handelsmerken die worden https://www.microsoft.com vermeld op de webpagina 'Handelsmerken' zijn handelsmerken van de Microsoft-groep bedrijven.

Mac en macOS zijn handelsmerken van Apple Inc.

Het Docker whale-logo is een geregistreerd handelsmerk van Docker, Inc. Gebruikt door toestemming.

Alle andere merken en logo's zijn eigendom van hun respectieve eigenaren.