.NET Microservices: Architectuur voor in containers geplaatste .NET-toepassingen
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.
Actiekoppelingen
Dit e-book is ook beschikbaar in pdf-indeling (alleen engelse versie) Downloaden
Kloon/Fork de referentietoepassing eShopOnContainers op GitHub
Bekijk de inleidende video
Maak direct kennis met de microservicesarchitectuur
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
- Levenscyclus van Docker-toepassingen met Microsoft Platform en Hulpprogramma's (downloadbare e-book)
https://aka.ms/dockerlifecycleebook
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.
Gerelateerde microservice en referentietoepassing op basis van containers: eShopOnContainers
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
Copyright
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.