Riallocare un'applicazione Linux locale in macchine virtuali di Azure e Database di Azure per MySQL
Questo articolo illustra come la società fittizia Contoso esegue il rehosting di un'applicazione basata su LAMP a due livelli e ne esegue la migrazione dall'ambiente locale ad Azure usando Macchine virtuali di Azure e Database di Azure per MySQL.
L'applicazione Service Desk usata in questo esempio, osTicket, viene fornita come software open source. Se si intende usarla a scopo di test, è possibile scaricarla da GitHub.
Driver di business
Il team di leadership IT collabora attivamente con i partner commerciali per capire gli obiettivi da raggiungere:
- Stare al passo con la crescita aziendale. Contoso è in espansione e di conseguenza l'infrastruttura e i sistemi locali iniziano a sentirne la pressione.
- Limitare i rischi. L'applicazione Service Desk è fondamentale per l'azienda. L'obiettivo è spostare l'app in Azure senza correre alcun rischio.
- Estendere. Contoso non vuole sostituire subito l'applicazione, ma vuole mantenerla stabile.
Obiettivi della migrazione
Il team cloud di Contoso ha stabilito gli obiettivi di questa migrazione per determinare il metodo di migrazione più consono:
- Dopo la migrazione, l'applicazione in Azure dovrà avere le stesse caratteristiche prestazionali di cui dispone attualmente nell'ambiente VMware locale dell'azienda. L'applicazione manterrà nel cloud la stessa importanza critica della corrispondente versione in locale.
- Contoso non intende investire in questa applicazione. L'applicazione è importante per l'azienda, ma Contoso vuole semplicemente spostarla nel cloud nella sua forma attuale.
- Dopo aver completato un paio di migrazioni di applicazioni Windows, Contoso vuole imparare a usare un'infrastruttura basata su Linux in Azure.
- Si desidera ridurre al minimo le attività di amministrazione del database dopo che l'applicazione è stata spostata nel cloud.
Architettura proposta
In questo scenario:
Attualmente l'applicazione è suddivisa a livelli in due VM (
OSTICKETWEB
eOSTICKETMYSQL
).Le macchine virtuali si trovano nell'host VMware ESXi
contosohost1.contoso.com
(versione 6.5).L'ambiente VMware viene gestito dal server vCenter 6.5 (
vcenter.contoso.com
) ed è eseguito in una macchina virtuale.Contoso ha un data center locale (
contoso-datacenter
) con un controller di dominio locale (contosodc1
).Verrà eseguita la migrazione dell'applicazione Web
OSTICKETWEB
in una macchina virtuale IaaS (Infrastructure as a Service) di Azure.Verrà eseguita la migrazione del database dell'applicazione alla piattaforma distribuita come servizio di Database di Azure per MySQL.
Poiché Contoso intende eseguire la migrazione di un carico di lavoro di produzione, le risorse risiederanno nel gruppo di risorse di produzione
ContosoRG
.La risorsa
OSTICKETWEB
verrà replicata nell'area primaria (Stati Uniti orientali 2) e inserita nella rete di produzione (VNET-PROD-EUS2
):- La macchina virtuale Web si troverà nella subnet front-end (
PROD-FE-EUS2
).
- La macchina virtuale Web si troverà nella subnet front-end (
Verrà eseguita la migrazione del database dell'applicazione in Database di Azure per MySQL usando Servizio Migrazione del database di Azure.
Le macchine virtuali locali nel data center Contoso verranno rimosse al termine della migrazione.
Processo di migrazione
In Contoso il processo di migrazione verrà completato come indicato di seguito:
Per eseguire la migrazione della macchina virtuale Web:
- Come primo passaggio, Contoso configura l'infrastruttura di Azure e locale necessaria a distribuire Azure Migrate.
- L'azienda dispone già dell'infrastruttura di Azure, quindi deve semplicemente aggiungere e configurare la replica delle macchine virtuali tramite lo strumento Azure Migrate: Migrazione del server.
- Al termine delle attività di preparazione, Contoso può iniziare a replicare le macchine virtuali.
- Quando che la replica è abilitata e operativa, Contoso completerà lo spostamento usando Azure Migrate.
Per eseguire la migrazione del database:
Si esegue il provisioning di un'istanza di MySQL in Azure.
Contoso configura il Servizio Migrazione del database, assicurando l'accesso al server di database locale.
Contoso esegue la migrazione del database a Database di Azure per MySQL.
Servizi di Azure
Servizio | Descrizione | Costi |
---|---|---|
Azure Migrate | Contoso usa Azure Migrate per valutare le macchine virtuali VMware. Azure Migrate valuta l'idoneità alla migrazione delle macchine. Fornisce stime di dimensioni e costi per l'esecuzione in Azure. | Azure Migrate è disponibile senza costi aggiuntivi. Potrebbero essere addebitati costi in base agli strumenti (proprietari o ISV) che l'azienda decide di usare per la valutazione e la migrazione. |
Servizio Migrazione del database di Azure | Servizio Migrazione del database consente di eseguire facilmente la migrazione di più origini di database a piattaforme dati di Azure, con tempi di inattività minimi. | Altre informazioni sulle aree supportate e sui prezzi del Servizio Migrazione del database. |
Database di Azure per MySQL | Il database è basato sul motore del database MySQL open source. Offre un database MySQL completamente gestito di livello aziendale e supportato dalla community per lo sviluppo e la distribuzione di applicazioni. | Altre informazioni sui prezzi di Database di Azure per MySQL e sulle opzioni di scalabilità. |
Prerequisiti
Ecco i requisiti che Contoso dovrà soddisfare per questo scenario.
Requisiti | Dettagli |
---|---|
Sottoscrizione di Azure | Contoso ha creato le sottoscrizioni in un articolo precedente. 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 ha il ruolo di amministratore, rivolgersi all'amministratore per l'assegnazione delle autorizzazioni di proprietario o collaboratore. Se sono necessarie autorizzazioni più specifiche, vedere Gestire l'accesso ad Azure Site Recovery con il controllo degli accessi in base al ruolo. |
Infrastruttura di Azure | Contoso configura l'infrastruttura di Azure come descritto in Azure infrastructure for migration (Infrastruttura di Azure per la migrazione). |
Server locali | Il server vCenter locale deve eseguire la versione 5.5, 6.0, 6.5 o 6.7. Un host ESXi che esegue la versione 5.5, 6.0, 6.5 o 6.7. Una o più macchine virtuali VMware in esecuzione nell'host ESXi. |
VM locali | Esaminare i computer Linux approvati per l'esecuzione in Azure. |
Passaggi dello scenario
Ecco come gli amministratori di Contoso eseguiranno la migrazione:
- Passaggio 1: Preparare Azure per Azure Migrate: Migrazione del server. Aggiungere lo strumento Migrazione server al progetto di Azure Migrate.
- Passaggio 2: Preparare le istanze VMware locali per Azure Migrate: Migrazione del server. Preparare gli account per l'individuazione delle macchine virtuali e preparare la connessione alle macchine virtuali di Azure dopo la migrazione.
- Passaggio 3: Replicare le macchine virtuali. Configurare e avviare la replica delle VM in Archiviazione di Azure.
- Passaggio 4: Eseguire la migrazione delle macchine virtuali dell'applicazione con Azure Migrate: Migrazione del server. Eseguire una migrazione di test per verificare che tutto funzioni correttamente, quindi eseguire una migrazione completa per spostare le macchine virtuali in Azure.
- Passaggio 5: Eseguire la migrazione del database. Configurare la migrazione usando il Servizio Migrazione del database di Azure.
Passaggio 1: Preparare Azure per lo strumento Azure Migrate: Migrazione del server
Ecco i componenti di Azure necessari a Contoso per la migrazione delle VM ad Azure:
- Una rete virtuale in cui verranno collocate le macchine virtuali di Azure al momento della creazione, durante la migrazione.
- Lo strumento Azure Migrate: Migrazione del server di cui è stato effettuato il provisioning e che è stato configurato.
Per configurare i componenti, gli amministratori Contoso eseguono questi passaggi:
Configurare una rete. Contoso ha già configurato una rete che può essere usata per Azure Migrate: Migrazione del server quando ha distribuito l'infrastruttura di Azure.
Effettuare il provisioning dello strumento Azure Migrate: Migrazione del server.
Scaricare il file di immagine
.OVA
da Azure Migrate e importarlo in VMware.Avviare l'immagine importata e configurare lo strumento seguendo questa procedura:
Configurare i prerequisiti.
Far puntare lo strumento alla sottoscrizione di Azure.
Impostare le credenziali di VMware vCenter.
Aggiungere le credenziali basate su Linux per l'individuazione.
Una volta configurato, lo strumento deve enumerare tutte le macchine virtuali e l'operazione può richiedere tempo. Al termine del processo, le macchine virtuali vengono popolate nello strumento Azure Migrate in Azure.
Ulteriore assistenza?
Informazioni su come configurare lo strumento Azure Migrate: Migrazione del server.
Passaggio 2: Preparare le istanze VMware locali per Azure Migrate - Migrazione del server
Dopo la migrazione ad Azure, Contoso vuole essere in grado di connettersi alle macchine virtuali replicate in Azure. Gli amministratori di Contoso devono eseguire alcune operazioni:
- Per accedere alle macchine virtuali di Azure, abilitano il protocollo SSH nella macchina virtuale Linux locale prima della migrazione. Per Ubuntu, questo passaggio può essere completato con il comando seguente:
sudo apt-get ssh install -y
. - Dopo aver eseguito la migrazione, gli amministratori possono controllare la diagnostica di avvio per visualizzare uno screenshot della macchina virtuale.
- Se l'operazione non riesce, devono verificare che la macchina virtuale sia in esecuzione e rivedere questi suggerimenti per la risoluzione dei problemi.
- Installare l'agente Linux di Azure.
Ulteriore assistenza?
Informazioni su come preparare le macchine virtuali per la migrazione.
Passaggio 3: Replicare le macchine virtuali
Prima di poter eseguire una migrazione ad Azure, gli amministratori di Contoso devono configurare e abilitare la replica.
Al termine dell'individuazione, possono avviare la replica della macchina virtuale dell'applicazione in Azure.
Nel progetto Azure Migrate passare a Server>Azure Migrate: Migrazione del server e selezionare Replica.
In Replica>Impostazioni origine>I computer sono virtualizzati? selezionare Sì, con VMware vSphere.
In Appliance locale selezionare il nome dell'appliance di Azure Migrate configurata e quindi selezionare OK.
In Macchine virtuali selezionare le macchine da replicare:
- Se è stata eseguita una valutazione delle VM, è possibile applicare i consigli dei risultati della valutazione in merito al tipo di disco (Premium/Standard) e alle dimensioni delle VM. In Importare le impostazioni di migrazione da una valutazione di Azure Migrate? selezionare l'opzione Sì.
- Se non è stata eseguita una valutazione o non si vogliono usare le impostazioni della valutazione, selezionare l'opzione No.
- Se si è scelto di usare la valutazione, selezionare il gruppo di macchine virtuali e il nome della valutazione.
In Macchine virtuali cercare le macchine virtuali necessarie e selezionare quelle di cui si vuole eseguire la migrazione. Selezionare quindi Avanti: Impostazioni di destinazione.
In Impostazioni di destinazione selezionare la sottoscrizione e l'area di destinazione della migrazione. Specificare il gruppo di risorse in cui si troveranno le macchine virtuali di Azure dopo la migrazione. In Rete virtuale selezionare la subnet/rete virtuale di Azure a cui verranno aggiunte le VM di Azure dopo la migrazione.
In Vantaggio Azure Hybrid:
- Selezionare No se non si vuole applicare Vantaggio Azure Hybrid. Selezionare quindi Avanti.
In Calcolo controllare il nome, le dimensioni, il tipo di disco del sistema operativo e il set di disponibilità delle VM. Le VM devono essere conformi ai requisiti di Azure.
- Dimensioni macchina virtuale: se vengono usate le raccomandazioni per la valutazione, l'elenco a discesa Dimensioni macchina virtuale conterrà le dimensioni consigliate. In caso contrario, Azure Migrate seleziona le dimensioni più simili nella sottoscrizione di Azure. In alternativa, selezionare manualmente le dimensioni in Dimensioni macchina virtuale di Azure.
- Disco sistema operativo: specificare il disco del sistema operativo (di avvio) per la VM. È il disco che contiene il bootloader e il programma di installazione del sistema operativo.
- Set di disponibilità: se la VM deve essere inclusa in un set di disponibilità di Azure dopo la migrazione, specificare il set. Il set deve trovarsi nel gruppo di risorse di destinazione specificato per la migrazione.
In Dischi specificare se i dischi delle macchine virtuali devono essere replicati in Azure. Selezionare quindi il tipo di disco (HDD/SSD Standard o SSD Premium) in Azure e selezionare Avanti.
- È possibile escludere dischi dalla replica.
- I dischi esclusi non saranno presenti nella macchina virtuale di Azure dopo la migrazione.
Rivedere le impostazioni in Rivedi e avvia replica. Selezionare quindi Replica per avviare la replica iniziale per i server.
Nota
È possibile aggiornare le impostazioni di replica in qualsiasi momento prima dell'avvio della replica selezionando Gestisci>Replica delle macchine virtuali. Le impostazioni non possono essere modificate dopo l'avvio della replica.
Passaggio 4: Eseguire la migrazione delle macchine virtuali con Azure Migrate: Migrazione del server
Gli amministratori di Contoso eseguono una rapida migrazione di test e poi una migrazione completa per spostare la macchina virtuale Web.
Eseguire una migrazione di test
In Obiettivi della migrazione>Server>Azure Migrate: Migrazione del server selezionare Testare i server con migrazione completata.
Selezionare e tenere premuto il pulsante del mouse (o fare clic con il pulsante destro del mouse) sulla macchina virtuale da testare, quindi scegliere Migrazione di test.
In Migrazione di test selezionare la rete virtuale di Azure in cui verrà inserita la VM di Azure dopo la migrazione. È consigliabile usare una rete virtuale non di produzione.
Verrà avviato il processo Migrazione di test. Monitorare il processo nelle notifiche del portale.
Al termine della migrazione, visualizzare la VM di Azure di cui è stata eseguita la migrazione in Macchine virtuali nel portale di Azure. Il nome della macchina virtuale ha il suffisso -Test.
Al termine del test, selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sulla macchina virtuale di Azure in Replica delle macchine virtuali. Selezionare quindi Pulisci migrazione di test.
Eseguire la migrazione della macchina virtuale
Gli amministratori di Contoso eseguono ora una migrazione completa per portare a termine lo spostamento.
Nel progetto Azure Migrate passare a Server>Azure Migrate: Migrazione del server e selezionare Replica dei server.
In Replica delle macchine virtuali selezionare e tenere premuto il pulsante del mouse (o fare clic con il pulsante destro del mouse) sulla macchina virtuale e quindi scegliere Esegui la migrazione.
In Esegui la migrazione>Spegnere le macchine virtuali ed eseguire una migrazione pianificata senza perdita di dati selezionare Sì>OK.
- Per impostazione predefinita, Azure Migrate arresta la macchina virtuale locale ed esegue una replica su richiesta per sincronizzare le eventuali modifiche apportate alla macchina virtuale dopo l'ultima replica. Questa operazione assicura che non si verifichi alcuna perdita di dati.
- Se non si vuole arrestare la VM, selezionare No.
Verrà avviato un processo di migrazione per la VM. Tenere traccia del processo nelle notifiche di Azure.
Al termine del processo, è possibile visualizzare e gestire la VM dalla pagina Macchine virtuali.
Passaggio 5: Effettuare il provisioning di Database di Azure per MySQL
Gli amministratori di Contoso effettuano il provisioning di un'istanza di database MySQL nell'area primaria (East US 2
).
Nel portale di Azure creare una risorsa di Database di Azure per MySQL.
Aggiungere il nome
contosoosticket
per il database di Azure. Aggiungere il database al gruppo di risorse di produzioneContosoRG
e specificarne le credenziali.Il database MySQL locale è la versione 5.7, pertanto si seleziona questa versione per la compatibilità. Usare le dimensioni predefinite, che corrispondono ai requisiti del database.
In Opzioni di ridondanza per il backup selezionare l'uso Con ridondanza geografica. Questa opzione consente di ripristinare il database nell'area secondaria (
Central US
) in caso di interruzione. È possibile configurare questa opzione solo quando si effettua il provisioning del database.Nella rete
VNET-PROD-EUS2
passare a Endpoint di servizio e aggiungere un endpoint di servizio (una subnet di database) per il servizio SQL.Dopo avere aggiunto la subnet, creare una regola di rete virtuale che consente l'accesso dalla subnet del database nella rete di produzione.
Passaggio 6: Eseguire la migrazione del database
Esistono diversi modi per spostare il database MySQL. Per ogni opzione è necessario che gli amministratori di Contoso creino un'istanza di Database di Azure per MySQL per la destinazione. Dopo la creazione, possono eseguire la migrazione usando due percorsi descritti nei passaggi seguenti:
- 6a: Servizio Migrazione del database
- 6b: Backup e ripristino di MySQL Workbench
Passaggio 6a: Eseguire la migrazione del database tramite il Servizio Migrazione del database
Gli amministratori di Contoso eseguono la migrazione del database mediante il Servizio Migrazione del database e seguendo l'esercitazione dettagliata sulla migrazione. Possono eseguire migrazioni online, offline e ibride (in anteprima) usando MySQL 5.6 o 5.7.
Nota
MySQL 8.0 è supportato in Database di Azure per MySQL, ma lo strumento Servizio Migrazione del database non supporta ancora questa versione.
In breve, gli amministratori di Contoso devono eseguire le attività seguenti:
Verificare che tutti i prerequisiti di migrazione siano soddisfatti:
L'origine di database del server MySQL deve corrispondere alla versione supportata dal Database di Azure per MySQL. Database di Azure per MySQL supporta l'edizione MySQL Community, il motore di archiviazione InnoDB e la migrazione tra origine e destinazione con le stesse versioni.
Abilitare la registrazione binaria in
my.ini
(Windows) omy.cnf
(Unix). Se non è abilitata, si verifica l'errore seguente nella Migrazione guidata:Error in binary logging. Variable binlog_row_image has value 'minimal.' Please change it to 'full.'
Per altre informazioni, vedere Opzioni e variabili di registrazione binaria nella documentazione di MySQL.
L'utente deve avere il ruolo
ReplicationAdmin
.La migrazione degli schemi del database viene eseguita senza chiavi esterne e trigger.
Creare una rete virtuale in grado di connettersi tramite Azure ExpressRoute o una VPN alla rete locale.
Creare un'istanza del Servizio Migrazione del database di Azure con uno SKU
Premium
connesso alla rete virtuale.Assicurarsi che l'istanza possa accedere al database MySQL tramite la rete virtuale. Assicurarsi che siano consentite tutte le porte in ingresso da Azure a MySQL al livello della rete virtuale, della VPN di rete e del computer su cui è installato MySQL.
Eseguire lo strumento 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 e risolvere eventuali errori.
Eseguire il cutover finale.
Reintegrare le chiavi esterne e i trigger.
Modificare le applicazioni in modo da usare il nuovo database.
Passaggio 6b: Eseguire la migrazione del database (MySQL Workbench)
Gli amministratori di Contoso eseguono la migrazione del database tramite backup e ripristino con gli strumenti di MySQL. Installano MySQL Workbench, eseguono il backup del database da OSTICKETMYSQL
e quindi lo ripristinano in Database di Azure per MySQL.
Installare MySQL Workbench
Verificare i prerequisiti e scaricare MySQL Workbench.
Installare MySQL Workbench per Windows seguendo le istruzioni di installazione.
In MySQL Workbench creare una connessione MySQL a
OSTICKETMYSQL
.Esportare il database come
osticket
in un file autonomo locale.Dopo avere eseguito il backup del database localmente, creare una connessione all'istanza di Database di Azure per MySQL.
A questo punto, importare (ripristinare) il database nell'istanza di Database di Azure per MySQL dal file autonomo. Viene creato un nuovo schema (
osticket
) per l'istanza.
Connettere la macchina virtuale al database
Come passaggio finale del processo di migrazione, gli amministratori di Contoso aggiornano la stringa di connessione dell'applicazione in modo che punti al database in esecuzione sulla VM OSTICKETMYSQL
.
Creare una connessione SSH alla macchina virtuale
OSTICKETWEB
tramite PuTTY o un altro client SSH. La macchina virtuale è privata, pertanto connettersi usando l'indirizzo IP privato.Assicurarsi che la macchina virtuale
OSTICKETWEB
possa comunicare con la macchina virtualeOSTICKETMYSQL
. Attualmente la configurazione è hardcoded con l'indirizzo IP locale172.16.0.43
.Prima dell'aggiornamento:
Dopo l'aggiornamento:
Riavviare il servizio con
systemctl restart apache2
.Infine, aggiorare i record DNS per
OSTICKETWEB
eOSTICKETMYSQL
in uno dei controller di dominio di Contoso.
Ulteriore assistenza?
- Informazioni su come eseguire una migrazione di test.
- Informazioni su come eseguire la migrazione di macchine virtuali ad Azure.
Esaminare la distribuzione
Con l'applicazione in esecuzione, Contoso deve rendere pienamente operativa e proteggere la nuova infrastruttura.
Eseguire la pulizia dopo la migrazione
Al termine della migrazione, i livelli dell'applicazione osTicket sono in esecuzione nelle macchine virtuali di Azure.
A questo punto, Contoso deve eseguire le operazioni seguenti:
- Rimuovere le macchine virtuali VMware dall'inventario vCenter.
- Rimuovere le macchine virtuali in locale dai processi di backup locali.
- Aggiornare la documentazione interna con le nuove posizioni e i nuovi indirizzi IP.
- Esaminare tutte le risorse che interagiscono con le macchine virtuali locali. Aggiornare eventuali impostazioni o documenti pertinenti in modo che riflettano la nuova configurazione.
- Contoso ha usato il servizio Azure Migrate con il mapping delle dipendenze per valutare le macchine virtuali
OSTICKETWEB
per la migrazione.
Sicurezza
Il team di sicurezza di Contoso esamina la macchina virtuale e il database per rilevare eventuali problemi di sicurezza:
- Per controllare l'accesso, esamina i gruppi di sicurezza di rete (NSG) per la VM. I gruppi di sicurezza di rete vengono usati per assicurarsi che possa passare solo il traffico consentito all'applicazione.
- Il team considera di proteggere i dati sui dischi della macchina virtuale usando Crittografia dischi di Azure e Azure Key Vault.
- La comunicazione tra la macchina virtuale e l'istanza del database non è configurata per SSL. Sarà necessario configurare SSL per assicurarsi che il traffico del database non possa essere compromesso.
Per altre informazioni, vedere Procedure consigliate per la sicurezza dei carichi di lavoro IaaS in Azure.
Continuità aziendale e ripristino di emergenza
Per la continuità aziendale e il ripristino di emergenza, Contoso esegue le azioni seguenti:
- Proteggere i dati. Contoso esegue il backup dei dati nella macchina virtuale dell'applicazione usando il backup delle macchine virtuali di Azure. Non è necessario configurare il backup per il database. Database di Azure per MySQL crea e archivia automaticamente i backup del server. Contoso ha deciso di usare la ridondanza geografica per il database, in modo che sia resiliente e pronto per la produzione.
- Mantenere operative le applicazioni. Contoso replica le macchine virtuali dell'applicazione in Azure in un'area secondaria usando Site Recovery. Per altre informazioni, vedere Avvio rapido: Configurare il ripristino di emergenza in un'area di Azure secondaria per una macchina virtuale di Azure.
Licenze e ottimizzazione dei costi
- Dopo la distribuzione delle risorse, Contoso assegna tag di Azure, in base alle decisioni prese durante la distribuzione dell'infrastruttura di Azure.
- Non vi sono problemi di gestione delle licenze per i server Ubuntu di Contoso.
- Contoso userà Gestione dei costi e fatturazione di Azure per assicurare che siano rispettati i budget definiti dalla leadership IT.