Esegui un cambio di deployment blu/verde

Dopo aver testato e convalidato l'ambiente verde, avvii uno switchover per convertire l'ambiente verde nel nuovo ambiente di lettura e scrittura di produzione.

Prima di iniziare

Prima di avviare un'operazione di switchover, assicurati di disporre delle autorizzazioni necessarie e che il deployment sia pronto per il cutover.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per eseguire uno switchover, chiedi all'amministratore di concederti il seguente ruolo IAM nel progetto:

  • Cloud SQL Admin (roles/cloudsql.admin)

Per i ruoli personalizzati, assicurati di disporre delle seguenti autorizzazioni:

  • cloudsql.blueGreenDeployments.switchover
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.switchover
  • cloudsql.operations.get

Per saperne di più sui ruoli e sulle autorizzazioni IAM in Cloud SQL, consulta Ruoli e autorizzazioni.

Verifica pre-switchover

Prima di avviare un cambio, verifica le seguenti condizioni:

  1. Stato del deployment: il deployment deve essere nello stato SWITCHOVER_READY.
  2. Convalida del workload: completa tutti i test e la convalida sull'istanza di gestione temporanea verde.
  3. Ritardo di replica ridotto: assicurati che il ritardo di replica tra blu e verde sia minimo per ridurre il tempo di cutover.

Come funziona il passaggio

Quando avvii uno switchover, Cloud SQL esegue la seguente sequenza automatizzata:

  1. Convalida pre-switchover: prima dell'operazione di switchover, Cloud SQL verifica che la replica non sia interrotta ed esegue una serie di controlli di configurazione per assicurarsi che il deployment sia pronto.
  2. Esecuzione del workflow di switchover: durante l'esecuzione del workflow, Cloud SQL prepara le istanze per il cutover. Se il ritardo di replica è troppo elevato o se una transazione attiva blocca il cutover, l'operazione di switchover non va a buon fine e l'ambiente blu di produzione rimane online.
  3. Reindirizzamento del traffico: Cloud SQL scambia gli endpoint di connessione tra le istanze blu e verde.
  4. Conversione dei ruoli: l'istanza verde diventa l'istanza di lettura e scrittura di produzione attiva, mentre l'istanza blu diventa un'istanza di lettura e scrittura autonoma.

Durante il passaggio, le connessioni dell'applicazione subiscono una breve interruzione (in genere di pochi secondi) prima di riconnettersi automaticamente all'istanza di produzione di cui è stato eseguito l'upgrade. Il tempo di inattività per lo switchover varia in base alla versione di Cloud SQL:

  • Versione Cloud SQL Enterprise Plus: il tempo di inattività per il passaggio è in genere inferiore al secondo.
  • Versione Cloud SQL Enterprise: il tempo di inattività per il cambio è in genere inferiore a 60 secondi, a seconda del workload e del ritardo di replica. Non sono necessarie modifiche alla configurazione dell'applicazione o alla stringa di connessione.

Stati del ciclo di vita dello switchover

Prima, durante e dopo un cambio, il deployment passa attraverso i seguenti stati nel campo di risposta state:

  • SWITCHOVER_READY: la replica logica da blu a verde è in stato integro e il deployment è pronto per il passaggio. Lo stato SWITCHOVER_READY dipende solo dall'integrità della replica. Cloud SQL non valuta il ritardo di replica quando imposta questo stato.
  • SWITCHOVER_NOT_READY: il provisioning del deployment è stato eseguito, ma non è possibile avviare la commutazione. Ciò si verifica se la replica logica è interrotta, in pausa o arrestata oppure se si è verificato un errore del nodo sottostante. Cloud SQL non valuta il ritardo di replica quando imposta questo stato. Esamina errorDetail e risolvi l'errore prima di tentare lo switchover.
  • SWITCHOVER_IN_PROGRESS: il comando di cambio è in fase di esecuzione. Cloud SQL sta scambiando gli endpoint di connessione e convertendo l'istanza verde nell'istanza di lettura e scrittura di produzione.
  • SWITCHOVER_COMPLETED: il cambio è stato completato correttamente. L'istanza verde è ora l'istanza di database di produzione attiva che gestisce il traffico di lettura e scrittura, mentre l'istanza blu viene conservata come istanza di lettura e scrittura autonoma fino a quando non elimini il deployment.

Best practice prima del cambio

  • Pianifica durante i periodi di traffico ridotto: anche se il tempo di inattività è minimo (in genere in secondi), avvia il passaggio durante i periodi di bassa attività di scrittura (ad esempio, ore non di punta o periodi di manutenzione in cui le query di scrittura al secondo [QPS] sono al minimo). In questo modo, il ritardo di replica viene ridotto al minimo e il rischio di transazioni annullate diminuisce.
  • Verifica il ritardo di replica: assicurati che il ritardo di replica sia minimo prima di avviare lo switchover. La descrizione di un deployment blu/verde non mostra il ritardo di replica e Cloud SQL non controlla il ritardo di replica prima dell'operazione di switchover. Tuttavia, durante l'esecuzione del workflow, il cambio non riesce se il ritardo di replica è troppo elevato. Per monitorare il ritardo di replica, controlla le metriche di Cloud Monitoring (ad esempio replica_lag) o controlla lo stato della replica direttamente nell'istanza verde. Per saperne di più, consulta Ritardo di replica.
  • Controlla le transazioni attive: assicurati che le operazioni DDL o le scritture batch a lunga esecuzione siano completate prima di avviare lo switchover.

Avvia un cambio

Avvia l'operazione di switchover utilizzando la console Google Cloud , gcloud CLI o l'API Cloud SQL Admin:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Nella scheda Stato del deployment blu/verde, fai clic su Dettagli per aprire la pagina Panoramica del deployment.
  4. Fai clic su Commuta deployment.
  5. Nella finestra di dialogo Differenze tra le impostazioni delle istanze, esamina le differenze tra le impostazioni delle istanze di origine e di destinazione, quindi fai clic su Continua per avviare il cambio.

gcloud

Esegui il comando blue-green-deployments switchover:

gcloud beta sql blue-green-deployments switchover DEPLOYMENT_NAME \
  --region=REGION \
  --async

Il completamento delle operazioni di cambio può richiedere diversi minuti. Potresti visualizzare un messaggio che indica che l'operazione sta richiedendo più tempo del previsto. Puoi ignorare questo messaggio o eseguire il comando gcloud sql operations wait per ignorarlo e attendere il completamento dell'operazione:

gcloud sql operations wait OPERATION_ID

Per controllare lo stato dell'operazione di switchover, esegui il comando gcloud sql operations describe:

gcloud sql operations describe OPERATION_ID

Sostituisci quanto segue:

  • DEPLOYMENT_NAME: il nome del tuo deployment blu/verde.
  • REGION: la regione Google Cloud in cui è stato creato il deployment.
  • OPERATION_ID: l'ID dell'operazione di switchover.

REST v1

Invia una richiesta POST al metodo blueGreenDeployments.switchover:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME:switchover

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud .
  • REGION: la regione Google Cloud in cui è stato creato il deployment.
  • DEPLOYMENT_NAME: il nome del tuo deployment blu/verde.

REST v1beta4

Invia una richiesta POST al metodo blueGreenDeployments.switchover:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME:switchover

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud .
  • REGION: la regione Google Cloud in cui è stato creato il deployment.
  • DEPLOYMENT_NAME: il nome del tuo deployment blu/verde.

Monitoraggio post-switchover

Al termine del cambio:

  1. Verifica che l'applicazione si riconnetta correttamente e che le operazioni del database di produzione riprendano.
  2. Monitora la velocità effettiva delle query, i log degli errori e lo stato della replica sulla nuova istanza di produzione.
  3. Mantieni intatta l'istanza autonoma blu durante la finestra di verifica iniziale post-upgrade. Dopo aver confermato la stabilità, elimina il deployment. Per saperne di più, consulta Elimina un deployment blu-verde.

Passaggi successivi