Microservizi .NET: Architettura per le applicazioni .NET incluse in contenitori
EDIZIONE v8.0 - Aggiornato ad ASP.NET Core 8.0
Fare riferimento al log delle modifiche per gli aggiornamenti del libro e i contributi della community.
Questa guida offre un'introduzione allo sviluppo di applicazioni basate su microservizi e alla relativa gestione tramite i contenitori. Vengono descritti gli approcci alla progettazione e all'implementazione dell'architettura mediante i contenitori Docker.
Per rendere più semplice iniziare, la guida illustra un'applicazione di riferimento basata su microservizi e inclusa in un contenitore che è possibile esplorare. L'applicazione di riferimento è disponibile nel repository GitHub eShopOnContainers.
Collegamenti all'azione
Questo e-book è disponibile anche in formato PDF (solo in versione inglese) Download
Clonare o eseguire il fork dell'applicazione di riferimento eShopOnContainers su GitHub
Guardare il video introduttivo
Ottenere immediatamente informazioni sull'architettura di microservizi
Introduzione
Sempre più spesso nelle aziende vengono usati i contenitori per realizzare risparmi sui costi, risolvere i problemi di distribuzione e migliorare DevOps e operazioni di produzione. Microsoft ha introdotto innovazioni dei contenitori per Windows e Linux tramite la creazione di prodotti come il servizio Azure Kubernetes e Azure Service Fabric, oltre che attraverso la collaborazione con aziende leader del settore come Docker, Mesosphere e Kubernetes. Questi prodotti offrono soluzioni per i contenitori che consentono alle aziende di creare e distribuire le applicazioni con la velocità e la scalabilità del cloud, indipendentemente dalla piattaforma o dagli strumenti scelti.
Docker sta diventando lo standard di fatto nel settore dei contenitori, supportato dai più significativi fornitori negli ecosistemi Windows e Linux (Microsoft è uno dei principali fornitori cloud che supportano Docker). In futuro, probabilmente Docker sarà presente in qualsiasi data center nel cloud o locale.
Inoltre, l'architettura dei microservizi sta emergendo come un importante approccio alle applicazioni distribuite di importanza strategica. 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 della versione in modo indipendente.
Informazioni sulla guida
Questa guida offre un'introduzione allo sviluppo di applicazioni basate su microservizi e alla relativa gestione tramite i contenitori. Vengono descritti gli approcci alla progettazione e all'implementazione dell'architettura mediante i contenitori Docker. Per rendere più semplice iniziare a usare i contenitori e i microservizi, la guida illustra un'applicazione di riferimento basata su microservizi e inclusa in un contenitore che è possibile esplorare. L'applicazione di esempio è disponibile nel repository GitHub eShopOnContainers.
Questa guida fornisce indicazioni di base per lo sviluppo e l'architettura principalmente a livello di ambiente di sviluppo, con particolare attenzione per due tecnologie: Docker e .NET. La guida dovrebbe essere letta al momento di valutare la progettazione dell'applicazione, senza considerare l'infrastruttura (cloud o locale) dell'ambiente di produzione. Sarà possibile prendere le decisioni relative all'infrastruttura in un secondo momento, durante la creazione delle applicazioni di produzione. Pertanto, questa guida è pensata per essere indipendente dall'infrastruttura e maggiormente incentrata sull'ambiente di sviluppo.
Dopo aver consultato questa guida, il passaggio successivo sarà acquisire informazioni sui microservizi disponibili per la produzione in Microsoft Azure.
Versione
Questa guida è stata rivista per includere la versione .NET 8 e numerosi altri aggiornamenti correlati alla stessa "generazione" di tecnologie (ovvero Azure e tecnologie aggiuntive di terze parti) coincidenti nel tempo con la versione .NET 8. Per tale motivo anche la versione stampata è stata aggiornata alla versione 8.0.
Argomenti non trattati dalla guida
Questa guida non tratta gli argomenti relativi a ciclo di vita delle applicazioni, DevOps, pipeline CI/CD o lavoro in team. La guida complementare Ciclo di vita delle applicazioni Docker incluse in contenitori con la piattaforma e gli strumenti Microsoft è dedicata a tali argomenti. La presente guida inoltre non contiene i dettagli relativi all'implementazione nell'infrastruttura Azure, ad esempio le informazioni sugli specifici agenti di orchestrazione.
Risorse aggiuntive
- Ciclo di vita delle applicazioni Docker in contenitori con piattaforma e strumenti Microsoft (e-book scaricabile)
https://aka.ms/dockerlifecycleebook
Destinatari della guida
Questa guida è stata scritta per gli sviluppatori e gli architetti di soluzioni che non hanno familiarità con lo sviluppo di applicazioni basate su Docker e l'architettura basata su microservizi. La guida è destinata ai professionisti che vogliono sapere come progettare e implementare applicazioni di prova con le tecnologie di sviluppo Microsoft (con particolare attenzione per .NET) e i contenitori Docker.
Questa guida è inoltre utile per i responsabili decisionali tecnici, ad esempio gli Enterprise Architect, che hanno bisogno di una panoramica dell'architettura e della tecnologia prima di decidere quale approccio scegliere per le applicazioni distribuite nuove e moderne.
Come utilizzare questa guida
Nella prima parte della guida vengono presentati i contenitori Docker, viene illustrato come scegliere tra .NET 8 e .NET Framework come framework di sviluppo e viene fornita una panoramica dei microservizi. Questo contenuto è destinato ai progettisti e ai responsabili decisionali tecnici che vogliono una panoramica generale, senza informazioni dettagliate relative all'implementazione del codice.
La seconda parte della guida inizia con la sezione Processo di sviluppo per le applicazioni basate su Docker. Si concentra sullo sviluppo e sui modelli dei microservizi per l'implementazione di applicazioni tramite .NET e Docker. Questa sezione sarà di particolare interesse per gli sviluppatori e i progettisti che vogliono concentrarsi sul codice e sui dettagli relativi a modelli e implementazione.
Applicazione di riferimento correlata basata su microservizi e contenitori: eShopOnContainers
eShopOnContainers è un'applicazione open source di riferimento per .NET e i microservizi, progettata per la distribuzione tramite contenitori Docker. L'applicazione è costituita da più sottosistemi, inclusi diversi front-end con interfaccia utente per negozi online (un'app Web MVC, un'applicazione Web a pagina singola e un'app per dispositivi mobili nativa). Include inoltre i microservizi e i contenitori back-end per tutte le operazioni lato server necessarie.
Lo scopo dell'applicazione consiste nel presentare i modelli di architettura. NON È UN MODELLO DA USARE IN PRODUZIONE per avviare applicazioni reali. Di fatto, l'applicazione è in uno stato beta permanente, perché viene usata anche per testare le nuove tecnologie potenzialmente interessanti quando diventano disponibili.
Invia commenti e suggerimenti
Il libro e gli esempi correlati sono in continua evoluzione, pertanto il feedback degli utenti è il benvenuto. Se si hanno commenti su come migliorare questo libro e lo si sta leggendo su <learn.microsoft.com>, usare la sezione Invia commenti e suggerimenti nella parte inferiore della pagina:
Come evidenziato nello screenshot precedente, la sezione Invia commenti e suggerimenti consente di inviare commenti e suggerimenti per:
- Questo prodotto: usando il modulo di feedback del prodotto .NET.
- Questa pagina: usando un modello di problema GitHub con i dettagli della pagina.
Se si legge questo libro in formato PDF, è possibile inviare feedback creando un nuovo problema GitHub della documentazione di .NET o usando il modello di problema GitHub per gli e-book sull'architettura .NET.
Crediti
Coautori:
Cesar de la Torre, Senior PM, team del prodotto .NET, Microsoft Corp.
Bill Wagner, Senior Content Developer, C+E, Microsoft Corp.
Mike Rousos, Principal Software Engineer, team DevDiv CAT, Microsoft
Editor:
Mike Pope
Steve Hoag
Collaboratori e revisori:
Jeffrey Richter, Partner Software Eng, team di Azure, Microsoft
Jimmy Bogard, Chief Architect di Headspring
Udi Dahan, fondatore e CEO di Particular Software
Jimmy Nilsson, cofondatore e CEO di Factor10
Glenn Condron, Senior Program Manager, team di ASP.NET
Mark Fussell, Principal PM Lead, team di Azure Service Fabric, Microsoft
Diego Vega, PM Lead, team di Entity Framework, Microsoft
Barry Dorrans, Senior Security Program Manager
Rowan Miller, Senior Program Manager, Microsoft
Ankit Asthana, Principal PM Manager, team di .NET, Microsoft
Scott Hunter, Partner Director PM, team di .NET, Microsoft
Nish Anil, Senior Program Manager, team di .NET, Microsoft
Dylan Reisenberger, Architect and Dev Lead di Polly
Steve "ardalis" Smith - Software Architect e Trainer - Ardalis.com
Ian Cooper, Coding Architect di Brighter
Unai Zorrilla, Architect and Dev Lead di Plain Concepts
Eduard Tomas, Dev Lead di Plain Concepts
Ramon Tomas, sviluppatore di Plain Concepts
David Sanz, sviluppatore di Plain Concepts
Javier Valero, Chief Operating Officer di Grupo Solutio
Pierre Millet, Senior Consultant, Microsoft
Michael Friis, Product Manager, Docker Inc
Charles Lowell, Software Engineer, team VS CAT, Microsoft
Miguel Veloso, Software Development Engineer presso Plain Concepts
Sumit Ghosh, Principal Consultant presso Neudesic
Copyright
PUBBLICATO DA
Microsoft Developer Division, team dei prodotti .NET e Visual Studio
Una divisione di Microsoft Corporation
One Microsoft Way
Redmond, Washington, 98052-6399
Copyright © 2023 Microsoft Corporation
Tutti i diritti sono riservati. Nessuna parte del contenuto di questo libro può essere riprodotta o trasmessa in qualsiasi forma o con qualsiasi mezzo senza il permesso scritto dell'editore.
Questo libro viene fornito "così com'è" ed esprime i punti di vista e le opinioni dell'autore. I punti di vista, le opinioni e le informazioni espresse nel presente libro, inclusi URL e altri riferimenti a siti Web Internet, sono soggetti a modifiche senza preavviso.
Alcuni esempi forniti nel presente documento hanno solo scopo illustrativo e sono fittizi. Non è intesa né dovrà intendersi alcuna connessione.
Microsoft e i marchi elencati in https://www.microsoft.com nella pagina Web "Marchi" sono marchi del gruppo di società Microsoft.
Mac e macOS sono marchi registrati di Apple Inc.
Il logo Docker con la balena è un marchio registrato di Docker, Inc. Usato su autorizzazione.
Tutti gli altri marchi e log citati nel presente documento appartengono ai rispettivi proprietari.