Microservices .NET : Architecture pour les applications .NET en conteneur.NET Microservices: Architecture for Containerized .NET Applications

Couverture de livre

Édition v 5.0 -mise à jour vers ASP.net Core 5,0EDITION v5.0 - Updated to ASP.NET Core 5.0

Reportez-vous à Journal des modifications pour les mises à jour de livres et les contributions de la communauté.Refer changelog for the book updates and community contributions.

Ce guide est une introduction au développement d’applications basées sur les microservices et à la gestion de celles-ci au moyen de conteneurs.This guide is an introduction to developing microservices-based applications and managing them using containers. Il aborde les approches de conception et d’implémentation architecturales à l’aide de .NET et de conteneurs d’ancrage.It discusses architectural design and implementation approaches using .NET and Docker containers.

Pour faciliter la prise en main, ce guide met en lumière une application de référence en conteneur basée sur des microservices que vous pouvez explorer.To make it easier to get started, the guide focuses on a reference containerized and microservice-based application that you can explore. L’application de référence est disponible sur le dépôt GitHub eShopOnContainers.The reference application is available at the eShopOnContainers GitHub repo.

IntroductionIntroduction

Les entreprises cherchent de plus en plus à réaliser des économies, à résoudre les problèmes de déploiement et à améliorer les opérations DevOps et de production en utilisant des conteneurs.Enterprises are increasingly realizing cost savings, solving deployment problems, and improving DevOps and production operations by using containers. Microsoft a fait preuve d’innovation dans le domaine des conteneurs pour Windows et Linux en créant des produits comme Azure Kubernetes Service et Azure Service Fabric et en formant des partenariats avec des acteurs phares du secteur tels que Docker, Mesosphere et Kubernetes.Microsoft has been releasing container innovations for Windows and Linux by creating products like Azure Kubernetes Service and Azure Service Fabric, and by partnering with industry leaders like Docker, Mesosphere, and Kubernetes. Ces produits offrent aux entreprises des solutions de conteneur qui leur permettent de créer et déployer des applications à la vitesse et à l’échelle du cloud, indépendamment de la plateforme ou des outils qu’elles ont choisi d’utiliser.These products deliver container solutions that help companies build and deploy applications at cloud speed and scale, whatever their choice of platform or tools.

Docker est en passe de devenir de facto le standard dans le domaine du conteneur, recueillant l’adhésion des éditeurs les plus en vue dans les écosystèmes Windows et Linux.Docker is becoming the de facto standard in the container industry, supported by the most significant vendors in the Windows and Linux ecosystems. (Microsoft est l’un des principaux fournisseurs de Cloud qui prennent en charge l’arrimeur.) À l’avenir, l’arrimeur sera probablement omniprésent dans n’importe quel centre de l’environnement Cloud ou local.(Microsoft is one of the main cloud vendors supporting Docker.) In the future, Docker will probably be ubiquitous in any datacenter in the cloud or on-premises.

Par ailleurs, l’architecture de microservices est une approche qui devient importante pour les applications stratégiques distribuées.In addition, the microservices architecture is emerging as an important approach for distributed mission-critical applications. Dans une architecture basée sur les microservices, l’application repose sur un ensemble de services qui peuvent être développés, testés, déployés et versionnés de manière indépendante.In a microservice-based architecture, the application is built on a collection of services that can be developed, tested, deployed, and versioned independently.

À propos de ce guideAbout this guide

Ce guide est une introduction au développement d’applications basées sur les microservices et à la gestion de celles-ci au moyen de conteneurs.This guide is an introduction to developing microservices-based applications and managing them using containers. Il aborde les approches de conception et d’implémentation architecturales à l’aide de .NET et de conteneurs d’ancrage.It discusses architectural design and implementation approaches using .NET and Docker containers. Pour faciliter la prise en main des conteneurs et des microservices, ce guide met en lumière une application de référence en conteneur basée sur des microservices que vous pouvez explorer.To make it easier to get started with containers and microservices, the guide focuses on a reference containerized and microservice-based application that you can explore. L’exemple d’application est disponible sur le dépôt GitHub eShopOnContainers.The sample application is available at the eShopOnContainers GitHub repo.

Ce guide fournit des conseils d’architecture et de développement de base principalement au niveau de l’environnement de développement, et se concentre sur deux technologies : Ancrable et .NET.This guide provides foundational development and architectural guidance primarily at a development environment level with a focus on two technologies: Docker and .NET. Notre objectif est que vous lisiez ce guide en pensant à la conception de votre application sans vous polariser sur l’infrastructure (cloud ou locale) de votre environnement de production.Our intention is that you read this guide when thinking about your application design without focusing on the infrastructure (cloud or on-premises) of your production environment. Vous prendrez vos décisions concernant l’infrastructure plus tard, au moment de créer vos applications pour la production.You will make decisions about your infrastructure later, when you create your production-ready applications. Par conséquent, ce guide se veut neutre concernant l’infrastructure et davantage centré sur l’environnement de développement.Therefore, this guide is intended to be infrastructure agnostic and more development-environment-centric.

Après avoir examiné ce guide, votre prochaine étape consistera à vous familiariser avec les microservices prêts pour la production dans Microsoft Azure.After you have studied this guide, your next step would be to learn about production-ready microservices on Microsoft Azure.

VersionVersion

Ce guide a été révisé pour couvrir la version de .net 5 , ainsi que de nombreuses mises à jour supplémentaires liées aux mêmes « vagues » de technologies (c’est-à-dire, Azure et des technologies tierces) qui coïncident avec la version .net 5.This guide has been revised to cover .NET 5 version along with many additional updates related to the same “wave” of technologies (that is, Azure and additional third-party technologies) coinciding in time with the .NET 5 release. C’est la raison pour laquelle la version du livre a également été mise à jour vers la version 5,0.That’s why the book version has also been updated to version 5.0.

Sujets non abordés dans ce guideWhat this guide does not cover

Ce guide ne traite pas du cycle de vie des applications, de DevOps, des pipelines CI/CD, ni du travail d’équipe.This guide does not focus on the application lifecycle, DevOps, CI/CD pipelines, or team work. Le guide complémentaire intitulé Containerized Docker Application Lifecycle with Microsoft Platform and Tools (Cycle de vie des applications Docker en conteneur avec la plateforme et les outils Microsoft) porte essentiellement sur ce sujet.The complementary guide Containerized Docker Application Lifecycle with Microsoft Platform and Tools focuses on that subject. Le présent guide ne fournit pas non plus de détails sur l’implémentation de l’infrastructure Azure, notamment sur les orchestrateurs spécifiques.The current guide also does not provide implementation details on Azure infrastructure, such as information on specific orchestrators.

Ressources supplémentairesAdditional resources

  • Containerized Docker Application Lifecycle with Microsoft Platform and Tools (livre électronique téléchargeable)Containerized Docker Application Lifecycle with Microsoft Platform and Tools (downloadable e-book)
    https://aka.ms/dockerlifecycleebook

Public visé par ce guideWho should use this guide

Nous avons rédigé ce guide à l’intention des développeurs et des architectes de solutions qui n’ont pas d’expérience en matière développement d’applications Docker et d’architecture basée sur les microservices.We wrote this guide for developers and solution architects who are new to Docker-based application development and to microservices-based architecture. Ce guide vous concerne 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 d’ancrage.This guide is for you if you want to learn how to architect, design, and implement proof-of-concept applications with Microsoft development technologies (with special focus on .NET) and with Docker containers.

Ce guide saura aussi vous intéresser si vous êtes un décideur technique, tel qu’un architecte d’entreprise, désireux d’avoir une vue d’ensemble de l’architecture et des technologies avant d’opter pour telle ou telle approche d’application distribuée nouvelle et moderne.You will also find this guide useful if you are a technical decision maker, such as an enterprise architect, who wants an architecture and technology overview before you decide on what approach to select for new and modern distributed applications.

Comment utiliser ce guideHow to use this guide

La première partie de ce guide présente les conteneurs de l’arrimeur, explique comment choisir entre .NET 5 et le .NET Framework comme Framework de développement et fournit une vue d’ensemble des microservices.The first part of this guide introduces Docker containers, discusses how to choose between .NET 5 and the .NET Framework as a development framework, and provides an overview of microservices. Ce contenu s’adresse aux architectes et aux décideurs techniques qui souhaitent obtenir une vue d’ensemble, mais qui n’ont pas besoin de s’attarder sur les détails d’implémentation de code.This content is for architects and technical decision makers who want an overview but don't need to focus on code implementation details.

La deuxième partie du guide commence par la section Processus de développement des applications basées sur Docker.The second part of the guide starts with the Development process for Docker based applications section. Il se concentre sur les modèles de développement et de microservice pour implémenter des applications à l’aide de .NET et de dockers.It focuses on the development and microservice patterns for implementing applications using .NET and Docker. Cette section intéressera plus particulièrement les développeurs et les architectes qui souhaitent se concentrer sur le code et les détails concernant les modèles et l’implémentation.This section will be of most interest to developers and architects who want to focus on code and on patterns and implementation details.

L’application eShopOnContainers est une application de référence Open source pour .NET et des microservices conçue pour être déployée à l’aide de conteneurs d’ancrage.The eShopOnContainers application is an open-source reference app for .NET and microservices that is designed to be deployed using Docker containers. L’application se compose de plusieurs sous-systèmes, y compris plusieurs serveurs frontaux d’interface utilisateur du magasin e-Store (une application Web MVC, un SPA Web et une application mobile native).The application consists of multiple subsystems, including several e-store UI front-ends (a Web MVC app, a Web SPA, and a native mobile app). Elle inclut aussi les microservices et les conteneurs backend pour toutes les opérations côté serveur nécessaires.It also includes the back-end microservices and containers for all required server-side operations.

L’objectif de l’application est de présenter des modèles architecturaux.The purpose of the application is to showcase architectural patterns. IL NE S’AGIT PAS D’UN MODÈLE PRÊT POUR LA PRODUCTION permettant de démarrer des applications réelles.IT IS NOT A PRODUCTION-READY TEMPLATE to start real-world applications. 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 lorsqu’elles s’affichent.In fact, the application is in a permanent beta state, as it's also used to test new potentially interesting technologies as they show up.

Envoyez-nous vos commentaires !Send us your feedback!

Nous avons rédigé ce guide pour vous aider à comprendre l’architecture des applications en conteneur et des microservices dans .NET.We wrote this guide to help you understand the architecture of containerized applications and microservices in .NET. Le guide et l’application de référence associée étant voués à évoluer, nous faisons bon accueil à vos commentaires !The guide and related reference application will be evolving, so we welcome your feedback! Si vous avez des commentaires sur la façon dont ce guide peut être amélioré, envoyez vos commentaires à l’adresse https://aka.ms/ebookfeedback .If you have comments about how this guide can be improved, submit feedback at https://aka.ms/ebookfeedback.

CréditsCredits

Coauteurs :Co-Authors:

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

Bill Wagner, développeur de contenu en chef, C+E, Microsoft Corp.Bill Wagner, Sr. Content Developer, C+E, Microsoft Corp.

Mike Rousos, ingénieur logiciel principal, équipe DevDiv CAT, MicrosoftMike Rousos, Principal Software Engineer, DevDiv CAT team, Microsoft

Rédacteurs :Editors:

Mike PopeMike Pope

Steve HoagSteve Hoag

Participants et réviseurs :Participants and reviewers:

Jeffrey Richter, ingénieur logiciel partenaire, équipe Azure, MicrosoftJeffrey Richter, Partner Software Eng, Azure team, Microsoft

Jimmy Bogard, architecte en chef chez HeadspringJimmy Bogard, Chief Architect at Headspring

Udi Dahan, fondateur et PDG, Particular SoftwareUdi Dahan, Founder & CEO, Particular Software

Jimmy Nilsson, co-fondateur et PDG de Factor10Jimmy Nilsson, Co-founder and CEO of Factor10

Glenn Condron, gestionnaire de programmes en chef, équipe ASP.NETGlenn Condron, Sr. Program Manager, ASP.NET team

Mark Fussell, responsable principal de la gestion de projets, équipe Azure Service Fabric, MicrosoftMark Fussell, Principal PM Lead, Azure Service Fabric team, Microsoft

Diego Vega, responsable de la gestion de projets, équipe Entity Framework, MicrosoftDiego Vega, PM Lead, Entity Framework team, Microsoft

Barry Dorrans, gestionnaire de programmes de sécurité en chefBarry Dorrans, Sr. Security Program Manager

Rowan Miller, gestionnaire de programmes en chef, MicrosoftRowan Miller, Sr. Program Manager, Microsoft

Ankit Asthana, responsable principal de la gestion de projets, équipe .NET, MicrosoftAnkit Asthana, Principal PM Manager, .NET team, Microsoft

Scott Hunter, chef de projet directeur partenaire, équipe .NET, MicrosoftScott Hunter, Partner Director PM, .NET team, Microsoft

Nish Anil, responsable de programme senior, équipe .NET, MicrosoftNish Anil, Sr. Program Manager, .NET team, Microsoft

Dylan Reisenberger, architecte et responsable de développement chez PollyDylan Reisenberger, Architect and Dev Lead at Polly

Steve « ardalis » Smith - Architecte et formateur logiciel - Ardalis.comSteve "ardalis" Smith - Software Architect and Trainer - Ardalis.com

Ian Cooper, architecte développement chez BrighterIan Cooper, Coding Architect at Brighter

Unai Zorrilla, architecte et responsable de développement chez Plain ConceptsUnai Zorrilla, Architect and Dev Lead at Plain Concepts

Eduard Tomas, responsable de développement chez Plain ConceptsEduard Tomas, Dev Lead at Plain Concepts

Ramon Tomas, développeur chez Plain ConceptsRamon Tomas, Developer at Plain Concepts

David Sanz, développeur chez Plain ConceptsDavid Sanz, Developer at Plain Concepts

Javier Valero, chef des opérations chez Grupo SolutioJavier Valero, Chief Operating Officer at Grupo Solutio

Pierre Millet, consultant en chef, MicrosoftPierre Millet, Sr. Consultant, Microsoft

Michael Friis, chef de produit, Docker Inc.Michael Friis, Product Manager, Docker Inc

Charles Lowell, ingénieur logiciel, équipe VS CAT, MicrosoftCharles Lowell, Software Engineer, VS CAT team, Microsoft

Miguel Veloso, ingénieur de développement logiciel chez des concepts simplesMiguel Veloso, Software Development Engineer at Plain Concepts

Sumit Ghosh, consultant principal chez NeudesicSumit Ghosh, Principal Consultant at Neudesic

PUBLIÉ PARPUBLISHED BY

Division Développeurs Microsoft, équipes produit .NET et Visual StudioMicrosoft Developer Division, .NET and Visual Studio product teams

Division de Microsoft CorporationA division of Microsoft Corporation

One Microsoft WayOne Microsoft Way

Redmond, Washington 98052-6399Redmond, Washington 98052-6399

Copyright © 2021 par Microsoft CorporationCopyright © 2021 by Microsoft Corporation

Tous droits réservés.All rights reserved. Aucune partie du contenu de ce document ne peut être reproduite ou transmise sous quelque forme ou par quelque moyen que ce soit sans l’autorisation écrite de l’éditeur.No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.

Ce document est fourni « en l’état » et exprime les points de vue et les opinions de son auteur.This book is provided "as-is" and expresses the author's views and opinions. Les points de vue, les opinions et les informations exprimés dans ce document, notamment l’URL et autres références à des sites web Internet, peuvent faire l’objet de modifications sans préavis.The views, opinions and information expressed in this book, including URL and other Internet website references, may change without notice.

Certains exemples sont fournis à titre indicatif uniquement et sont fictifs.Some examples depicted herein are provided for illustration only and are fictitious. Toute association ou lien est purement involontaire ou fortuit.No real association or connection is intended or should be inferred.

Microsoft et les marques commerciales mentionnées dans la page web « Marques » sur https://www.microsoft.com sont des marques du groupe Microsoft.Microsoft and the trademarks listed at https://www.microsoft.com on the "Trademarks" webpage are trademarks of the Microsoft group of companies.

Mac et macOS sont des marques commerciales d’Apple Inc.Mac and macOS are trademarks of Apple Inc.

Le logo de la baleine de l’arrimeur est une marque déposée de Dockr, Inc. utilisée par l’autorisation.The Docker whale logo is a registered trademark of Docker, Inc. Used by permission.

Toutes les autres marques et tous les autres logos sont la propriété de leurs propriétaires respectifs.All other marks and logos are property of their respective owners.