Valutare un'app Web con Migration Assistant del servizio app di Azure

Completato

In questa unità si esamineranno le potenziali problematiche da affrontare durante la migrazione di applicazioni Web ospitate in locale nel proprio server. Verrà illustrato contesto per i tipi di dipendenze delle applicazioni Web dalle funzionalità di Internet Information Services (IIS) e al motivo per cui queste dipendenze possono rappresentare un problema. Queste importanti informazioni di base offrono il contesto per comprendere meglio la necessità di una valutazione.

Perché spostare un'applicazione Web nel servizio app di Azure?

Il servizio app di Azure è una piattaforma completamente gestita per le app Web. Può essere usato per eseguire e dimensionare le app Web con una configurazione minima. Microsoft gestisce l'infrastruttura, gli aggiornamenti del sistema operativo, il bilanciamento del carico e la logica di scalabilità verticale in base alle esigenze.

È possibile configurare le impostazioni in un'interfaccia utente semplificata e analizzare le prestazioni dell'applicazione mentre è in esecuzione, ma c'è poco altro da fare. Pertanto il servizio app di Azure è un'alternativa interessante all'esecuzione delle applicazioni nel proprio ambiente server. Nell'ambiente server è necessario gestire i costi hardware, le configurazioni, l'installazione, aggiornamento e configurazione del sistema operativo, l'installazione, aggiornamento e configurazione del software server e altro ancora.

Varie funzionalità fanno del servizio app di Azure un'opzione interessante.

La funzionalità di scalabilità automatica consente a un amministratore di impostare il numero massimo di istanze al quale l'app Web può ridimensionare, nonché le soglie di traffico. Quindi la logica decisionale del servizio app decide se incrementare o diminuire il numero di istanze.

Gli slot di distribuzione consentono ai team responsabili delle operazioni o DevOps di distribuire una nuova versione dell'applicazione Web in un ambiente di testing live o di gestione temporanea, in cui è possibile eseguire test di integrazione manuali o automatici. Quando la nuova versione supera tutti i test, è possibile scambiare gli slot per spostare l'app dall'ambiente di gestione temporanea a quello di produzione. Se si verificano problemi dopo la distribuzione, è possibile scambiare gli slot di nuovo per rimettere in produzione la versione precedente.

La diagnostica del servizio app offre un'interfaccia interattiva in cui il responsabile della risoluzione dei problemi può rispondere ad alcune domande. L'interfaccia genera un report di diagnostica completo, specifico per il tipo di problema riscontrato dall'applicazione. Inoltre gli strumenti come il controllo integrità, Application Insights e lo strumento di navigazione (diagramma delle dipendenze interattivo) consentono di capire dove si verificano i problemi.

Che cos'è lo strumento Migration Assistant del servizio app di Azure?

Azure App Service Migration Assistant fa parte di una famiglia più ampia di applicazioni che agevolano la transizione al cloud delle organizzazioni. Lo strumento Migration Assistant del servizio app di Azure offre un'esperienza utente simile a una procedura guidata, che esegue due attività:

  1. Esegue una valutazione di un'app Web specifica installata in Windows Server. Valuta le dipendenze dell'app Web, per determinare se è possibile eseguire la migrazione al servizio app di Azure senza apportare modifiche all'app Web.
  2. Se dalla valutazione risulta che è possibile eseguire la migrazione dell'app Web, Migration Assistant esegue la migrazione. È necessario consentire a Migration Assistant l'accesso all'account Azure, selezionare il gruppo di risorse da usare, selezionare un nome per l'app Web e specificare altre informazioni di questo tipo.

In alternativa, lo strumento Migration Assistant del servizio app di Azure genera un modello Azure Resource Manager che è possibile usare per eseguire la migrazione dell'applicazione Web in modo più automatico e ripetibile.

Perché eseguire una valutazione?

In alcune organizzazioni le applicazioni Web sono state create presupponendo che avrebbero sempre avuto accesso alle funzionalità di basso livello di IIS. Ad esempio, alcuni sviluppatori basavano funzionalità come il monitoraggio, la registrazione e la protezione su filtri ISAPI. I filtri offrivano l'accesso alle richieste in ingresso prima che venissero passate all'applicazione ASP.NET. Offrivano anche l'accesso alle risposte in uscita generate dall'applicazione ASP.NET.

Tuttavia, uno dei vantaggi derivanti dall'uso di un'offerta di piattaforma distribuita come servizio (PaaS), come il servizio app di Azure, è il fatto che il provider di servizi cloud (in questo caso Microsoft) gestisce l'hardware e il software al posto dell'utente. Da ciò deriva un risparmio in termini di tempo e denaro. Questo significa tuttavia che le applicazioni avranno accesso a meno funzionalità di livello inferiore di Windows Server e IIS. Se le applicazioni dipendono da queste funzionalità di livello inferiore, può essere necessario apportare alcune modifiche per usare il servizio app di Azure.

Quali tipi di problemi vengono verificati tramite la valutazione?

Migration Assistant cerca funzionalità specifiche di un'applicazione Web, per garantire che siano supportate dal servizio app di Azure o che Migration Assistant sia in grado di eseguirne automaticamente la migrazione. La tabella seguente offre informazioni dettagliate sui controlli eseguiti da Migration Assistant.

Verifica preparazione Spiegazione
Binding di porte Poiché il servizio app di Azure consente solo il traffico Web standard, questo controllo di idoneità garantisce che l'app Web sia in ascolto solo sulle porte 80 (per il traffico HTTP) e 443 (per il traffico HTTPS).
Protocolli Poiché il servizio app di Azure funziona solo con i protocolli HTTP e HTTPS, questo controllo di idoneità garantisce che l'app Web gestisca solo protocolli basati su HTTP. Se l'app Web dipende da Windows Communication Foundation, ad esempio, non supererà questo controllo di idoneità.
Certificati Il Servizio app di Azure è in grado di gestire i certificati di sicurezza, ma questo controllo di idoneità segnala che Migration Assistant non eseguirà automaticamente la migrazione del certificato.
Tag di posizione I tag di posizione consentono di gestire la configurazione per tutte le app Web ospitate in un server in un singolo file, anziché usare singoli file web.config per ogni app Web. Le app del servizio app di Azure usano un file IIS applicationhost.config preconfigurato e non supportano la funzionalità dei tag di posizione. Le impostazioni per ogni app Web di cui verrà eseguita la migrazione devono essere spostate in singoli file web.config. Questo controllo di idoneità identifica l'uso dei tag di posizione.
Filtri ISAPI Il servizio app di Azure offre un certo grado di supporto per i filtri ISAPI, ma tale supporto dipende dalla modalità di implementazione del filtro ISAPI. Migration Assistant non esegue la migrazione di un'applicazione che dipende da un filtro ISAPI. Per prima cosa è necessario rimuovere il filtro ISAPI dall'applicazione, quindi eseguire la migrazione e infine aggiungere manualmente il filtro ISAPI nel servizio app di Azure.
Pool di applicazioni Poiché il servizio app di Azure supporta un pool di applicazioni per ogni app, questo controllo di idoneità garantisce che l'app Web sia basata solo su un singolo pool di applicazioni.
Identità del pool di applicazioni Le app del servizio app di Azure sono ospitate in un processo di lavoro IIS eseguito in un account gestito dal sistema associato al pool di applicazioni. Questa è anche l'identità predefinita usata dalle installazioni locali di IIS. Questo controllo di idoneità garantisce che l'app Web sia configurata per l'esecuzione nell'identità predefinita.
Tipo di autenticazione Le app del servizio app di Azure supportano un set di tipi di autenticazione diverso rispetto alle app ospitate in IIS eseguite in locale. Questo controllo di idoneità garantisce che un'app Web sia configurata per l'uso dell'autenticazione anonima. Dopo la migrazione, è possibile configurare manualmente il tipo di autenticazione nel servizio app di Azure.
Impostazioni applicazione Questo controllo di idoneità avvisa se sono presenti impostazioni applicazione personalizzate nel file web.config che devono essere invece spostate in Servizio app di Azure>Configurazione>Impostazioni dell'applicazione.
Stringhe di connessione Questo controllo di idoneità determina se le stringhe di connessione di database archiviate nel file web.config puntano a database locali. In questo caso, Migration Assistant offre la possibilità di configurare connessioni ibride.
Framework Migration Assistant supporta solo ASP.NET e PHP. Se l'app usa un framework diverso, non è possibile eseguire la migrazione automatica.
Errore di configurazione Migration Assistant garantisce che l'istanza IIS locale sia configurata correttamente e non restituisca un errore durante l'analisi. Questo controllo di conformità garantisce che non siano presenti problemi di base con l'app Web prima della migrazione.
Directory virtuali Il servizio app di Azure archivia tutti i file in una struttura di directory fissa. Migration Assistant sposta i file nelle sottodirectory appropriate. Tuttavia, non può eseguire la migrazione di applicazioni con directory virtuali supportate da condivisioni UNC.

Le informazioni di questa tabella sono state riepilogate dal sito wiki di Migration Assistant del servizio app di Azure.

Cosa accade se la valutazione rileva un problema?

Se Migration Assistant del servizio app di Azure rileva problemi durante la valutazione dell'applicazione Web, è possibile:

  • Aggiornare l'applicazione per sostituire le caratteristiche che dipendono dalle funzionalità di estendibilità di livello inferiore di IIS. Questa operazione può essere relativamente semplice, a seconda della funzionalità in questione. È ad esempio possibile sostituire le funzionalità di registrazione personalizzate dipendenti da un filtro ISAPI con Azure Application Insights. Application Insights richiede l'aggiunta di poche righe di codice a un'applicazione e produce numerosi report di utilità pratica.
  • Aggiornare l'applicazione disabilitando temporaneamente la funzionalità che blocca la migrazione. Migration Assistant può fornire informazioni per questa operazione.
  • Distribuire l'applicazione "così come è" in una macchina virtuale di Azure. Anche nel caso in cui non si ottenga alcun vantaggio dall'uso del servizio app di Azure e sia necessario garantire la manutenzione del sistema operativo, non sarà più necessario gestire l'hardware. Si avrà anche un unico punto di gestione per tutti i servizi Web.

Il sito wiki di Migration Assistant del servizio app di Azure include passaggi di correzione potenziali per la maggior parte dei problemi riscontrati durante una valutazione.

Riepilogo

Ecco i concetti più importanti emersi da questa unità:

  • Lo strumento Migration Assistant del servizio app di Azure cerca le incompatibilità tra le app Web locali e ciò che è supportato nel servizio app di Azure. Se si verifica un problema, in genere esiste una procedura per correggere il problema in locale o disattivare la funzionalità che lo causa. Quindi è possibile ritentare l'uso di Migration Assistant.
  • Se non ci sono problemi che impediscono di continuare, Migration Assistant esegue la migrazione dell'app Web nel servizio app di Azure.