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.switchovercloudsql.blueGreenDeployments.getcloudsql.instances.switchovercloudsql.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:
- Stato del deployment: il deployment deve essere nello stato
SWITCHOVER_READY. - Convalida del workload: completa tutti i test e la convalida sull'istanza di gestione temporanea verde.
- 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:
- 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.
- 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.
- Reindirizzamento del traffico: Cloud SQL scambia gli endpoint di connessione tra le istanze blu e verde.
- 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 statoSWITCHOVER_READYdipende 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. EsaminaerrorDetaile 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
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nella scheda Stato del deployment blu/verde, fai clic su Dettagli per aprire la pagina Panoramica del deployment.
- Fai clic su Commuta deployment.
- 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:
- Verifica che l'applicazione si riconnetta correttamente e che le operazioni del database di produzione riprendano.
- Monitora la velocità effettiva delle query, i log degli errori e lo stato della replica sulla nuova istanza di produzione.
- 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
- Elimina un deployment blu/verde per rimuovere i metadati del deployment ed eliminare l'istanza blu precedente.
- Scopri come monitorare le istanze.
- Scopri di più su backup e ripristino.