Scegliere l'opzione di hosting di Azure più adatta

In questo articolo sono disponibili considerazioni e confronti tra le diverse opzioni disponibili in Azure per la migrazione delle applicazioni .NET Framework esistenti dall'ambiente locale ad Azure.

Gli aspetti fondamentali da tenere presenti quando si esegue la migrazione ad Azure di applicazioni .NET esistenti sono:

  1. Opzioni di calcolo
  2. Opzioni di database
  3. Considerazioni relative alla rete e alla sicurezza
  4. Considerazioni relative all'autenticazione e all'autorizzazione

Opzioni di calcolo

Quando si esegue la migrazione ad Azure di applicazioni .NET Framework esistenti, sono possibili più scelte. Poiché tuttavia .NET Framework dipende da Windows, le scelte seguenti sono limitate ai servizi di calcolo basati su Windows.

La tabella seguente include diversi confronti e suggerimenti per scegliere il percorso di migrazione di calcolo adatto per l'applicazione .NET esistente.

Macchine virtuali di Azure Servizio app di Azure Contenitori di Windows
Quando utilizzare
  • L'applicazione dipende fortemente dal server e dalle installazioni MSI locali.
  • Si vuole semplificare il più possibile il percorso di migrazione dell'applicazione
L'app non dipende in alcun modo dal server, è solo un'app Web ASP.NET pulita (MVC, WebForm) o un'app a più livelli (API Web, WCF) che accede a un server di database.
  • L'applicazione ha dipendenze dal server originale, ma tali dipendenze possono essere incluse nell'immagine Windows di Docker.
Vantaggi
  • Percorso di migrazione molto semplice
  • Ambiente familiare. L'ambiente di distribuzione è una macchina virtuale, quindi è simile ai server locali.
Manutenzione PaaS continua, massima semplicità di gestione e ridimensionamento delle app in Azure.
  • Pronti per il futuro e per Cloud DevOps con dipendenze incluse nei contenitori dell'app.
  • Non è quasi mai necessario eseguire il refactoring del codice .NET/C#.
Svantaggi Si tratta di IaaS. La manutenzione è costosa. È necessario gestire l'infrastruttura della macchina virtuale per rete, servizio di bilanciamento del carico, scale-out, gestione IIS e così via.
  • Non tutte le app sono supportate
  • Per alcune app potrebbe essere necessario il refactoring e anche riprogettarle leggermente, in modo che supportino il servizio app di Azure.
  • Curva di apprendimento delle competenze di Docker
  • Alcune impostazioni del codice e di configurazione dell'app vengono modificate
Requisiti VM Windows Server con gli stessi requisiti dell'app per l'ambiente locale Requisiti per Servizio app di Azure specificati nei Controlli di conformità.
Come eseguire la migrazione Vedere Eseguire la migrazione a macchine virtuali di Azure Vedere Eseguire la migrazione al servizio app di Azure Seguire le considerazioni, gli scenari e le procedure dettagliate illustrati nell'eBook Modernizzazione delle app .NET con Azure e i contenitori di Windows

Il diagramma di flusso seguente mostra un albero delle decisioni per la pianificazione di una migrazione ad Azure per le applicazioni .NET Framework esistenti. Se fattibile, provare prima l'opzione A, ma l'opzione B è il percorso più semplice da eseguire.

Flowchart showing hosting decision tree

Opzioni di database

Quando si esegue la migrazione di database relazionali ad Azure sono disponibili più opzioni. Per scegliere il percorso di migrazione del database adatto all'applicazione .NET esistente, vedere Eseguire la migrazione del database SQL Server ad Azure.

Considerazioni relative alla rete e alla sicurezza

Quando si distribuiscono le applicazioni in un cloud pubblico come Microsoft Azure, potrebbe essere necessario isolare e proteggere determinate reti creando reti perimetrali, ad esempio una rete perimetrale tra Azure e l'ambiente locale o una rete perimetrale tra Azure e Internet. Le reti perimetrali possono essere implementate con Rete virtuale di Azure.

Le reti virtuali di Azure consentono di:

  • Creare un'infrastruttura ibrida facile da controllare
  • Usare indirizzi IP e server DNS personali
  • Proteggere le connessioni con una VPN IPSec o ExpressRoute
  • Ottenere il controllo granulare del traffico tra subnet
  • Creare topologie di rete sofisticate con appliance virtuali
  • Ottenere un ambiente isolato con sicurezza elevata per le applicazioni

Per iniziare a creare la rete virtuale, vedere la documentazione di Rete virtuale di Azure.

Considerazioni relative all'autenticazione e all'autorizzazione quando si esegue la migrazione ad Azure

Una delle preoccupazioni principali delle organizzazioni che passano al cloud è la sicurezza. La maggior parte delle aziende ha investito una notevole quantità di tempo, denaro e risorse tecniche per progettare e sviluppare un modello di sicurezza ed è importante che siano in grado di sfruttare gli investimenti esistenti, come archivi di identità e soluzioni Single Sign-On.

Molte applicazioni .NET B2E aziendali esistenti in esecuzione in locale usano Active Directory per l'autenticazione e la gestione delle identità. Azure AD Connect consente di integrare le directory locali con Azure Active Directory. Per iniziare, vedere Integrare le directory locali con Azure Active Directory.

Per una maggiore pianificazione relativa ad Azure Active Directory, vedere Requisiti per la soluzione ibrida di gestione delle identità.

Le altre opzioni per il protocollo di autenticazione sono OAuth e OpenID, che sono comuni nelle applicazioni rivolte agli utenti. Quando si usano database di identità autonomi, ad esempio un database SQL di identità ASP.NET di cui viene eseguito il wrapping con IdentityServer4 tramite OAuth, in genere non è necessaria la connettività ai database o alle directory locali.

Passaggi successivi