Mikrousługi .NET: architektura konteneryzowanych aplikacji .NET

Book cover

WERSJA 6.0 — zaktualizowano do wersji ASP.NET Core 6.0

Zapoznaj się z dziennikami zmian , aby zapoznać się z aktualizacjami książek i wkładami społeczności.

Ten przewodnik stanowi wprowadzenie do tworzenia aplikacji opartych na mikrousługach i zarządzania nimi przy użyciu kontenerów. Omówiono w nim metody projektowania i implementacji architektury przy użyciu kontenerów .NET i Docker.

Aby ułatwić rozpoczęcie pracy, przewodnik koncentruje się na referencyjnej aplikacji konteneryzowanej i opartej na mikrousługach, którą można eksplorować. Aplikacja referencyjna jest dostępna w repozytorium eShopOnContainers GitHub.

Wprowadzenie

Przedsiębiorstwa coraz częściej zdają sobie sprawę z oszczędności kosztów, rozwiązywania problemów z wdrażaniem i ulepszania DevOps i operacji produkcyjnych przy użyciu kontenerów. Firma Microsoft udostępnia innowacje dotyczące kontenerów dla Windows i Linux, tworząc produkty, takie jak Azure Kubernetes Service i Azure Service Fabric, oraz współpracując z liderami branżowymi, takimi jak Docker, Mesosphere i Kubernetes. Te produkty dostarczają rozwiązania kontenerów, które ułatwiają firmom tworzenie i wdrażanie aplikacji z szybkością i skalowaniem w chmurze, niezależnie od wybranej platformy lub narzędzi.

Platforma Docker staje się de facto standardem w branży kontenerów, obsługiwanym przez najbardziej znaczących dostawców w ekosystemach Windows i Linux. (Firma Microsoft jest jednym z głównych dostawców usług w chmurze obsługujących platformę Docker). W przyszłości platforma Docker będzie prawdopodobnie wszechobecna w dowolnym centrum danych w chmurze lub lokalnie.

Ponadto architektura mikrousług pojawia się jako ważne podejście do aplikacji rozproszonych o znaczeniu krytycznym. W architekturze opartej na mikrousługach aplikacja jest oparta na kolekcji usług, które można opracowywać, testować, wdrażać i wersjonować niezależnie.

O tym przewodniku

Ten przewodnik stanowi wprowadzenie do tworzenia aplikacji opartych na mikrousługach i zarządzania nimi przy użyciu kontenerów. Omówiono w nim metody projektowania i implementacji architektury przy użyciu kontenerów .NET i Docker. Aby ułatwić rozpoczęcie pracy z kontenerami i mikrousługami, przewodnik koncentruje się na referencyjnej aplikacji konteneryzowanej i opartej na mikrousługach, którą można eksplorować. Przykładowa aplikacja jest dostępna w repozytorium eShopOnContainers GitHub.

Ten przewodnik zawiera podstawowe wskazówki dotyczące programowania i architektury przede wszystkim na poziomie środowiska deweloperskiego, koncentrując się na dwóch technologiach: Docker i .NET. Naszym zamiarem jest przeczytanie tego przewodnika podczas myślenia o projekcie aplikacji bez skupienia się na infrastrukturze (w chmurze lub środowisku lokalnym) środowiska produkcyjnego. Później podejmiesz decyzje dotyczące infrastruktury podczas tworzenia aplikacji gotowych do produkcji. W związku z tym ten przewodnik ma być niezależna od infrastruktury i bardziej skoncentrowana na środowisku projektowym.

Po zapoznaniu się z tym przewodnikiem następnym krokiem będzie zapoznanie się z mikrousługami gotowymi do produkcji na Microsoft Azure.

Wersja

Ten przewodnik został zmieniony w celu omówienia wersji .NET 6 wraz z wieloma dodatkowymi aktualizacjami związanymi z tą samą "falą" technologii (czyli platformą Azure i dodatkowymi technologiami innych firm) zbiegającym się w czasie z wydaniem platformy .NET 6. Dlatego wersja książki została również zaktualizowana do wersji 6.0.

Co ten przewodnik nie obejmuje

Ten przewodnik nie koncentruje się na cyklu życia aplikacji, DevOps, potokach ciągłej integracji/ciągłego wdrażania ani pracy zespołowej. Uzupełniający się przewodnik Konteneryzowany cykl życia aplikacji platformy Docker z platformą i narzędziami firmy Microsoft koncentruje się na tym temacie. Bieżący przewodnik nie zawiera również szczegółów implementacji dotyczących infrastruktury platformy Azure, takich jak informacje o określonych orkiestratorach.

Dodatkowe zasoby

KtoTo należy użyć tego przewodnika

Napisaliśmy ten przewodnik dla deweloperów i architektów rozwiązań, którzy są nowi w zakresie tworzenia aplikacji opartych na platformie Docker i architektury opartej na mikrousługach. Ten przewodnik jest przeznaczony dla Ciebie, jeśli chcesz dowiedzieć się, jak projektować, projektować i implementować aplikacje do weryfikacji koncepcji za pomocą technologii deweloperskich firmy Microsoft (ze szczególnym uwzględnieniem platformy .NET) i kontenerów platformy Docker.

Ten przewodnik jest również przydatny, jeśli jesteś twórcą decyzji technicznych, takim jak architekt przedsiębiorstwa, który chce omówienia architektury i technologii przed podjęciem decyzji o tym, jakie podejście należy wybrać dla nowych i nowoczesnych aplikacji rozproszonych.

Jak korzystać z tego przewodnika

W pierwszej części tego przewodnika przedstawiono kontenery platformy Docker, omówiono sposób wyboru między platformą .NET 6 i .NET Framework jako platformą deweloperów oraz omówienie mikrousług. Ta zawartość jest przeznaczony dla architektów i osób podejmujących decyzje techniczne, którzy chcą zapoznać się z omówieniem, ale nie muszą skupiać się na szczegółach implementacji kodu.

Druga część przewodnika rozpoczyna się od sekcji Proces tworzenia aplikacji opartych na platformie Docker . Koncentruje się on na wzorcach programowania i mikrousług na potrzeby implementowania aplikacji przy użyciu platformy .NET i platformy Docker. Ta sekcja będzie najbardziej interesująca dla deweloperów i architektów, którzy chcą skupić się na kodzie oraz na wzorcach i szczegółach implementacji.

Aplikacja eShopOnContainers to aplikacja referencyjna typu open source dla platformy .NET i mikrousług przeznaczonych do wdrożenia przy użyciu kontenerów platformy Docker. Aplikacja składa się z wielu podsystemów, w tym kilku frontonów interfejsu użytkownika sklepu elektronicznego (aplikacji internetowego MVC, internetowego spa i natywnej aplikacji mobilnej). Obejmuje również mikrousługi zaplecza i kontenery dla wszystkich wymaganych operacji po stronie serwera.

Celem aplikacji jest prezentacja wzorców architektonicznych. NIE JEST TO SZABLON GOTOWY DO PRODUKCJI DO uruchamiania rzeczywistych aplikacji. W rzeczywistości aplikacja jest w stanie stałej wersji beta, ponieważ jest również używana do testowania nowych potencjalnie interesujących technologii podczas ich wyświetlania.

Wyślij nam swoją opinię!

Napisaliśmy ten przewodnik, aby ułatwić zrozumienie architektury konteneryzowanych aplikacji i mikrousług na platformie .NET. Przewodnik i powiązana aplikacja referencyjna będą się rozwijać, więc z zadowoleniem przyjmujemy Twoją opinię! Jeśli masz komentarze dotyczące sposobu ulepszania tego przewodnika, prześlij opinię pod adresem https://aka.ms/ebookfeedback.

Środki

Współautorzy:

Cesar de la Torre, Sr. PM, zespół produktu .NET, Microsoft Corp.

Bill Wagner, starszy deweloper zawartości, C+E, Microsoft Corp.

Mike Rousos, główny inżynier oprogramowania, zespół DevDiv CAT, Microsoft

Edytory:

Mike Pope

Steve Hoag

Uczestnicy i recenzenci:

Jeffrey Richter, Partner Software Eng, zespół platformy Azure, Microsoft

Jimmy Bogard, główny architekt w Headspring

Udi Dahan, dyrektor generalny założyciela & , określone oprogramowanie

Jimmy Nilsson, współzałożyciel i dyrektor generalny Factor10

Glenn Condron, starszy menedżer programu, zespół ASP.NET

Mark Fussell, główny kierownik pm, zespół platformy Azure Service Fabric, Microsoft

Diego Vega, PM Lead, Entity Framework team, Microsoft

Barry Dorrans, starszy menedżer programu zabezpieczeń

Rowan Miller, starszy menedżer programu, Microsoft

Ankit Asthana, główny menedżer pm, zespół platformy .NET, Microsoft

Scott Hunter, dyrektor partnerski, zespół platformy .NET, Microsoft

Nish Anil, starszy menedżer programu, zespół platformy .NET, Microsoft

Dylan Reisenberger, Architekt i Dev Lead w Polly

Steve "ardalis" Smith - Architekt oprogramowania i trener - Ardalis.com

Ian Cooper, architekt kodowania w: Brighter

Unai Zorrilla, architekt i lider deweloperski w zwykłych pojęciach

Eduard Tomas, lider deweloperów w: Plain Concepts

Ramon Tomas, deweloper w: Plain Concepts

David Sanz, deweloper w: Plain Concepts

Javier Valero, dyrektor operacyjny w: Grupo Solutio

Pierre Millet, starszy konsultant, Microsoft

Michael Friis, Menedżer produktu, Docker Inc

Charles Lowell, inżynier oprogramowania, zespół VS CAT, Microsoft

Miguel Veloso, inżynier tworzenia oprogramowania w: Plain Concepts

Sumit Ghosh, główny konsultant w: Neudesic

OPUBLIKOWANA PRZEZ

Dział deweloperów firmy Microsoft, platforma .NET i zespoły produktów Visual Studio

Dział firmy Microsoft Corporation

One Microsoft Way

Redmond, Waszyngton 98052-6399

Copyright © 2022 firmy Microsoft Corporation

All rights reserved. Żadna część treści tej książki nie może być odtwarzana ani przesyłana w jakiejkolwiek formie ani w żaden sposób bez pisemnego zezwolenia wydawcy.

Ta książka jest dostarczana "jak jest" i wyraża poglądy autora i opinie. Poglądy, opinie i informacje wyrażone w tej książce, w tym adres URL i inne odwołania do stron internetowych, mogą ulec zmianie bez powiadomienia.

Niektóre z przykładów przedstawiono wyłącznie do celów informacyjnych i są one fikcyjne. Żadne rzeczywiste skojarzenia lub związki nie są zamierzone ani wnioskowane.

Firma Microsoft i znaki towarowe wymienione na https://www.microsoft.com stronie internetowej "Znaki towarowe" są znakami towarowymi grupy firm firmy Microsoft.

Komputery Mac i macOS są znakami towarowymi firmy Apple Inc.

Logo wieloryba platformy Docker jest zarejestrowanym znakiem towarowym firmy Docker, Inc. używanej przez uprawnienie.

Wszystkie inne znaki i logo są własnością ich właścicieli.