Effettuare il refactoring di un'applicazione locale in un'app Web servizio app e in un'istanza gestita di SQL

Questo articolo illustra come la società fittizia Contoso effettua il refactoring di un'applicazione Windows .NET a due livelli in esecuzione su macchine virtuali VMware come parte di una migrazione in Azure. Il team di Contoso esegue la migrazione della macchina virtuale front-end dell'applicazione a un'app Web di Servizio app di Azure. L'articolo mostra anche come Contoso esegue la migrazione del database dell'applicazione in un'istanza gestita di SQL di Azure.

L'applicazione SmartHotel360 usata in questo esempio viene fornita come software open source. Se si intende usarla per scopi di test, è possibile scaricarla da GitHub.

Driver di business

Il team responsabile IT di Contoso ha lavorato a stretto contatto con i partner aziendali per comprendere cosa vogliono ottenere con questa migrazione:

  • Mirare alla crescita aziendale. Contoso sta crescendo e c'è pressione sui sistemi e sull'infrastruttura locali dell'azienda.
  • Aumentare l'efficienza. Contoso ha l'esigenza di rimuovere le procedure inutili e semplificare i processi per sviluppatori e utenti. L'azienda richiede un settore IT rapido ed efficiente in termini di tempo e costi, in modo da soddisfare più velocemente le esigenze dei clienti.
  • Aumentare l'agilità. il settore IT di Contoso deve essere più reattivo alle esigenze dell'azienda. Per avere successo in un'economia globale, l'azienda deve essere in grado di reagire più velocemente rispetto ai cambiamenti nel marketplace. Il tempo di reazione non deve entrare nel modo o diventare un business blocker.
  • Scalabilità. Man mano che l'azienda cresce, Contoso IT deve fornire sistemi che possono crescere allo stesso ritmo.
  • Ridurre i costi. Contoso desidera ridurre al minimo i costi di licenza.

Obiettivi della migrazione

Per determinare il metodo di migrazione migliore, il team cloud contoso ha creato questi obiettivi:

Dominio dei requisiti Dettagli
Applicazione L'applicazione in Azure manterrà la stessa importanza critica nel cloud dell'attuale versione in locale.

L'applicazione deve avere le stesse funzionalità di prestazioni attualmente disponibili in VMware.

Il team non vuole investire nell'applicazione. Per il momento, gli amministratori spostano l'applicazione in modo sicuro nel cloud.

Il team intende interrompere il supporto per Windows Server 2008 R2, in cui viene attualmente eseguita l'applicazione.

Il team vuole anche passare da SQL Server 2008 R2 a un database PaaS (Platform as a Service) moderno, riducendo al minimo la necessità di gestione.

Contoso vuole sfruttare i vantaggi dell'investimento in SQL Server licenze e Software Assurance, quando possibile.

Contoso vuole attenuare il singolo punto di errore nel livello Web.

L'applicazione è costituita da un'applicazione ASP.NET e da un servizio Windows Communication Foundation (WCF) in esecuzione in una singola macchina virtuale. Contoso vuole distribuire questi componenti tra due app Web usando servizio app.
Azure Contoso vuole spostare l'applicazione in Azure, ma non eseguirla nelle macchine virtuali. Contoso vuole usare i servizi PaaS di Azure per i livelli Web e dati.
DevOps Contoso vuole passare a un modello DevOps che usa Azure DevOps per le compilazioni e le pipeline di versione.

Progettazione della soluzione

Dopo aver determinato obiettivi e requisiti, Contoso progetta ed esamina una soluzione di distribuzione. Il team identifica anche un processo di migrazione, inclusi i servizi di Azure che useranno per la migrazione.

Applicazione corrente

  • L'applicazione locale SmartHotel360 è a livelli tra due macchine virtuali, WEBVM e SQLVM.
  • Le macchine virtuali si trovano nell'host VMware ESXi 6.5 contosohost1.contoso.com.
  • L'ambiente VMware viene gestito da vCenter Server 6.5 (vcenter.contoso.com), che viene eseguito in una macchina virtuale.
  • Contoso ha un data center locale (contoso-datacenter) con un controller di dominio locale (contosodc1).
  • Le macchine virtuali locali nel data center Contoso verranno rimosse al termine della migrazione.

Soluzione proposta

  • Per il livello Web dell'applicazione, Contoso userà servizio app. Contoso può usare questo servizio PaaS per distribuire l'applicazione con poche modifiche di configurazione. Contoso userà Visual Studio per apportare le modifiche e distribuirà due app Web, una per il sito Web e una per il servizio WCF.
  • Per soddisfare i requisiti di una pipeline di DevOps, Contoso userà Azure DevOps per la gestione del codice sorgente con i repository GIT. Useranno compilazioni e versioni automatizzate per compilare il codice e distribuirlo in servizio app.

Considerazioni sul database

Durante il processo di progettazione della soluzione, Contoso confronta le funzionalità di Azure SQL Database con quelle di Istanza gestita di SQL. Il team decide di usare Istanza gestita di SQL, in base a queste considerazioni:

  • Istanza gestita di SQL mira a offrire quasi il 100% di compatibilità con la versione più recente di SQL Server locale. Microsoft consiglia di Istanza gestita di SQL per le organizzazioni che eseguono SQL Server macchine virtuali locali o di infrastruttura distribuita come servizio (IaaS) e che vogliono eseguire la migrazione delle applicazioni a un servizio completamente gestito con modifiche di progettazione minime.
  • Contoso prevede di eseguire la migrazione di un numero elevato di applicazioni dall'ambiente locale alle macchine virtuali IaaS. Molte di queste macchine virtuali provengono da fornitori di software indipendenti. Il team di Contoso si rende conto che l'uso di Istanza gestita di SQL può contribuire a garantire la compatibilità del database per queste applicazioni. Userà quindi Istanza gestita di SQL anziché il database SQL, che potrebbe non essere supportato.
  • Contoso può eseguire una migrazione in modalità lift-and-shift per Istanza gestita di SQL usando il Servizio Migrazione del database di Azure completamente automatizzato. Contoso può anche riutilizzare questo servizio per le migrazioni future del database.
  • Istanza gestita di SQL supporta SQL Server Agent, un componente essenziale per l'applicazione SmartHotel360. Contoso ha bisogno di questa compatibilità In caso contrario, dovranno riprogettare i piani di manutenzione richiesti dall'applicazione.
  • Con Software Assurance, Contoso può scambiare le licenze correnti per tariffe scontate in un'istanza gestita di SQL usando il Vantaggio Azure Hybrid per SQL Server. Ciò consente a Contoso di risparmiare fino al 30% usando Istanza gestita di SQL.
  • L'istanza gestita di SQL è completamente contenuta nella rete virtuale, quindi offre un isolamento e una sicurezza migliori per i dati di Contoso. Contoso può quindi usufruire dei vantaggi del cloud pubblico, mantenendo al contempo l'ambiente isolato dalla rete Internet pubblica.
  • Istanza gestita di SQL supporta molte funzionalità di sicurezza, tra cui Always Encrypted, maschera dati dinamica, sicurezza Row-Level e rilevamento delle minacce.

Revisione della soluzione

Il team contoso valuta la progettazione proposta compilando un elenco di vantaggi e svantaggi:

Considerazioni Dettagli
Vantaggi Il codice dell'applicazione SmartHotel360 non richiede modifiche per la migrazione in Azure.

Contoso può sfruttare i vantaggi dell'investimento in Software Assurance usando il Vantaggio Azure Hybrid sia per SQL Server che per Windows Server.

Dopo la migrazione, Contoso non dovrà supportare Windows Server 2008 R2. Per altre informazioni, vedere Criteri relativi al ciclo di vita Microsoft.

Contoso può configurare il livello Web dell'applicazione con più istanze, in modo che non sia più un singolo punto di guasto.

Il database non dipenderà più da SQL Server 2008 R2, non più recente.

L'istanza gestita di SQL supporta i requisiti tecnici e gli obiettivi di Contoso.

L'istanza gestita di SQL fornirà la compatibilità del 100% con la distribuzione corrente mentre si allontana da SQL Server 2008 R2.

Contoso può riutilizzare Servizio Migrazione del database per le migrazioni future.

Nell'istanza gestita di SQL è integrata la funzionalità per la tolleranza di errore, pertanto Contoso non dovrà configurarla. Questa tolleranza di errore garantisce che il livello dati non sia più un singolo punto di failover.
Svantaggi servizio app supporta una sola distribuzione di applicazioni per ogni app Web. È quindi necessario effettuare il provisioning di due app Web, una per il sito Web e una per il servizio WCF.

Per il livello dati, Istanza gestita di SQL potrebbe non essere la soluzione ideale se Contoso intende personalizzare il sistema operativo o il server di database oppure se vuole eseguire applicazioni di terze parti con SQL Server. L'esecuzione di SQL Server in una VM IaaS potrebbe garantire questa flessibilità.

Architettura proposta

Diagramma che mostra l'architettura proposta.

Processo di migrazione

  1. Contoso effettua il provisioning di un'istanza gestita di Azure SQL e quindi esegue la migrazione del database SmartHotel360 usando Servizio Migrazione del database.
  2. Contoso effettua il provisioning e configura le app Web e quindi distribuisce SmartHotel360 in tali app.

Diagramma che mostra il processo di migrazione.

Servizi di Azure

Servizio Descrizione Costi
servizio app Migration Assistant Strumento gratuito e facile da usare che consente di eseguire la migrazione di applicazioni Web .NET dall'ambiente locale al cloud con modifiche minime o senza modifiche al codice. Questo strumento è scaricabile gratuitamente.
Servizio Migrazione del database di Azure Un servizio di Azure che è possibile usare per eseguire la migrazione da più origini di database a piattaforme dati di Azure con tempi di inattività minimi. Vedere Servizio Migrazione del database di Azure prezzi e aree supportate.
Istanza gestita di SQL Servizio di database gestito che rappresenta un'istanza di SQL Server completamente gestita in Azure. Usa lo stesso codice della versione più recente del motore di database di SQL Server e include le funzionalità, i miglioramenti delle prestazioni e le patch di sicurezza più recenti. L'uso di un'istanza gestita di SQL in Azure comporta addebiti in base alla capacità. Vedere altre informazioni sui prezzi di Istanza gestita di SQL.
Servizio app di Azure Un servizio che consente di creare potenti applicazioni cloud che usano una piattaforma completamente gestita. I prezzi si basano su dimensioni, posizione e durata dell'utilizzo. Altre informazioni sui prezzi di servizio app.
Azure Pipelines Servizio che fornisce una pipeline di integrazione continua e recapito continuo (CI/CD) per lo sviluppo di applicazioni. La pipeline inizia con un repository Git per la gestione del codice dell'applicazione, un sistema di compilazione per la produzione di pacchetti e altri artefatti di compilazione e un sistema di gestione delle versioni per la distribuzione delle modifiche negli ambienti di sviluppo, test e produzione. Informazioni sui prezzi di Azure Pipelines.

Prerequisiti

Per implementare questo scenario, Contoso deve soddisfare i prerequisiti seguenti:

Requisito Dettagli
Sottoscrizione di Azure Contoso ha creato le sottoscrizioni in un articolo precedente di questa serie. Se non si ha una sottoscrizione di Azure, creare un account gratuito.

Se si crea un account gratuito, si è l'amministratore della sottoscrizione e si possono eseguire tutte le azioni. Se si usa una sottoscrizione esistente e non si è l'amministratore, l'amministratore deve assegnare all'utente le autorizzazioni proprietario o collaboratore.
Infrastruttura di Azure Contoso configura un'infrastruttura di Azure come descritto in Infrastruttura di Azure per la migrazione.

Passaggi dello scenario

Ecco in che modo Contoso eseguirà la migrazione:

  • Passaggio 1: Valutare le app Web ed eseguirne la migrazione. Contoso usa servizio app Migration Assistant per eseguire controlli di compatibilità di pre-migrazione ed eseguire la migrazione delle app Web a servizio app.
  • Passaggio 2: Configurare un'istanza gestita di SQL. Contoso deve disporre di un'istanza gestita esistente in cui eseguire la migrazione del database di SQL Server locale.
  • Passaggio 3: Eseguire la migrazione usando Servizio Migrazione del database. Contoso esegue la migrazione del database dell'applicazione usando Servizio Migrazione del database.
  • Passaggio 4: Configurare Azure DevOps. Contoso crea un nuovo progetto di Azure DevOps e importa il repository GIT.
  • Passaggio 5: Configurare le stringhe di connessione. Contoso configura le stringhe di connessione in modo che l'app Web di livello Web, l'app Web del servizio WCF e l'istanza gestita di SQL siano in grado di comunicare.
  • Passaggio 6: Configurare pipeline di compilazione e di versione in Azure DevOps. Nel passaggio finale Contoso configura pipeline di compilazione e versione in Azure DevOps per creare l'applicazione. Il team distribuisce quindi le pipeline in due app Web separate.

Passaggio 1: Valutare le app Web ed eseguirne la migrazione

Gli amministratori contoso valutano ed eseguono la migrazione delle app Web usando servizio app Migration Assistant. Usano il percorso di apprendimento Migrate ASP.NET Apps to Azure (Eseguire la migrazione delle app ASP.NET ad Azure ) come guida durante il processo. Gli amministratori eseguono queste azioni:

  • Usano lo strumento di valutazione della migrazione servizio app per valutare eventuali dipendenze tra le app Web e per determinare se sono presenti incompatibilità tra le app Web locali e gli elementi supportati da servizio app.

  • Scarica servizio app Migration Assistant e accedi al proprio account Azure.

  • Scelgono una sottoscrizione, un gruppo di risorse e il nome di dominio del sito Web.

Passaggio 2: Configurare un'istanza gestita di SQL

Per configurare un'istanza gestita di Azure SQL, Contoso necessita di una subnet che soddisfi questi requisiti:

  • La subnet deve essere dedicata. Deve essere vuota. Non può contenere altri servizi cloud. Non può essere una subnet del gateway.
  • Dopo aver creato l'istanza gestita, Contoso non deve aggiungere risorse alla subnet.
  • Alla subnet non deve essere associato alcun gruppo di sicurezza di rete.
  • La subnet deve avere una tabella di route definita dall'utente. L'unica route assegnata deve essere con hop successivo su Internet 0.0.0.0/0.
  • Se viene specificato un DNS personalizzato facoltativo per la rete virtuale, è necessario aggiungere all'elenco l'indirizzo IP virtuale 168.63.129.16 per i resolver ricorsivi in Azure. Per altre informazioni, vedere come configurare un DNS personalizzato per un'istanza gestita di SQL di Azure.
  • Alla subnet non deve essere associato alcun endpoint di servizio (archiviazione o SQL). Gli endpoint di servizio devono essere disabilitati nella rete virtuale.
  • La subnet deve avere almeno 16 indirizzi IP. Per altre informazioni, vedere come dimensionare la subnet dell'istanza gestita.
  • Nell'ambiente ibrido di Contoso sono necessarie impostazioni DNS personalizzate. Contoso configura le impostazioni DNS per l'uso di uno o più server DNS di Azure aziendali. Altre informazioni sulla personalizzazione del DNS.

Configurare una rete virtuale per l'istanza gestita

Gli amministratori di Contoso configurano la rete virtuale come segue:

  1. Creano una rete virtuale (VNET-SQLMI-EUS2) nell'area primaria (Stati Uniti orientali 2). Creano la rete virtuale nel gruppo di risorse ContosoNetworkingRG.

  2. Assegnano uno spazio di indirizzi 10.235.0.0/24 Assicurarsi che l'intervallo non si sovrapponga ad altre reti dell'organizzazione.

  3. Aggiunge due subnet alla rete:

    • SQLMI-DB-EUS2 (10.235.0.0/25).

    • SQLMI-SAW-EUS2 (10.235.0.128/29). Questa subnet viene usata per collegare una directory all'istanza gestita.

      Screenshot che mostra i valori per la creazione dell'istanza gestita.

  4. Dopo che la rete virtuale e le subnet sono state distribuite, eseguono il peering delle reti come indicato di seguito:

    • Eseguire il peering di VNET-SQLMI-EUS2 con VNET-HUB-EUS2 (rete virtuale hub per Stati Uniti orientali 2).

    • Eseguire il peering di VNET-SQLMI-EUS2 con VNET-PROD-EUS2 (rete di produzione).

      Screenshot che mostra le reti con peering.

  5. Configurano le impostazioni DNS personalizzate. Le impostazioni DNS fanno prima riferimento ai controller di dominio di Azure di Contoso. Il DNS di Azure è secondario. I controller di dominio di Azure di Contoso si trovano:

    • Si trovano nella subnet PROD-DC-EUS2 della rete di produzione (VNET-PROD-EUS2) nell'area Stati Uniti orientali 2.

    • Indirizzo CONTOSODC3: 10.245.42.4

    • Indirizzo CONTOSODC4: 10.245.42.5

    • Risoluzione DNS di Azure: 168.63.129.16

    Screenshot che mostra i server DNS di rete.

Ulteriore assistenza?

Configurare il routing

L'istanza gestita viene inserita in una rete virtuale privata. Contoso necessita di una tabella di route per consentire alla rete virtuale di comunicare con il servizio di gestione di Azure. Se la rete virtuale non può comunicare con il servizio che la gestisce, diventa inaccessibile.

Contoso considera questi fattori:

  • La tabella di route contiene un set di regole (route) che specifica in che modo i pacchetti inviati dall'istanza gestita devono essere indirizzati nella rete virtuale.
  • La tabella di route viene associata alle subnet in cui sono distribuite le istanze gestite. Ogni pacchetto proveniente da una subnet viene gestito in base alla tabella di route associata.
  • Una subnet può essere associata a una sola tabella di route.
  • Non sono previsti costi aggiuntivi per la creazione di tabelle di route in Azure.

Per configurare il routing, gli amministratori contoso completano i passaggi seguenti:

  1. Creano una tabella di route definita dall'utente nel gruppo di risorse ContosoNetworkingRG :

    Screenshot che mostra la finestra di dialogo Crea tabella di route.

  2. Per rispettare i requisiti di Istanza gestita di SQL, dopo la distribuzione della tabella di route (MIRouteTable), gli amministratori aggiungono una route con un prefisso di indirizzo 0.0.0.0/0. Impostano il valore tipo hop successivo su Internet:

    Screenshot che mostra la finestra di dialogo Aggiungi route.

  3. Associano la tabella di route alla subnet SQLMI-DB-EUS2 nella rete VNET-SQLMI-EUS2:

    Screenshot che mostra la finestra di dialogo Associa subnet.

Ulteriore assistenza?

Informazioni su come configurare le route per un'istanza gestita.

Creare un'istanza gestita

Successivamente, gli amministratori contoso effettuano il provisioning di un'istanza gestita di SQL completando questi passaggi:

  1. Poiché l'istanza gestita viene usata da un'applicazione aziendale, gli amministratori la distribuiscono nell'area primaria dell'azienda (Stati Uniti orientali 2) Aggiungono l'istanza gestita al gruppo di risorse ContosoRG.

  2. Selezionano un piano tariffario, le dimensioni di calcolo e l'archiviazione per l'istanza. Vedere altre informazioni sui prezzi di Istanza gestita di SQL.

    Screenshot che mostra la finestra di dialogo Istanza gestita di SQL.

    Dopo la distribuzione dell'istanza gestita, nel gruppo di risorse ContosoRG vengono visualizzate due nuove risorse:

    • L'istanza gestita di SQL.

    • Un cluster virtuale, nel caso in cui Contoso abbia più istanze gestite.

      Screenshot che mostra le nuove risorse nel gruppo di risorse ContosoRG.

Ulteriore assistenza?

Informazioni su come effettuare il provisioning di un'istanza gestita.

Passaggio 3: Eseguire la migrazione usando Servizio Migrazione del database

Gli amministratori contoso esegrano l'istanza gestita usando Servizio Migrazione del database. Seguono le istruzioni riportate nell'esercitazione dettagliata sulla migrazione. Possono eseguire migrazioni online, offline e ibride (in anteprima).

Gli amministratori contoso completano i passaggi seguenti:

  • Creano un'istanza di Servizio Migrazione del database con uno SKU Premium connesso alla rete virtuale.
  • Assicurano che Servizio Migrazione del database possa accedere all'istanza di SQL Server remota tramite la rete virtuale. Questo passaggio implica la garanzia che tutte le porte in ingresso siano consentite da Azure a SQL Server a livello di rete virtuale, vpn di rete e computer che ospita SQL Server.
  • Configurano Servizio Migrazione del database:
    • Creare un progetto di migrazione.
    • Aggiungere un'origine (database locale).
    • Selezionare una destinazione.
    • Selezionare i database di cui eseguire la migrazione.
    • Configurare le impostazioni avanzate.
    • Avviare la replica.
    • Risolvere gli eventuali errori.
    • Eseguire il cutover finale.

Passaggio 4: Configurare Azure DevOps

Contoso deve creare l'infrastruttura DevOps e le pipeline per l'applicazione. A tale scopo, gli amministratori di Contoso creano un nuovo progetto DevOps, importano il codice e quindi configurano le pipeline di compilazione e versione.

  1. Nell'account Azure DevOps contoso creano un nuovo progetto , ContosoSmartHotelRefactor, quindi seleziona Git per il controllo della versione.

    Screenshot che mostra la finestra di dialogo nuovo progetto.

  2. Importano il repository GIT che al momento contiene il codice dell'applicazione. Lo scaricano dal repository GitHub pubblico.

    Screenshot che mostra la finestra di dialogo Importa un repository Git.

  3. Connettono Visual Studio al repository e quindi clonano il codice nel computer per sviluppatori usando Team Explorer.

    Screenshot che mostra la finestra di dialogo Connetti a un progetto.

  4. Aprono il file della soluzione per l'applicazione. L'app Web e il servizio WCF hanno progetti distinti nel file.

    Screenshot che mostra i progetti dell'app Web e del servizio WCF in Esplora soluzioni.

Passaggio 5: Configurare le stringhe di connessione

Gli amministratori di Contoso verificano che le app Web e il database siano in grado di comunicare tra loro. A tale scopo, configura le stringhe di connessione nel codice e nelle app Web.

  1. Nell'app Web per il servizio WCF SHWCF-EUS2, in Impostazioni>applicazione, viene aggiunta una nuova stringa di connessione denominata DefaultConnection.

  2. Esegue il pull della stringa di connessione dal database SmartHotel-Registration e quindi lo aggiorna con le credenziali corrette:

    Screenshot che mostra le impostazioni della stringa di connessione.

  3. In Visual Studio gli amministratori aprono il progetto SmartHotel.Registration.wcf dal file della soluzione. Nel progetto aggiornano la connectionStrings sezione del file web.config aggiungendo la stringa di connessione:

    Screenshot che mostra la sezione connectionStrings del file web.config nel progetto SmartHotel.Registration.wcf.

  4. Aggiornano la client sezione del file di web.config per SmartHotel.Registration.Web in modo che punti alla nuova posizione del servizio WCF. Il puntatore è l'URL dell'app Web WCF che ospita l'endpoint del servizio.

    Screenshot che mostra la sezione client del file web.config nel progetto SmartHotel.Registration.wcf.

  5. Gli amministratori eseguono il commit e la sincronizzazione delle modifiche al codice usando Team Explorer in Visual Studio.

Passaggio 6: Configurare pipeline di compilazione e di versione in Azure DevOps

Gli amministratori di Contoso configurano ora Azure DevOps per eseguire il processo di compilazione e versione.

  1. In Azure DevOps selezionano Compila e rilasciano>Nuova pipeline:

    Screenshot che mostra il pulsante Nuova pipeline in Azure DevOps.

  2. Selezionano Azure Repos Git e il repository pertinente:

    Screenshot che mostra il pulsante Azure Repos Git e il repository selezionato.

  3. In Selezionare un modello selezionano il modello di ASP.NET per la compilazione:

    Screenshot che mostra la finestra di dialogo Seleziona un modello con il modello ASP.NET selezionato.

  4. Usano il nome ContosoSmartHotelRefactor-ASP.NET-CI per la compilazione e quindi selezionare Salva & coda, che avvia la prima compilazione.

    Screenshot che mostra il pulsante Salva & coda per la compilazione.

  5. Selezionano il numero di build in modo che possano guardare il processo. Al termine del processo, gli amministratori possono visualizzare il feedback del processo. Selezionano Artefatti per esaminare i risultati della compilazione:

    Screenshot che mostra la pagina di compilazione e il pulsante Artefatti.

    Verrà visualizzata la finestra Esplora artefatti . I risultati della compilazione sono visibili nella cartella di rilascio .

    • I due file ZIP sono i pacchetti che contengono le applicazioni.
    • Questi file .zip vengono usati nella pipeline di versione per la distribuzione in servizio app.

    Screenshot che mostra Lo strumento di esplorazione degli artefatti.

  6. Selezionano Rilascia>nuova pipeline:

    Screenshot che mostra il pulsante Nuova pipeline.

  7. Selezionano il modello di distribuzione per servizio app:

    Screenshot che mostra la finestra di dialogo Seleziona un modello.

  8. Assegnano alla pipeline di versione il nome ContosoSmartHotel360Refactor e, nella casella Nome fase , specificare SHWCF-EUS2 come nome dell'app Web WCF:

    Screenshot che mostra il nome della fase dell'app Web WCF.

  9. Nelle fasi selezionano 1 processo, 1 attività per configurare la distribuzione del servizio WCF:

    Screenshot che mostra l'opzione 1 processo, 1 attività.

  10. Verificano che la sottoscrizione sia selezionata e autorizzata e quindi selezionano il nome del servizio app:

    Screenshot che mostra il nome del servizio app.

  11. Nella pipeline selezionare Artefatti, selezionare Aggiungi un artefatto, selezionare Compila come tipo di origine e quindi compilare usando la pipeline ContosoSmarthotel360Refactor :

    Screenshot che mostra il pulsante Compila nella finestra di dialogo Aggiungi un artefatto.

  12. Per abilitare il trigger di distribuzione continua, gli amministratori selezionano il pulsante lightning bolt sull'artefatto:

    Screenshot che mostra il pulsante del fulmine sull'artefatto.

  13. Impostano il trigger di distribuzione continua su Abilitato:

    Screenshot che mostra il trigger di distribuzione continua impostato su Abilitato.

  14. Gli amministratori tornano al processo della fase 1, 1 attività e seleziona Distribuisci Servizio app di Azure:

    Screenshot che mostra l'opzione Distribuisci Servizio app di Azure.

  15. In Selezionare un file o una cartella espandere la cartella di rilascio , selezionare il fileSmartHotel.Registration.Wcf.zip creato durante la compilazione e quindi selezionare Salva:

    Screenshot che mostra la finestra di dialogo Seleziona un file o una cartella.

  16. SelezionanoFasipipeline> e quindi aggiungi per aggiungere un ambiente per SHWEB-EUS2. Selezionano un'altra distribuzione di Servizio app di Azure.

    Screenshot che mostra il collegamento 1 processo, 1 attività.

  17. Ripetere il processo per pubblicare il file dell'app WebSmartHotel.Registration.Web.zip nell'app Web corretta e quindi selezionare Salva:

    Screenshot che mostra la finestra di dialogo Seleziona un file o una cartella per la selezione del file Web.

    Viene visualizzata la pipeline di versione, come illustrato di seguito:

    Screenshot che mostra la pipeline di versione.

  18. Tornano a Compila, seleziona Trigger e quindi abilita integrazione continua. Questa azione abilita la pipeline in modo che, quando viene eseguito il commit delle modifiche al codice, si verifica una compilazione completa e una versione.

    Screenshot che mostra la casella di controllo Abilita integrazione continua.

  19. Selezionano Salva & coda per eseguire la pipeline completa. Viene attivata una nuova compilazione, che a sua volta crea la prima versione dell'applicazione nel servizio app.

    Screenshot che mostra il pulsante Salva & coda.

  20. Gli amministratori di Contoso possono seguire l'elaborazione della pipeline di compilazione e versione in Azure DevOps. Al termine della compilazione, viene avviata la versione:

    Screenshot che mostra lo stato di avanzamento della compilazione e della versione.

  21. Al termine della pipeline, vengono distribuiti entrambi i siti e l'applicazione è in esecuzione online:

    Screenshot che mostra l'applicazione in esecuzione.

    La migrazione dell'applicazione in Azure è stata completata.

Eseguire la pulizia dopo la migrazione

Dopo la migrazione, il team Contoso completa i passaggi di pulizia seguenti:

  • Rimuove le macchine virtuali locali dall'inventario vCenter.
  • Rimuove le macchine virtuali dai processi di backup locali.
  • Aggiorna la documentazione interna in modo da mostrare i nuovi percorsi per l'applicazione SmartHotel360. La documentazione mostra che il database viene eseguito nell'istanza gestita di SQL e che il front-end viene eseguito in due app Web.
  • Esamina le risorse che interagiscono con le macchine virtuali rimosse e aggiorna la documentazione o le impostazioni pertinenti in base alla nuova configurazione.

Esaminare la distribuzione

Dopo la migrazione delle risorse ad Azure, Contoso deve rendere completamente operativa la nuova infrastruttura e garantire la sicurezza.

Sicurezza

Backup

  • Il team contoso esamina i requisiti di backup per il database in Istanza gestita di SQL. Per altre informazioni, vedere Backup automatici in Azure SQL Database.
  • Acquisisce inoltre informazioni sulla gestione dei processi di backup e ripristino del database SQL. Per altre informazioni, vedere Backup automatici.
  • Valuta l'opportunità di implementare gruppi di failover per abilitare il failover a livello di area per il database. Per altre informazioni, vedere Panoramica dei gruppi di failover automatico.
  • Considerano la distribuzione dell'app Web nell'area principale (Stati Uniti orientali 2) e nell'area secondaria (Stati Uniti centrali) per la resilienza. Il team potrebbe configurare Gestione traffico per assicurare il failover in caso di interruzioni a livello di area.

Licenze e ottimizzazione dei costi

  • Dopo la distribuzione di tutte le risorse, Contoso assegna i tag di Azure che hanno deciso durante la pianificazione dell'infrastruttura.
  • Tutte le licenze sono integrate nel costo dei servizi PaaS utilizzati da Contoso. Questo costo verrà detratto dal Contratto Enterprise.
  • Contoso userà Gestione costi e fatturazione di Azure per assicurarsi che funzionino entro i budget stabiliti dalla leadership IT.

Conclusione

In questo articolo Contoso ha eseguito il refactoring dell'applicazione SmartHotel360 in Azure eseguendo la migrazione della macchina virtuale front-end dell'applicazione a due app Web servizio app. Contoso ha eseguito la migrazione del database dell'applicazione a un'istanza gestita di Azure SQL.