Panoramica della migrazione

Questa pagina fornisce una panoramica delle differenze tra il bilanciatore del carico delle applicazioni esterno globale e il bilanciatore del carico delle applicazioni classico, nonché una panoramica dettagliata di come eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico esistenti al bilanciatore del carico delle applicazioni esterno globale.

Per sfruttare le funzionalità di gestione avanzata del traffico del bilanciatore del carico delle applicazioni esterno globale, ti consigliamo di eseguire la migrazione delle risorse del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Confronta i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali

Prima di eseguire la migrazione delle risorse, comprendi le differenze tra i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni esterni globali.

Differenze di funzionalità

Le seguenti funzionalità non sono supportate con il bilanciatore del carico delle applicazioni esterno globale. Sono disponibili solo con il bilanciatore del carico delle applicazioni classico:

Differenze tra i piani dati

La seguente tabella evidenzia le differenze nel piano dati tra il bilanciatore del carico delle applicazioni classico e il bilanciatore del carico delle applicazioni esterno globale. Queste differenze influenzano il modo in cui i bilanciatori del carico rispondono ad alcuni eventi comuni.

Evento Risposta del bilanciatore del carico delle applicazioni classico Risposta del bilanciatore del carico delle applicazioni esterno globale
Codici di stato/errore
Tutti i backend sono in stato non integro Restituisce HTTP 502 Restituisce HTTP 503
La richiesta utilizza una crittografia SSL vietata Restituisce HTTP 502 Restituisce HTTP 503
Reimpostazione anticipata della connessione upstream da parte del backend Restituisce HTTP 502 Restituisce HTTP 503
Aggiornamento della connessione non riuscito (ad esempio, durante l'upgrade a Websocket) Restituisce HTTP 400 Restituisce HTTP 403
L'intestazione è troppo grande Restituisce HTTP 413 Restituisce HTTP 431
Quote e limiti
Configurazione della mappa URL Esistono differenze significative nei limiti di configurazione della mappa URL tra i due bilanciatori del carico. Per maggiori dettagli, consulta la documentazione Quote: mappe degli URL.
Gestione delle intestazioni
La richiesta utilizza un metodo HTTP personalizzato senza corpo Aggiunge l'intestazione Transfer Encoding: Chunked alla richiesta inviata al backend Aggiunge l'intestazione Content-Length: 0 alla richiesta inviata al backend
Formato dell'intestazione X-Forwarded-For aggiunta alle richieste inviate al backend Utilizza il delimitatore ", " tra gli IP Utilizza il delimitatore "," tra gli IP (nessuno spazio dopo la virgola)
Conservazione del formato delle intestazioni La distinzione tra maiuscole e minuscole dell'intestazione viene mantenuta Tutte le chiavi di intestazione vengono trasformate in minuscolo
Intestazioni ripetute con lo stesso nome Consentito Le intestazioni ripetute possono essere combinate in un'unica intestazione, con i valori aggiunti in ordine e separati da virgole, come consentito da RFC 7230.
(solo HTTP/1.1) Nome intestazione non valido (ad esempio, caratteri non supportati nell'intestazione) Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
(solo HTTP/1.1) Intestazione Content-Length ripetuta (ma uguale) nella richiesta Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
(solo HTTP/1.1) Più host nell'intestazione Quando vengono aggiunti due o più host e il primo è valido, l'intestazione viene accettata Quando vengono aggiunti due o più host e uno qualsiasi non è valido, il bilanciatore del carico restituisce HTTP 502
(solo HTTP/1.1) intestazione Connection: Keep-Alive Aggiunge Keep-Alive header alle richieste inviate al backend per impostazione predefinita Non aggiunge questa intestazione per impostazione predefinita
Gestione delle richieste
Barre rovesciate nella richiesta URL invariato Si converte in una barra
Unire le barre duplicate nella richiesta Barre non unite Unisce le barre
`#` nel percorso della richiesta Consentito Restituisce HTTP 400
(solo HTTP/1.1) Caratteri non validi nel percorso della richiesta (ad esempio, `\\x7f\\x7f`) Consentito (per HTTP/1.1) Restituisce HTTP 502 (per HTTP/1.1)
Distribuzione del traffico (configurazione della mappa degli URL)
La richiesta del client include un numero di porta Il numero di porta viene ignorato anche se hai configurato host con porte nella mappa URL. Viene considerato solo il nome host. Ad esempio, le richieste per example.com:5000 vengono abbinate al servizio di backend per example.com. Vengono presi in considerazione sia il nome host che il numero di porta. Ad esempio, le richieste per example.com:5000 vengono abbinate al servizio di backend per example.com:5000. Se non viene trovata una corrispondenza, viene utilizzato il servizio di backend predefinito.

A causa delle differenze architetturali, durante la migrazione al bilanciatore del carico delle applicazioni esterno globale, potresti notare un aumento del numero di connessioni ai backend, soprattutto quando utilizzi il protocollo HTTP/1.1. Ciò può comportare un aumento del consumo di memoria nelle istanze di backend. Monitora l'utilizzo delle risorse di backend durante e dopo la migrazione.

Per scoprire di più sulle differenze e sulle funzionalità supportate, consulta Confronto delle funzionalità dei bilanciatori del carico e Panoramica del bilanciatore del carico delle applicazioni.

Esegui la migrazione dal bilanciatore del carico delle applicazioni esterno classico a quello globale

Per eseguire la migrazione al bilanciatore del carico delle applicazioni esterno globale, devi modificare lo schema di bilanciamento del carico delle risorse di bilanciamento del carico, in particolare i servizi di backend e le regole di forwarding, da EXTERNAL a EXTERNAL_MANAGED. Per farlo, esegui una serie di passaggi di migrazione in cui puoi testare parti del traffico di rete con il nuovo schema di bilanciamento del carico prima di finalizzare la migrazione. Durante la migrazione delle risorse, controlli la percentuale di richieste inviate all'infrastruttura del bilanciatore del carico delle applicazioni classico o a quella del bilanciatore del carico delle applicazioni esterno globale.

Il seguente diagramma mostra gli schemi di bilanciamento del carico delle risorse di bilanciamento del carico prima e dopo la migrazione.

Processo di migrazione per le risorse del bilanciatore del carico delle applicazioni classico.
Processo di migrazione per le risorse del bilanciatore del carico delle applicazioni classico (fai clic per ingrandire).

Nel diagramma precedente, tieni presente quanto segue:

  • Prima della migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura del bilanciatore del carico delle applicazioni classico.
  • Durante la migrazione delle risorse, alcune richieste vengono inviate all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale e le rimanenti vengono inviate all'infrastruttura del bilanciatore del carico delle applicazioni classico.
  • Dopo la migrazione delle risorse, tutte le richieste utilizzano l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Per garantire una transizione senza problemi, esegui la migrazione delle seguenti risorse del bilanciatore del carico delle applicazioni classico nell'ordine specificato:

  1. Migra tutti i servizi di backend collegati alle regole di forwarding del bilanciatore del carico.

  2. Migra tutti i bucket di backend collegati alle regole di forwarding del bilanciatore del carico. Questa operazione viene eseguita a livello di regola di forwarding perché i bucket di backend non hanno schemi di bilanciamento del carico.

  3. Migra le regole di forwarding del bilanciatore del carico.

    Puoi eseguire la migrazione di una regola di forwarding solo dopo che tutti i servizi di backend e i bucket di backend collegati alla regola di forwarding sono già stati migrati.

Stati della migrazione

Esegui la migrazione delle risorse impostandole su stati diversi prima di modificare lo schema di bilanciamento del carico in EXTERNAL_MANAGED.

  1. PREPARE: imposta una risorsa su questo stato per prepararla alla migrazione.
  2. TEST_BY_PERCENTAGE: per testare una risorsa preparata, impostala su questo stato per inviare una percentuale del traffico di rete. Questa fase è facoltativa.
  3. TEST_ALL_TRAFFIC: imposta una risorsa su questo stato per inviare tutto il traffico di rete alla risorsa tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale anziché quella del bilanciatore del carico delle applicazioni classico.

Processo di migrazione

Per contribuire a garantire l'assenza di tempi di inattività, esegui la migrazione delle risorse in un ordine specifico dall'infrastruttura del bilanciatore del carico delle applicazioni classico all'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, quindi modifica lo schema di bilanciamento del carico da EXTERNAL a EXTERNAL_MANAGED per finalizzare la migrazione.

  1. Migra i servizi di backend del bilanciatore del carico.

    Ripeti i seguenti passaggi per ogni servizio di backend.

    1. Prepara il servizio di backend per la migrazione.

      Prima che il traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del servizio di backend su PREPARE. In questo modo, il servizio di backend viene preparato per gestire il traffico di rete dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a inviare il traffico tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    2. (Facoltativo) Testa il servizio di backend preparato.

      Una volta che il servizio di backend si trova nello stato PREPARE, impostalo su TEST_BY_PERCENTAGE e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

      Sebbene questa fase sia facoltativa, ti consigliamo di testare il traffico prima di eseguire la migrazione di un servizio di backend. Inizia con un valore percentuale ridotto e monitora i log delle risorse. Se il servizio di backend si comporta come previsto, aumenta gradualmente la percentuale fino al 100%.

      Nello stato TEST_BY_PERCENTAGE, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    3. Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al servizio di backend preparato.

      Una volta eseguito il test del servizio di backend, imposta il relativo stato su TEST_ALL_TRAFFIC e invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al servizio di backend preparato. Un servizio di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.

      Nello stato TEST_ALL_TRAFFIC, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    4. Modifica lo schema di bilanciamento del carico del servizio di backend di cui è stata eseguita la migrazione in EXTERNAL_MANAGED.

      Dopo aver testato il servizio di backend preparato nell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, modifica lo schema di bilanciamento del carico in EXTERNAL_MANAGED. La migrazione completa di un servizio di backend richiede un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico del servizio di backend cambia in EXTERNAL_MANAGED, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

  2. Migra i bucket di backend del bilanciatore del carico. Questa operazione viene eseguita a livello di regola di forwarding perché i bucket di backend non hanno schemi di bilanciamento del carico.

    Ripeti i seguenti passaggi per ogni bucket.

    1. Prepara il bucket di backend per la migrazione.

      Prima che il traffico possa essere inviato tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, imposta lo stato del bucket di backend su PREPARE e attendi un po' di tempo (circa sei minuti).

    2. (Facoltativo) Testa il servizio di backend preparato.

      Dopo che il bucket di backend si trova nello stato PREPARE, impostalo su TEST_BY_PERCENTAGE e imposta una percentuale del traffico di rete del bilanciatore del carico delle applicazioni classico sull'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

    3. Invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico al bucket di backend preparato.

      Imposta lo stato del bucket di backend su TEST_ALL_TRAFFIC e invia tutto il traffico di rete del bilanciatore del carico delle applicazioni classico. Un bucket di backend richiede un po' di tempo (circa sei minuti) per essere pronto a gestire il traffico di rete.

      Nello stato TEST_ALL_TRAFFIC, non puoi utilizzare le funzionalità aggiuntive dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

  3. Esegui la migrazione delle regole di forwarding.

    Per ogni regola di forwarding, modifica lo schema di bilanciamento del carico della regola di forwarding in EXTERNAL_MANAGED e attendi un po' di tempo (circa sei minuti). Dopo che lo schema di bilanciamento del carico della regola di forwarding cambia in EXTERNAL_MANAGED, puoi utilizzare le funzionalità avanzate dell'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

Per una procedura dettagliata passo passo, consulta Esegui la migrazione delle risorse dal bilanciatore del carico delle applicazioni classico.

Il seguente diagramma mostra le risorse del bilanciatore del carico delle applicazioni classico nei diversi stati della migrazione.

Stati di migrazione delle risorse del bilanciatore del carico delle applicazioni classico.
Stati di migrazione delle risorse del bilanciatore del carico delle applicazioni classico (fai clic per ingrandire).

Dopo aver eseguito la migrazione di una risorsa, se vuoi ripristinarla nel bilanciatore del carico delle applicazioni classico, modifica lo schema di bilanciamento del carico entro 90 giorni dalla migrazione. Non puoi eseguire il rollback di una risorsa dopo che sono trascorsi 90 giorni.

Utilizzo dell'affinità sessione

Tieni presente i seguenti avvisi quando esegui la migrazione dei servizi di backend del bilanciatore del carico delle applicazioni classico con affinità sessione:

  • L'impostazione di un valore per TEST_BY_PERCENTAGE reindirizza parte del traffico che ha come target il bilanciatore del carico delle applicazioni classico al bilanciatore del carico delle applicazioni esterno globale. In questo modo, l'affinità dell'IP client viene interrotta. La modifica della percentuale di migrazione (ad esempio, l'aumento del 10%) interrompe l&#39affinità sessionee per la stessa percentuale di indirizzi IP client (10% in questo esempio), finché l'affinità non viene ristabilita nella richiesta successiva.

  • L'impostazione di un valore per TEST_BY_PERCENTAGE reindirizza questa percentuale di traffico senza un cookie di sessione al bilanciatore del carico delle applicazioni esterno globale. Inoltre, reindirizza tutto il traffico con un cookie di sessione alla flotta di bilanciatori del carico che ha generato il cookie.

  • Se imposti un valore per TEST_BY_PERCENTAGE pari a 0%, se non lo imposti o se imposti il servizio di backend sullo stato PREPARE, tutti i cookie esistenti indirizzati al bilanciatore del carico delle applicazioni esterno globale vengono invalidati.

  • La modifica dello schema di bilanciamento del carico del servizio di backend in EXTERNAL_MANAGED invalida tutti i cookie generati dal parco bilanciatori del carico delle applicazioni classici. In questo modo puoi eseguire il rollback del traffico se si verifica un problema con la tua applicazione utilizzando il bilanciatore del carico delle applicazioni esterno globale. Ad esempio, se un client presenta un cookie della flotta del bilanciatore del carico delle applicazioni classico, ma lo schema del servizio di backend è EXTERNAL_MANAGED, il cookie del client non viene rispettato. Il bilanciatore del carico delle applicazioni esterno globale ignora il cookie e ne crea uno nuovo.

Esegui il rollback delle risorse migrate

Dopo la migrazione di una risorsa, se vuoi eseguire il rollback dall'infrastruttura del bilanciatore del carico delle applicazioni esterno globale all'infrastruttura del bilanciatore del carico delle applicazioni classico, puoi farlo entro 90 giorni dalla modifica dello schema di bilanciamento del carico.

Il rollback di un servizio di backend allo schema EXTERNAL richiede il rollback della regola di forwarding. Il rollback di una regola di forwarding allo schema EXTERNAL non richiede il rollback dei servizi di backend.

Per eseguire il rollback delle risorse:

  1. Rimuovi tutte le nuove funzionalità avanzate di gestione del traffico del bilanciatore del carico delle applicazioni esterno globale configurate sulla risorsa.
  2. Esegui il rollback delle regole di forwarding.

    Modifica lo schema di bilanciamento del carico delle regole di forwarding da EXTERNAL_MANAGED a EXTERNAL.

  3. Esegui il rollback dei bucket di backend.

    1. Imposta lo stato della migrazione dei bucket di backend su TEST_ALL_TRAFFIC e attendi un po' di tempo (circa sei minuti).
    2. (Facoltativo) Per diminuire il traffico, imposta lo stato di migrazione dei bucket di backend su TEST_BY_PERCENTAGE e imposta una percentuale del traffico.
    3. Imposta lo stato della migrazione dei bucket di backend su PREPARE.
    4. Ripristina lo stato precedente alla migrazione dei bucket di backend.
  4. Esegui il rollback dei servizi di backend.

    1. Imposta lo stato di migrazione dei servizi di backend su TEST_ALL_TRAFFIC e attendi un po' di tempo (circa sei minuti).
    2. (Facoltativo) Per ridurre il traffico, imposta lo stato di migrazione dei servizi di backend su TEST_BY_PERCENTAGE e imposta una percentuale del traffico.
    3. Imposta lo stato di migrazione dei servizi di backend su PREPARE.
    4. Ripristina lo stato precedente alla migrazione dei servizi di backend.

Per una procedura dettagliata passo passo, consulta Eseguire il rollback delle risorse migrate al bilanciatore del carico delle applicazioni classico.

Monitorare il processo di migrazione

Durante la migrazione delle risorse, puoi controllare i relativi schemi di bilanciamento del carico visualizzando quanto segue:

  • Le dashboard di logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale. Per saperne di più, consulta Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno globale.

  • I valori delle seguenti intestazioni di richieste e risposte HTTP:

    • X-External-Managed-Migration-Scheme-Override: questa intestazione della richiesta indirizza la richiesta in base al suo valore. Se il valore dell'intestazione è EXTERNAL, la richiesta viene indirizzata all'infrastruttura del bilanciatore del carico delle applicazioni classico. Se il valore è EXTERNAL_MANAGED, la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale.

      Utilizza questa intestazione per indirizzare una richiesta a una flotta di bilanciatori del carico specifica.

    • X-External-Managed-Migration-Selected-Scheme: questa intestazione di richiesta e risposta informa il backend e il client sullo schema di bilanciamento del carico utilizzato per indirizzare la richiesta. L'intestazione viene restituita al client e trasmessa al backend del cliente.

      Se la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni classico, il suo valore è EXTERNAL. Se la richiesta viene instradata tramite l'infrastruttura del bilanciatore del carico delle applicazioni esterno globale, il suo valore è EXTERNAL_MANAGED.

Passaggi successivi