Condividi tramite


Microservizi .NET: architettura per applicazioni .NET in contenitori

Copertina libro

EDITION v7.0 - Aggiornato a ASP.NET Core 7.0

Per gli aggiornamenti del libro e i contributi della comunità, vedere il registro delle modifiche .

Questa guida è un'introduzione allo sviluppo di applicazioni basate su microservizi e alla gestione tramite contenitori. Illustra gli approcci di progettazione e implementazione dell'architettura usando i contenitori .NET e Docker.

Per semplificare l'avvio, la guida è incentrata su un'applicazione basata su microservizi e contenitori di riferimento che è possibile esplorare. L'applicazione di riferimento è disponibile nel repository GitHub eShopOnContainers .

Introduzione

Le aziende realizzano sempre più risparmi sui costi, risolvono i problemi di distribuzione e migliorano le operazioni devOps e di produzione usando i contenitori. Microsoft ha rilasciato le innovazioni dei contenitori per Windows e Linux creando prodotti come il servizio Azure Kubernetes e Azure Service Fabric e collaborando con leader del settore come Docker, Mesosphere e Kubernetes. Questi prodotti offrono soluzioni contenitore che aiutano le aziende a creare e distribuire applicazioni a velocità e scalabilità cloud, indipendentemente dalla propria scelta di strumenti o piattaforme.

Docker sta diventando lo standard di fatto nel settore dei contenitori, supportato dai fornitori più significativi negli ecosistemi Windows e Linux. Microsoft è uno dei principali fornitori di servizi cloud che supportano Docker. In futuro, Docker sarà probabilmente onnipresente in qualsiasi data center nel cloud o in locale.

Inoltre, l'architettura dei microservizi sta emergendo come un approccio importante per le applicazioni cruciali distribuite. In un'architettura basata su microservizi, l'applicazione si basa su una raccolta di servizi che possono essere sviluppati, testati, distribuiti e sottoposti a controllo delle versioni in modo indipendente.

Informazioni su questa guida

Questa guida è un'introduzione allo sviluppo di applicazioni basate su microservizi e alla gestione tramite contenitori. Illustra gli approcci di progettazione e implementazione dell'architettura usando i contenitori .NET e Docker. Per semplificare l'uso di contenitori e microservizi, la guida è incentrata su un'applicazione basata su microservizi e contenitori di riferimento che è possibile esplorare. L'applicazione di esempio è disponibile nel repository GitHub eShopOnContainers .

Questa guida fornisce linee guida fondamentali per lo sviluppo e l'architettura a livello di ambiente di sviluppo, con particolare attenzione a due tecnologie: Docker e .NET. L'intenzione è quella di leggere questa guida quando si pensa alla progettazione dell'applicazione senza concentrarsi sull'infrastruttura (cloud o locale) dell'ambiente di produzione. Le decisioni sull'infrastruttura verranno prese in un secondo momento quando si creano applicazioni pronte per la produzione. Pertanto, questa guida è intesa per essere neutrale rispetto all'infrastruttura e più incentrata sull'ambiente di sviluppo.

Dopo aver studiato questa guida, il passaggio successivo consiste nell'apprendere i microservizi pronti per la produzione in Microsoft Azure.

Versione

Questa guida è stata rivista per coprire la versione di .NET 7 insieme a molti aggiornamenti aggiuntivi correlati alla stessa "onda" di tecnologie (ovvero Azure e tecnologie di terze parti aggiuntive) che coincidono nel tempo con la versione .NET 7.

Annotazioni

Viene creata una nuova versione di questo eBook per .NET 8 e il nuovo esempio di eShop .

Cosa non viene illustrato in questa guida

Questa guida non è incentrata sul ciclo di vita dell'applicazione, su DevOps, sulle pipeline CI/CD o sul lavoro del team. La guida complementare Ciclo di vita delle applicazioni Docker in contenitori con piattaforma e strumenti Microsoft è incentrata su tale argomento. La guida corrente non fornisce anche informazioni dettagliate sull'implementazione dell'infrastruttura di Azure, ad esempio informazioni su agenti di orchestrazione specifici.

Risorse aggiuntive

Chi deve usare questa guida

Questa guida è stata scritta per sviluppatori e architetti di soluzioni che non hanno esperienza con lo sviluppo di applicazioni basate su Docker e per l'architettura basata su microservizi. Questa guida è utile per imparare a progettare, progettare e implementare applicazioni proof-of-concept con tecnologie di sviluppo Microsoft (con particolare attenzione a .NET) e con i contenitori Docker.

Questa guida è utile anche se si è un decision maker tecnico, ad esempio un architetto aziendale, che vuole una panoramica dell'architettura e della tecnologia prima di decidere quale approccio selezionare per le applicazioni distribuite nuove e moderne.

Come usare questa guida

La prima parte di questa guida presenta i contenitori Docker, illustra come scegliere tra .NET 7 e .NET Framework come framework di sviluppo e offre una panoramica dei microservizi. Questo contenuto è destinato agli architetti e ai decision maker tecnici che vogliono una panoramica, ma non devono concentrarsi sui dettagli di implementazione del codice.

La seconda parte della guida inizia con la sezione Processo di sviluppo per le applicazioni basate su Docker . Si concentra sui modelli di sviluppo e microservizi per l'implementazione di applicazioni tramite .NET e Docker. Questa sezione sarà particolarmente interessante per sviluppatori e architetti che vogliono concentrarsi sul codice e sui modelli e i dettagli di implementazione.

L'applicazione eShopOnContainers è un'app di riferimento open source per .NET e microservizi progettati per essere distribuiti usando contenitori Docker. L'applicazione è costituita da più sottosistemi, tra cui diversi front-end dell'interfaccia utente di e-store (un'app Web MVC, un'applicazione Web SPA e un'app per dispositivi mobili nativa). Include anche i microservizi back-end e i contenitori per tutte le operazioni sul lato server necessarie.

Lo scopo dell'applicazione è presentare modelli architetturali. NON È UN TEMPLATE PRODUCTION-READY per avviare applicazioni reali. Infatti, l'applicazione è in uno stato beta permanente, perché viene usato anche per testare nuove tecnologie potenzialmente interessanti man mano che vengono visualizzate.

Inviare commenti e suggerimenti

Questo libro e gli esempi correlati sono in continua evoluzione, quindi il feedback è accolto. Se hai commenti su come questo libro può essere migliorato e stai leggendo questo libro su <learn.microsoft.com>, usa la sezione Feedback nella parte inferiore della pagina:

sezione dei Commenti e suggerimenti nei piè di pagina di tutti gli articoli della documentazione .NET.

Come evidenziato nell'acquisizione dello schermo precedente, la sezione feedback consente di inviare commenti e suggerimenti per:

  • Questo prodotto: utilizzando il modulo di feedback per i prodotti .NET.
  • Questa pagina: uso di un modello di problema di GitHub con i dettagli della pagina.

Se stai leggendo questo libro come PDF, puoi inviare commenti e suggerimenti creando una nuova segnalazione GitHub su .NET Docs: problema o utilizzando il modello di segnalazione GitHub su eBook di architettura .NET: modello di problema.

Crediti

Coautori:

Cesare de la Torre, Sr. PM, team di prodotto .NET, Microsoft Corp.

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

Mike Rousos, Principal Software Engineer, devDiv CAT team, Microsoft

Editori:

Mike Pope

Steve Hoag

Partecipanti e revisori:

Jeffrey Richter, Partner Software Eng, team di Azure, Microsoft

Jimmy Bogard, Chief Architect presso Headspring

Udi Dahan, Fondatore e CEO, Particolare Software

Jimmy Nilsson, co-fondatore e CEO di Factor10

Glenn Condron, Sr. Program Manager, ASP.NET team

Mark Fussell, Responsabile Principale della Gestione Progetti, team di Azure Service Fabric, Microsoft

Diego Vega, Responsabile PM, team di Entity Framework, Microsoft

Barry Dorrans, Sr. Security Program Manager

Rowan Miller, Sr. Program Manager, Microsoft

Ankit Asthana, Manager Principale del PM, team .NET, Microsoft

Scott Hunter, Direttore partner di gestione progetto, del team .NET, Microsoft

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

Dylan Reisenberger, Architetto e Responsabile Sviluppo presso Polly

Steve "ardalis" Smith - Architetto del software e formatore - Ardalis.com

Ian Cooper, Coding Architect presso Brighter

Unai Zorrilla, Architetto e Responsabile Sviluppo presso Plain Concepts

Eduard Tomas, Responsabile Sviluppo presso Plain Concepts

Ramon Tomas, Sviluppatore in Plain Concepts

David Sanz, Sviluppatore presso Plain Concepts

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

Sumit Ghosh, Principal Consultant presso Neudesic

PUBBLICATO DA

Team dei prodotti .NET e Visual Studio della Divisione Sviluppatori Microsoft

Divisione di Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Copyright © 2023 di Microsoft Corporation

Tutti i diritti riservati. Nessuna parte del contenuto di questo libro può essere riprodotta o trasmessa in alcun modo o senza l'autorizzazione scritta dell'editore.

Questo libro viene fornito "as-is" ed esprime le opinioni dell'autore. I punti di vista, le opinioni e le informazioni espresse in questo libro, inclusi URL e altri riferimenti a siti web, possono cambiare senza alcun preavviso.

Alcuni esempi illustrati in questo documento sono forniti solo per l'illustrazione e sono fittizi. Non è prevista né deve essere dedotta alcuna associazione o connessione reale.

Microsoft e i marchi elencati in https://www.microsoft.com sulla pagina web "Marchi" sono marchi del gruppo di società Microsoft.

Mac e macOS sono marchi di Apple Inc.

Docker logo balena è un marchio registrato di Docker, Inc. Utilizzato su autorizzazione.

Tutti gli altri marchi e logo sono proprietà dei rispettivi proprietari.