Condividi tramite


Preparare la migrazione del carico di lavoro da Amazon Web Services (AWS) ad Azure

Questo articolo fa parte di una serie su come eseguire la migrazione di un carico di lavoro da Amazon Web Services (AWS) ad Azure.

La fase di preparazione è costituita da questi passaggi:

  • Preparare l'ambiente.
  • Preparare l'applicazione.

L'obiettivo di questa fase è preparare il carico di lavoro esistente per la migrazione. Distribuire la maggior parte possibile dell'infrastruttura del carico di lavoro e del codice in Azure prima di avviare la migrazione. La preparazione appropriata riduce la quantità di lavoro impiegato durante la migrazione e offre ampie opportunità di test.

Durante questa fase si compila l'ambiente di Azure, si esegue il refactoring di qualsiasi codice, se necessario, si configurano gli strumenti e le pipeline di integrazione continua e recapito continuo (CI/CD) e si eseguono test per creare fiducia nell'approccio alla migrazione.

Importante

Dedicare tempo durante questa fase. Qualsiasi infrastruttura non configurata correttamente, test insufficienti o problemi del team può causare ritardi, vulnerabilità di sicurezza o distribuzioni non riuscite durante la migrazione.

Prepara il tuo ambiente

  • Configurare le zone di atterraggio delle applicazioni. Assegnare la progettazione del carico di lavoro di Azure al team della piattaforma Azure in modo che possa effettuare il provisioning delle zone di destinazione dell'applicazione Azure per gli ambienti di preproduzione e carico di lavoro di produzione.

  • Configurare gli strumenti di migrazione. Se si prevede di usare Azure Migrate per la fase di esecuzione, distribuire l'appliance di Azure Migrate e configurare il progetto di Azure Migrate. Questo approccio garantisce che tutte le risorse di Azure di destinazione e i processi di individuazione siano pronti prima di eseguire il cut over.

  • Distribuire e configurare l'infrastruttura di Azure. Usare l'infrastruttura come codice (IaC) per distribuire le risorse. Questo approccio garantisce coerenza e ripetibilità. Se i team vogliono continuare a usare Terraform per scrivere script di distribuzione, devono scrivere nuovi script e moduli per le risorse di Azure. Se gli script di distribuzione esistenti usano AWS CloudFormation, usare Bicep per eseguire la distribuzione in Azure. Concentrarsi prima sugli ambienti di non produzione e convalidare tutto prima di passare agli ambienti di produzione.

  • Aggiornare le pipeline CI/CD per Azure per mantenere allineati gli ambienti.

    • Modificare le pipeline di distribuzione per indirizzare i servizi Azure.

    • Configurare le connessioni al servizio e assicurarsi che i flussi di lavoro di compilazione e rilascio possano distribuire le risorse di calcolo di Azure selezionate, ad esempio Servizio app di Azure, servizio Azure Kubernetes o Macchine virtuali di Azure.

    • Se si usa un approccio blu-verde, assicurarsi di poter distribuire il carico di lavoro sia in AWS che in Azure durante la transizione. Ad esempio, potrebbe essere necessario applicare una correzione urgente o supportare un ripristino dello stato precedente.

  • Testare l'infrastruttura. Convalidare la rete WAN virtuale o l'hub di Azure e qualsiasi altro servizio di base, ad esempio AWS Direct Connect e le connessioni di rete privata virtuale (VPN) di Azure ExpressRoute. Assicurarsi che supportino il carico di lavoro di destinazione e il processo di migrazione. Convalidare la connettività end-to-end tra gli ambienti Azure e AWS. Usare Azure Chaos Studio per simulare potenziali errori, ad esempio macchine virtuali (VM) o interruzioni di rete. Assicurarsi che il carico di lavoro migrato rimanga resiliente in queste circostanze.

  • Testare la rete e la sicurezza. Quando si configurano gruppi di sicurezza di rete ( NSG), firewall e criteri, verificare che l'applicazione possa comunicare con tutti i servizi necessari. Eseguire test di connettività per assicurarsi che le impostazioni di sicurezza non siano troppo restrittive o troppo permissive. Modificare le impostazioni in base alle esigenze per mantenere la sicurezza e le funzionalità.

    • Verificare che tutte le porte necessarie siano aperte tra azure e ambienti AWS.

    • Convalidare le regole del firewall e le configurazioni del gruppo di sicurezza di rete o del gruppo di sicurezza delle applicazioni.

    • Documentare eventuali eccezioni di sicurezza temporanee necessarie durante la migrazione.

    • Assicurarsi che i piani di rollback tengano conto del ripristino di eventuali modifiche relative alla sicurezza.

Preparare l'applicazione

  • Rimuovere parti obsolete del carico di lavoro. Se il carico di lavoro AWS include funzionalità, infrastruttura o processi operativi che non si usano, rimuoverli dal carico di lavoro. Questo passaggio può ridurre la superficie della migrazione e restringere l'infrastruttura e i test.

  • Ridurre al minimo le modifiche apportate ai carichi di lavoro di produzione in AWS. Durante l'approccio alla migrazione, ridurre al minimo le modifiche apportate al carico di lavoro. Evitare modifiche che introducono nuove infrastrutture, funzionalità o dipendenze che potrebbero mettere a rischio la migrazione.

  • Effettuare il refactoring del codice dell'applicazione. Usare i flag di funzionalità per semplificare la gestione delle funzionalità e della configurazione tra gli ambienti AWS e Azure.

  • Sostituire librerie e SDK specifici di AWS. Molte applicazioni si basano su librerie o SDK nativi di AWS per l'archiviazione, la messaggistica o l'autenticazione. Queste librerie e SDK in genere non sono compatibili con i servizi di Azure. Durante il refactoring, identificare e sostituire librerie specifiche di AWS con alternative indipendenti dalla piattaforma o equivalenti di Azure. Questo passaggio consente di evitare errori di runtime e di garantire l'integrazione dell'applicazione con i servizi di Azure.

    Suggerimento

    Strumenti come GitHub Copilot possono aiutare gli sviluppatori a identificare e effettuare il refactoring di codice specifico di AWS, ad esempio chiamate SDK o integrazioni di servizi, a equivalenti compatibili con Azure. Usare Copilot per accelerare la transizione e ridurre il lavoro manuale.

  • Coordinare le modifiche alla configurazione del client. Assicurarsi di implementare e convalidare tutte le modifiche di configurazione rivolte al client. Fornire ambienti di preproduzione per i team client per testare gli aggiornamenti agli endpoint, all'autenticazione e alla connettività.

  • Preparate le funzioni operative. Collaborare con il team operativo per implementare il monitoraggio del carico di lavoro in Azure. Configurare Monitoraggio di Azure o Application Insights con dashboard e regole di avviso equivalenti agli avvisi di AWS CloudWatch. Formare il team operativo su questi strumenti. Collaborare con il team di sicurezza per implementare il monitoraggio della sicurezza e convalidare l'architettura di Azure. Verificare che sia possibile eseguire le attività operative di routine, non pianificate e di emergenza del carico di lavoro in Azure.

Per altre informazioni sulla preparazione dei carichi di lavoro e sulla creazione dell'ambiente Azure, vedere Preparare i carichi di lavoro per il cloud.

Checklist

  Attività finali
Effettuare il provisioning delle zone di destinazione dell'applicazione
Distribuire e configurare l'infrastruttura di Azure
Aggiornare le pipeline CI/CD per Azure
Testare l'infrastruttura
Testare la rete e la sicurezza
Rimuovere parti obsolete del carico di lavoro
Ridurre al minimo le modifiche apportate al carico di lavoro di produzione in AWS
Rifattorizza il codice dell'applicazione
Sostituire le librerie e gli SDK specifici di AWS
Coordinare le modifiche alla configurazione del client
Preparare le funzioni operative

Passo successivo