Partager via


Microservices .NET : architecture pour les applications .NET conteneurisées

Couverture de livre

EDITION v7.0 - Mise à jour vers ASP.NET Core 7.0

Consultez le journal des modifications pour les mises à jour relatives au livre et les contributions de la communauté.

Ce guide présente le développement d’applications basées sur des microservices et leur gestion à l’aide de conteneurs. Il traite des approches de conception et d’implémentation architecturales à l’aide de conteneurs .NET et Docker.

Pour faciliter la prise en main, le guide se concentre sur une application conteneurisée et microservice de référence que vous pouvez explorer. L’application de référence est disponible sur le dépôt GitHub eShopOnContainers .

Présentation

Les entreprises réalisent de plus en plus d’économies de coûts, résolvent les problèmes de déploiement et améliorent les opérations devOps et de production à l’aide de conteneurs. Microsoft a publié des innovations de conteneur pour Windows et Linux en créant des produits tels qu’Azure Kubernetes Service et Azure Service Fabric, et en s’associant avec des leaders du secteur comme Docker, Mesosphere et Kubernetes. Ces produits fournissent des solutions de conteneur qui aident les entreprises à créer et déployer des applications à la vitesse et à l’échelle du cloud, quel que soit leur choix de plateforme ou d’outils.

Docker devient la norme de facto dans le secteur des conteneurs, prise en charge par les fournisseurs les plus importants dans les écosystèmes Windows et Linux. (Microsoft est l’un des principaux fournisseurs de cloud prenant en charge Docker). À l’avenir, Docker sera probablement omniprésent dans n’importe quel centre de données dans le cloud ou en local.

De plus, l’architecture des microservices apparaît comme une approche importante pour les applications stratégiques distribuées. Dans une architecture basée sur un microservice, l’application repose sur une collection de services qui peuvent être développés, testés, déployés et versionnés indépendamment.

À propos de ce guide

Ce guide présente le développement d’applications basées sur des microservices et leur gestion à l’aide de conteneurs. Il traite des approches de conception et d’implémentation architecturales à l’aide de conteneurs .NET et Docker. Pour faciliter la prise en main des conteneurs et des microservices, le guide se concentre sur une application conteneurisée et basée sur des microservices de référence que vous pouvez explorer. L’exemple d’application est disponible sur le dépôt GitHub eShopOnContainers .

Ce guide fournit des conseils fondamentaux en matière de développement et d’architecture principalement au niveau d’un environnement de développement, avec un focus sur deux technologies : Docker et .NET. Nous avons l’intention de lire ce guide lorsque vous réfléchissez à la conception de votre application sans vous concentrer sur l’infrastructure (cloud ou locale) de votre environnement de production. Vous prendrez des décisions sur votre infrastructure ultérieurement, lorsque vous créez vos applications prêtes pour la production. Par conséquent, ce guide est destiné à être indépendant de l’infrastructure et centré sur l’environnement de développement.

Une fois que vous avez étudié ce guide, l’étape suivante consiste à découvrir les microservices prêts pour la production sur Microsoft Azure.

Version

Ce guide a été révisé pour couvrir la version de .NET 7 , ainsi que de nombreuses mises à jour supplémentaires liées à la même « vague » de technologies (autrement dit, Azure et autres technologies tierces) coïncidant dans le temps avec la version .NET 7.

Remarque

Une nouvelle version de ce livre électronique est en cours de création pour .NET 8 et le nouvel exemple eShop .

Ce que ce guide ne couvre pas

Ce guide ne se concentre pas sur le cycle de vie de l’application, DevOps, les pipelines CI/CD ou le travail d’équipe. Le guide complémentaire Conteneurized Docker Application Lifecycle with Microsoft Platform and Tools se concentre sur ce sujet. Le guide actuel ne fournit pas non plus de détails d’implémentation sur l’infrastructure Azure, telles que des informations sur des orchestrateurs spécifiques.

Ressources supplémentaires

Public visé par ce guide

Nous avons écrit ce guide pour les développeurs et les architectes de solutions qui ne connaissent pas le développement d’applications docker et l’architecture basée sur des microservices. Ce guide est destiné à vous si vous souhaitez apprendre à concevoir, concevoir et implémenter des applications de preuve de concept avec des technologies de développement Microsoft (avec une attention particulière sur .NET) et avec des conteneurs Docker.

Vous trouverez également ce guide utile si vous êtes un décideur technique, tel qu’un architecte d’entreprise, qui souhaite une vue d’ensemble de l’architecture et de la technologie avant de décider de l’approche à sélectionner pour les applications distribuées nouvelles et modernes.

Guide pratique pour utiliser ce guide

La première partie de ce guide présente les conteneurs Docker, explique comment choisir entre .NET 7 et .NET Framework en tant que framework de développement, et fournit une vue d’ensemble des microservices. Ce contenu est destiné aux architectes et aux décideurs techniques qui souhaitent une vue d’ensemble, mais qui n’ont pas besoin de se concentrer sur les détails de l’implémentation du code.

La deuxième partie du guide commence par le processus de développement pour la section applications Docker . Il se concentre sur les modèles de développement et de microservice pour l’implémentation d’applications à l’aide de .NET et Docker. Cette section sera très intéressante pour les développeurs et les architectes qui souhaitent se concentrer sur le code et sur les modèles et les détails de l’implémentation.

L’application eShopOnContainers est une application de référence open source pour .NET et les microservices conçus pour être déployés à l’aide de conteneurs Docker. L’application se compose de plusieurs sous-systèmes, y compris plusieurs front-ends d’interface utilisateur de magasin électronique (une application Web MVC, une spa web et une application mobile native). Il inclut également les microservices et conteneurs back-end pour toutes les opérations côté serveur requises.

L’objectif de l’application est de présenter des modèles architecturaux. Ce n'est pas un modèle PRODUCTION-READY pour lancer des applications réelles. En fait, l’application est dans un état bêta permanent, car elle est également utilisée pour tester de nouvelles technologies potentiellement intéressantes à mesure qu’elles s’affichent.

Envoyer vos commentaires

Ce livre et les exemples connexes évoluent constamment, de sorte que vos commentaires sont accueillis. Si vous avez des commentaires sur la façon dont ce livre peut être amélioré et que vous lisez ce livre sur <learn.microsoft.com>, utilisez la section Commentaires en bas de la page :

Section Commentaires dans le pied de page de tous les articles de la documentation .NET.

Comme indiqué dans la capture d’écran précédente, la section commentaires vous permet d’envoyer des commentaires pour :

  • Ce produit : en utilisant le formulaire Contactez-nous au sujet du produit .NET.
  • Cette page : utilisation d’un modèle de problème GitHub avec les détails de la page.

Si vous lisez ce livre au format PDF, vous pouvez envoyer des commentaires en créant un problème .NET Docs : GitHub ou en utilisant le modèle de problème .NET Architecture eBooks : GitHub.

Crédits

Co-auteurs :

Cesar de la Torre, Sr. PM, équipe produit .NET, Microsoft Corp.

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

Mike Rousos, ingénieur logiciel principal, équipe DEVDiv CAT, Microsoft

Éditeurs:

Mike Pope

Steve Hoag

Participants et réviseurs :

Jeffrey Richter, Partner Software Eng, équipe Azure, Microsoft

Jimmy Bogard, architecte en chef à Headspring

Udi Dahan, Fondateur et PDG, Particular Software

Jimmy Nilsson, co-fondateur et PDG de Factor10

Glenn Condron, Responsable de programme sénior, équipe ASP.NET

Mark Fussell, Principal PM Lead, équipe Azure Service Fabric, Microsoft

Diego Vega, PM Lead, équipe Entity Framework, Microsoft

Barry Dorrans, Responsable Senior du Programme de Sécurité

Rowan Miller, Sr. Program Manager, Microsoft

Ankit Asthana, Principal PM Manager, équipe .NET, Microsoft

Scott Hunter, directeur partenaire PM, équipe .NET, Microsoft

Nish Anil, Sr. Program Manager, équipe .NET, Microsoft

Dylan Reisenberger, architecte et responsable du développement chez Polly

Steve « ardalis » Smith - Architecte logiciel et formateur - Ardalis.com

Ian Cooper, architecte de codage chez Brighter

Unai Zorrilla, architecte et responsable de développement à Plain Concepts

Eduard Tomas, responsable du développement chez Plain Concepts

Ramon Tomas, Développeur chez Plain Concepts

David Sanz, développeur chez Plain Concepts

Javier Valero, directeur général chez Grupo Solutio

Pierre Millet, Sr. Consultant, Microsoft

Michael Friis, Product Manager, Docker Inc

Charles Lowell, Ingénieur logiciel, équipe VS CAT, Microsoft

Miguel Veloso, ingénieur développement logiciel à Plain Concepts

Sumit Ghosh, consultant principal chez Neudesic

PUBLIÉ PAR

Division des développeurs Microsoft, équipes de produits .NET et Visual Studio

Une division de Microsoft Corporation

Une méthode Microsoft

Redmond, Washington 98052-6399

Copyright © 2023 par Microsoft Corporation

Tous droits réservés. Aucune partie de cette publication ne peut être reproduite ou transmise sous quelque forme ou par quelque moyen que ce soit sans l’autorisation écrite de l’éditeur.

Cet ouvrage est fourni « tel quel » et exprime les points de vue et opinions de l’auteur. Les points de vue, opinions et informations fournis dans cet ouvrage, y compris les URL et autres références à des sites web Internet, pourront faire l’objet de modifications sans préavis.

Certains exemples présentés ici sont fournis uniquement pour l’illustration et sont fictifs. Aucune association ou connexion réelle n’est prévue ou doit être déduite.

Microsoft et les marques commerciales répertoriées sur https://www.microsoft.com sur la page Web « Marques déposées » sont des marques du groupe de sociétés Microsoft.

Mac et macOS sont des marques d’Apple Inc.

Le logo de la baleine Docker est une marque déposée de Docker, Inc. Utilisée par autorisation.

Toutes les autres marques et logos appartiennent à leurs détenteurs respectifs.