Freigeben über


.NET Microservices: Architektur für containerisierte .NET-Anwendungen

Bucheinband

EDITION v7.0 – Aktualisiert auf ASP.NET Core 7.0

Informationen zu den Buchaktualisierungen und Communitybeiträgen finden Sie im Änderungsprotokoll.

Dieses Handbuch enthält eine Einführung in die Entwicklung mikroservicesbasierter Anwendungen und deren Verwaltung mithilfe von Containern. Es erörtert Architekturdesign- und Implementierungsansätze mithilfe von .NET- und Docker-Containern.

Um den Einstieg zu erleichtern, konzentriert sich der Leitfaden auf eine referenzbasierte, containerisierte Mikroservice-Anwendung, die Sie erkunden können. Die Referenzanwendung ist im eShopOnContainers GitHub-Repository verfügbar.

Einleitung

Unternehmen erkennen zunehmend Kosteneinsparungen, lösen Bereitstellungsprobleme und verbessern DevOps- und Produktionsvorgänge mithilfe von Containern. Microsoft hat Containerinnovationen für Windows und Linux veröffentlicht, indem Produkte wie Azure Kubernetes Service und Azure Service Fabric erstellt werden, und indem sie mit Branchenführern wie Docker, Mesosphere und Kubernetes zusammenarbeiten. Diese Produkte liefern Containerlösungen, die Unternehmen beim Erstellen und Bereitstellen von Anwendungen mit Cloudgeschwindigkeit und Skalierung unterstützen, unabhängig von ihrer Wahl von Plattform oder Tools.

Docker wird der de facto Standard in der Containerindustrie, unterstützt von den wichtigsten Anbietern in den Windows- und Linux-Ökosystemen. (Microsoft ist einer der wichtigsten Cloudanbieter, die Docker unterstützen). In Zukunft wird Docker wahrscheinlich in jedem Rechenzentrum in der Cloud oder lokal verbreitet sein.

Darüber hinaus entwickelt sich die Microservices-Architektur als wichtiger Ansatz für verteilte unternehmenskritische Anwendungen. In einer mikroservicebasierten Architektur basiert die Anwendung auf einer Sammlung von Diensten, die unabhängig entwickelt, getestet, bereitgestellt und versioniert werden können.

Über diesen Leitfaden

Dieses Handbuch enthält eine Einführung in die Entwicklung mikroservicesbasierter Anwendungen und deren Verwaltung mithilfe von Containern. Es erörtert Architekturdesign- und Implementierungsansätze mithilfe von .NET- und Docker-Containern. Um die ersten Schritte mit Containern und Microservices zu erleichtern, konzentriert sich der Leitfaden auf eine referenzcontainerisierte und microservicebasierte Anwendung, die Sie erkunden können. Die Beispielanwendung ist im eShopOnContainers GitHub-Repository verfügbar.

Dieser Leitfaden bietet grundlegende Entwicklungs- und Architekturanleitungen in erster Linie auf Entwicklungsumgebungsebene mit schwerpunktmäßig zwei Technologien: Docker und .NET. Unsere Absicht ist, dass Sie diesen Leitfaden lesen, wenn Sie sich über Ihr Anwendungsdesign gedankenn, ohne sich auf die Infrastruktur (Cloud oder lokal) Ihrer Produktionsumgebung zu konzentrieren. Sie treffen später Entscheidungen über Ihre Infrastruktur, wenn Sie Ihre produktionsfähigen Anwendungen erstellen. Daher ist dieser Leitfaden darauf ausgelegt, infrastrukturagnostisch und entwicklungsumgebungsorientiert zu sein.

Nachdem Sie diesen Leitfaden studiert haben, besteht Ihr nächster Schritt darin, mehr über produktionsfähige Microservices auf Microsoft Azure zu erfahren.

Version

Dieses Handbuch wurde überarbeitet, um die .NET 7-Version zusammen mit vielen zusätzlichen Updates im Zusammenhang mit der gleichen "Welle" von Technologien (d. h. Azure und zusätzliche Technologien von Drittanbietern) zu behandeln, die rechtzeitig mit der .NET 7-Version verbunden sind.

Hinweis

Für .NET 8 und das neue eShop-Beispiel wird eine neue Version dieses eBook erstellt.

Was in diesem Handbuch nicht behandelt wird

Dieser Leitfaden konzentriert sich nicht auf den Anwendungslebenszyklus, DevOps, CI/CD-Pipelines oder die Teamarbeit. Der ergänzende Leitfaden "Containerized Docker Application Lifecycle" mit Microsoft Platform and Tools konzentriert sich auf dieses Thema. Das aktuelle Handbuch enthält auch keine Implementierungsdetails zur Azure-Infrastruktur, z. B. Informationen zu bestimmten Orchestratoren.

Weitere Ressourcen

Zielgruppe dieses Leitfadens

Wir haben diesen Leitfaden für Entwickler und Lösungsarchitekten geschrieben, die noch nicht mit der Docker-basierten Anwendungsentwicklung und der microservices-basierten Architektur arbeiten. Dieses Handbuch ist für Sie, wenn Sie erfahren möchten, wie Sie Proof-of-Concept-Anwendungen mit Technologien zur Softwareentwicklung von Microsoft (mit besonderem Fokus auf .NET) und mit Docker-Containern architekturieren, gestalten und implementieren.

Sie finden diesen Leitfaden auch hilfreich, wenn Sie ein technischer Entscheidungsträger sind, z. B. ein Unternehmensarchitekt, der einen Überblick über Architektur und Technologie wünscht, bevor Sie entscheiden, welcher Ansatz für neue und moderne verteilte Anwendungen ausgewählt werden soll.

So verwenden Sie dieses Handbuch

Im ersten Teil dieses Handbuchs werden Docker-Container vorgestellt, die Auswahl zwischen .NET 7 und .NET Framework als Entwicklungsframework erläutert und eine Übersicht über Microservices bereitgestellt. Dieser Inhalt richtet sich an Architekten und technische Entscheidungsträger, die einen Überblick wünschen, sich aber nicht auf Codeimplementierungsdetails konzentrieren müssen.

Der zweite Teil des Handbuchs beginnt mit dem Entwicklungsprozess für Docker-basierte Anwendungen . Es konzentriert sich auf die Entwicklungs- und Microservicemuster für die Implementierung von Anwendungen mit .NET und Docker. Dieser Abschnitt ist für Entwickler und Architekten von Interesse, die sich auf Code und Muster und Implementierungsdetails konzentrieren möchten.

Die eShopOnContainers-Anwendung ist eine Open-Source-Referenz-App für .NET und Microservices, die mithilfe von Docker-Containern bereitgestellt werden sollen. Die Anwendung besteht aus mehreren Subsystemen, einschließlich mehrerer E-Store-UI-Front-Ends (eine Web MVC-App, ein Web SPA und eine native mobile App). Sie enthält auch die Back-End-Microservices und Container für alle erforderlichen serverseitigen Vorgänge.

Der Zweck der Anwendung besteht darin, Architekturmuster zu präsentieren. SIE STELLT KEINE PRODUKTIONSBEREITE VORLAGE DAR, die sich als Ausgangspunkt für reale Anwendungen eignet. Tatsächlich befindet sich die Anwendung in einem permanenten Betazustand, da sie auch verwendet wird, um neue potenziell interessante Technologien zu testen, während sie angezeigt werden.

Senden Ihres Feedbacks

Dieses Buch und verwandte Beispiele entwickeln sich ständig weiter, so dass Ihr Feedback willkommen ist. Wenn Sie Kommentare dazu haben, wie dieses Buch verbessert werden kann und Sie dieses Buch auf <learn.microsoft.com> lesen, verwenden Sie den Abschnitt "Feedback" unten auf der Seite:

Abschnitt „Feedback“ in den Fußzeilen der .NET-Dokumentationsartikel.

Wie in der vorherigen Bildschirmaufnahme hervorgehoben, können Sie im Feedbackabschnitt Feedback senden für:

  • Dieses Produkt: Verwenden Sie das .NET-Produktfeedbackformular.
  • Diese Seite: Verwenden einer GitHub-Problemvorlage mit den Seitendetails.

Wenn Sie dieses Buch als PDF lesen, können Sie Feedback senden, indem Sie ein neues .NET-Dokument erstellen: GitHub-Problem oder mithilfe der .NET Architecture eBooks: GitHub-Problemvorlage.

Gutschriften

Mitautoren:

Cesar de la Torre, Sr. PM, .NET Product Team, Microsoft Corp.

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

Mike Rousos, Principal Software Engineer, DevDiv CAT Team, Microsoft

Herausgeber:

Mike Papst

Steve Hoag

Teilnehmer und Prüfer:

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

Jim Bogard, Chefarchitekt bei Headspring

Udi Dahan, Gründer & CEO, Particular Software

Jim Nilsson, Mitbegründer und CEO von 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 Projektmanagement, .NET-Team, Microsoft

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

Dylan Reisenberger, Architekt und Dev Lead bei Polly

Steve „ardalis“ Smith – Softwarearchitekt und Trainer – Ardalis.com

Ian Cooper, Coding Architect bei Brighter

Unai Zorrilla, Architekt und Dev Lead bei Plain Concepts

Eduard Tomas, Dev Lead bei Plain Concepts

Ramon Tomas, Entwickler bei Plain Concepts

David Sanz, Entwickler bei Plain Concepts

Javier Valero, Chief Operating Officer bei Grupo 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 bei Plain Concepts

Sumit Ghosh, Principal Consultant bei Neudesic

VERÖFFENTLICHT VON

Microsoft Developer Division, .NET und Visual Studio-Produktteams

Eine Division der Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2023 von Microsoft Corporation

Alle Rechte vorbehalten. Ohne schriftliche Erlaubnis des Herausgebers darf kein Teil des Inhalts dieses Buchs in irgendeiner Form oder auf irgendeine Weise vervielfältigt oder übertragen werden.

Dieses Buch wird unverändert bereitgestellt und drückt die Ansichten und Meinungen des Autors aus. Die Ansichten, Meinungen und Informationen, die in diesem Buch ausgedrückt werden, einschließlich URL- und anderer Webseitenverweise, können sich ohne Vorankündigung ändern.

Einige hier dargestellte Beispiele dienen nur zur Veranschaulichung und sind fiktitös. Es ist keine echte Zuordnung oder Verbindung vorgesehen oder sollte abgeleitet werden.

Microsoft und die auf der Webseite "Marken" aufgeführten https://www.microsoft.com Marken sind Marken der Microsoft-Unternehmensgruppe.

Mac und macOS sind Marken von Apple Inc.

Das Docker-Wallogo ist eine eingetragene Marke von Docker, Inc. Verwendet mit Genehmigung.

Alle anderen Marken und Logos sind Eigentum ihrer jeweiligen Eigentümer.