Questo documento descrive come creare e preparare un deployment blue-green di Cloud SQL per eseguire upgrade delle versioni principali o modifiche alla configurazione.
Prima di iniziare
Per creare e preparare un deployment blu/verde, verifica di disporre dei ruoli necessari e che l'istanza di origine soddisfi i prerequisiti per il deployment.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per creare e preparare un deployment blue-green, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
- Editor Cloud SQL (
roles/cloudsql.editor) - Amministratore Cloud SQL (
roles/cloudsql.admin)
Per i ruoli personalizzati, assicurati di disporre delle seguenti autorizzazioni:
cloudsql.blueGreenDeployments.createcloudsql.blueGreenDeployments.getcloudsql.instances.getcloudsql.instances.createcloudsql.operations.get
Per saperne di più sui ruoli e sulle autorizzazioni IAM in Cloud SQL, consulta Ruoli e autorizzazioni.
Prerequisiti per l'istanza
Prima di creare un deployment blu/verde, verifica che l'istanza di produzione (blue) soddisfi i seguenti requisiti:
- Motore e versione del database:l'istanza deve eseguire Cloud SQL per MySQL versione 5.7, 8.0 o 8.4. La versione 8.0.18 non è supportata. Per gli upgrade delle versioni principali, puoi eseguire l'upgrade dalla versione 8.0 alla 8.4.
- Logging binario e backup automatici:devi abilitare il logging binario e i backup automatici nell'istanza blu per stabilire la replica logica continua nell'ambiente verde.
- Stato dell'istanza:l'istanza blu deve essere nello stato
RUNNINGsenza operazioni in corso o periodi di manutenzione in conflitto. Funzionalità non supportate:verifica che la tua istanza non utilizzi funzionalità non supportate nei deployment blu/verdi, tra cui:
Ultima versione di manutenzione:l'istanza deve eseguire l'ultima versione di manutenzione prima di creare un deployment blu/verde. Per saperne di più, consulta Manutenzione self-service.
Architettura di rete:la tua istanza deve utilizzare la nuova architettura di rete. Le istanze che utilizzano la vecchia architettura di rete non sono supportate.
Quando attivi la creazione del deployment, Cloud SQL esegue automaticamente una serie di controlli preliminari automatizzati per convalidare la compatibilità della replica e i flag. Per gli upgrade alla versione principale, Cloud SQL esegue anche l'API di controllo preliminare dell'upgrade alla versione principale sull'istanza di origine per convalidare l'idoneità all'upgrade prima di procedere con il workflow. Se i controlli preliminari non vanno a buon fine, la creazione del deployment si interrompe e viene restituito un errore nello stato dell'operazione.
Crea un deployment blu/verde
Puoi creare un deployment blu/verde con intento per eseguire un upgrade della versione principale o senza intento per preparare aggiornamenti hardware o di flag.
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 sezione Configurazione, fai clic su Crea deployment blue/green.
- Nella pagina Crea deployment blu/verde, nella sezione Informazioni sul deployment, inserisci un nome univoco per il deployment nel campo Nome deployment.
- Nell'elenco Caso d'uso del deployment, seleziona una delle seguenti
opzioni:
- Opzione A (upgrade della versione principale): per eseguire lo staging e testare un upgrade della versione principale sull'istanza verde prima del trasferimento, seleziona Upgrade della versione principale. Nell'elenco Versione database di destinazione, seleziona la versione del database di destinazione (ad esempio,
MySQL 8.4).
Quando crei un deployment con intent, Cloud SQL esegue automaticamente il controllo preliminare dell'upgrade alla versione principale nell'ambito dell'operazione prima di creare l'istanza verde. In alternativa, ti consigliamo di eseguire il controllo preliminare dell'upgrade alla versione principale prima di creare il deployment per identificare eventuali blocchi dell'upgrade.
- Opzione B (predefinita): per creare un ambiente di staging verde con la stessa versione del database dell'istanza di origine per testare la configurazione o le modifiche hardware, seleziona Predefinita.
- Opzione A (upgrade della versione principale): per eseguire lo staging e testare un upgrade della versione principale sull'istanza verde prima del trasferimento, seleziona Upgrade della versione principale. Nell'elenco Versione database di destinazione, seleziona la versione del database di destinazione (ad esempio,
MySQL 8.4).
- Fai clic su Crea.
gcloud
Per creare un deployment blu/verde utilizzando gcloud, esegui il comando
blue-green-deployments create.
Opzione A: crea con intenzione (upgrade della versione principale)
Quando crei un deployment con intent, Cloud SQL esegue automaticamente il controllo preliminare dell'upgrade alla versione principale nell'ambito dell'operazione prima di creare l'istanza verde. In alternativa, puoi eseguire il controllo preliminare dell'upgrade alla versione principale sull'istanza blu prima di creare il deployment per identificare eventuali blocchi dell'upgrade.
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --target-database-version=TARGET_DATABASE_VERSION \ --region=REGION \ --async
Sostituisci quanto segue:
- DEPLOYMENT_NAME: un nome univoco per il deployment.
- SOURCE_INSTANCE_ID: il nome dell'istanza di origine blu.
- TARGET_DATABASE_VERSION: la versione di destinazione (ad esempio,
MYSQL_8_4). - REGION: la Google Cloud regione dell'istanza blu.
Opzione B: crea senza intento (hardware o configurazione)
Ometti il flag --target-database-version per eseguire il provisioning di un ambiente verde con la stessa versione del database dell'istanza blu:
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --region=REGION \ --async
La creazione di un deployment blu/verde richiede diversi minuti,
soprattutto quando viene eseguito un upgrade della versione principale. 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 chiudere il messaggio e attendere il completamento dell'operazione:
gcloud sql operations wait OPERATION_ID
Sostituisci OPERATION_ID con l'ID operazione restituito dal comando o visualizzato nel messaggio.
REST v1
Per creare un deployment blu/verde utilizzando l'API Cloud SQL Admin, invia una richiesta POST al metodo blueGreenDeployments.create.
Opzione A: crea con intenzione (upgrade della versione principale)
Quando crei un deployment con intent, Cloud SQL esegue automaticamente il controllo preliminare dell'upgrade alla versione principale nell'ambito dell'operazione prima di creare l'istanza verde. In alternativa, puoi eseguire il controllo preliminare dell'upgrade alla versione principale sull'istanza blu prima di creare il deployment per identificare eventuali blocchi dell'upgrade.
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID",
"requestedConfig": {
"databaseVersion": "TARGET_DATABASE_VERSION"
}
}
Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- REGION: la Google Cloud regione dell'istanza blu.
- DEPLOYMENT_NAME: un nome univoco per il deployment.
- SOURCE_INSTANCE_ID: il nome dell'istanza di origine blu.
- TARGET_DATABASE_VERSION: la versione del database di destinazione (ad esempio
MYSQL_8_4).
Opzione B: crea senza intento (hardware o configurazione)
Ometti il campo requestedConfig per eseguire il provisioning di un ambiente verde
con la stessa versione del database dell'istanza blu:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
REST v1beta4
Per creare un deployment blu/verde utilizzando l'API Cloud SQL Admin, invia una richiesta POST al metodo blueGreenDeployments.create.
Opzione A: crea con intenzione (upgrade della versione principale)
Quando crei un deployment con intent, Cloud SQL esegue automaticamente il controllo preliminare dell'upgrade alla versione principale nell'ambito dell'operazione prima di creare l'istanza verde. In alternativa, puoi eseguire il controllo preliminare dell'upgrade alla versione principale sull'istanza blu prima di creare il deployment per identificare eventuali blocchi dell'upgrade.
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID",
"requestedConfig": {
"databaseVersion": "TARGET_DATABASE_VERSION"
}
}
Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- REGION: la Google Cloud regione dell'istanza blu.
- DEPLOYMENT_NAME: un nome univoco per il deployment.
- SOURCE_INSTANCE_ID: il nome dell'istanza di origine blu.
- TARGET_DATABASE_VERSION: la versione del database di destinazione (ad esempio
MYSQL_8_4).
Opzione B: crea senza intento (hardware o configurazione)
Ometti il campo requestedConfig per eseguire il provisioning di un ambiente verde
con la stessa versione del database dell'istanza blu:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
Monitorare lo stato del deployment
La creazione è un'operazione a lunga esecuzione (LRO). Durante lo staging, Cloud SQL esegue il provisioning dell'istanza verde, la aggiorna (se è stato richiesto un upgrade della versione principale) e avvia la replica logica continua.
Controlla l'avanzamento e lo stato del deployment blu/verde:
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.
- Individua la scheda Stato del deployment blu/verde per visualizzare lo stato del deployment.
- Per visualizzare le attività di provisioning dettagliate e lo stato di avanzamento, fai clic su Dettagli per aprire la pagina Panoramica del deployment.
gcloud
Per controllare l'avanzamento e lo stato del deployment blu/verde utilizzando
gcloud, esegui il comando blue-green-deployments describe:
gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \ --region=REGION
Sostituisci quanto segue:
- DEPLOYMENT_NAME: il nome del deployment blu/verde.
- REGION: la regione Google Cloud in cui è stato creato il deployment.
Per attendere il completamento dell'operazione di creazione, esegui il
comando gcloud sql
operations wait:
gcloud sql operations wait OPERATION_ID
Sostituisci OPERATION_ID con l'ID dell'operazione di creazione.
REST v1
Per controllare l'avanzamento e lo stato del deployment blu/verde utilizzando l'API Cloud SQL Admin, invia una richiesta GET al metodo blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- REGION: la regione Google Cloud in cui è stato creato il deployment.
- DEPLOYMENT_NAME: il nome del deployment blu/verde.
REST v1beta4
Per controllare l'avanzamento e lo stato del deployment blu/verde utilizzando l'API Cloud SQL Admin, invia una richiesta GET al metodo blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
Sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- REGION: la regione Google Cloud in cui è stato creato il deployment.
- DEPLOYMENT_NAME: il nome del deployment blu/verde.
Nell'output comando o nella console Google Cloud , monitora il campo state per
monitorare il ciclo di vita del deployment:
PROVISIONING: l'istanza verde viene creata, aggiornata (se richiesto) e connessa alla replica logica continua.SWITCHOVER_READY: la replica iniziale è stata completata e la replica logica continua è attiva. Il deployment è pronto per la convalida, il test e il trasferimento.SWITCHOVER_NOT_READY: il deployment viene eseguito il provisioning, ma il cambio non può essere avviato (ad esempio, se la replica è interrotta o viene segnalato un problema inerrorDetail).
Per saperne di più su tutte le fasi del ciclo di vita del deployment, vedi Ciclo di vita del deployment e stati.
Attendi che lo stato del deployment diventi SWITCHOVER_READY prima di
procedere con la descrizione del deployment, con la convalida dei carichi di lavoro dell'applicazione o
con l'avvio di un cambio di ruolo.
Passaggi successivi
- Descrivi ed elenca i deployment blu/verde per esaminare lo stato del deployment e recuperare i dettagli della connessione.
- Esegui il passaggio di un deployment blu/verde per convertire l'istanza verde nell'istanza di lettura e scrittura di produzione attiva.
- Elimina un deployment blu/verde per annullare lo staging e rimuovere l'ambiente verde.