Realiza un cambio de implementación azul-verde

Después de probar y validar tu entorno verde, inicia un cambio para convertir el entorno verde en tu nuevo entorno de producción de lectura y escritura.

Antes de comenzar

Antes de iniciar un cambio, asegúrate de tener los permisos necesarios y de que tu implementación esté lista para el corte.

Roles y permisos requeridos

Para obtener los permisos que necesitas para ejecutar una conmutación por error, pídele a tu administrador que te otorgue el siguiente rol de IAM en tu proyecto:

  • Administrador de Cloud SQL (roles/cloudsql.admin)

Para los roles personalizados, asegúrate de tener los siguientes permisos:

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

Para obtener más información sobre los roles y permisos de IAM en Cloud SQL, consulta Roles y permisos.

Verificación previa al cambio

Antes de iniciar un cambio, verifica las siguientes condiciones:

  1. Estado de implementación: La implementación debe estar en el estado SWITCHOVER_READY.
  2. Validación de la carga de trabajo: Completa todas las pruebas y validaciones en la instancia de etapa de pruebas verde.
  3. Bajo retraso en la replicación: Asegúrate de que el retraso en la replicación entre las versiones azul y verde sea mínimo para reducir el tiempo de migración de sistemas.

Cómo funciona el cambio

Cuando inicias una conmutación, Cloud SQL realiza la siguiente secuencia automatizada:

  1. Validación previa a la conmutación: Antes de la operación de conmutación, Cloud SQL valida que la replicación no esté interrumpida y realiza una serie de verificaciones de configuración para garantizar que la implementación esté lista.
  2. Ejecución del flujo de trabajo de conmutación: Durante la ejecución del flujo de trabajo, Cloud SQL prepara las instancias para la migración de sistemas. Si el retraso de la replicación es demasiado alto o si una transacción activa bloquea la migración de sistemas, la operación de cambio falla y tu entorno de producción azul permanece en línea.
  3. Redireccionamiento del tráfico: Cloud SQL intercambia los extremos de conexión entre las instancias azul y verde.
  4. Conversión de rol: La instancia verde se convierte en la instancia activa de producción de lectura y escritura, y la instancia azul se convierte en una instancia independiente de lectura y escritura.

Durante el cambio, las conexiones de las aplicaciones experimentan una breve interrupción (generalmente, de segundos) antes de volver a conectarse automáticamente a la instancia de producción actualizada. El tiempo de inactividad durante la conmutación varía según la edición de Cloud SQL:

  • Edición Enterprise Plus de Cloud SQL: El tiempo de inactividad por conmutación suele ser inferior a un segundo.
  • Edición de Cloud SQL Enterprise: El tiempo de inactividad por conmutación suele ser inferior a 60 segundos, según la carga de trabajo y el retraso de la replicación. No se requiere ningún cambio en la configuración de la aplicación ni en la cadena de conexión.

Estados del ciclo de vida de la conmutación

Antes, durante y después de un cambio, la implementación pasa por los siguientes estados en el campo de respuesta state:

  • SWITCHOVER_READY: La replicación lógica de azul a verde está en buen estado y la implementación está lista para el cambio. El estado SWITCHOVER_READY solo depende de que la replicación esté en buen estado. Cloud SQL no evalúa el retraso de la replicación cuando establece este estado.
  • SWITCHOVER_NOT_READY: La implementación se aprovisionó, pero no se puede iniciar el cambio. Esto ocurre si la replicación lógica está interrumpida, pausada o detenida, o si se produjo un error en un nodo subyacente. Cloud SQL no evalúa el retraso de la replicación cuando establece este estado. Inspecciona errorDetail y resuelve el error antes de intentar la conmutación.
  • SWITCHOVER_IN_PROGRESS: El comando de cambio se está ejecutando de forma activa. Cloud SQL está intercambiando los extremos de conexión y convirtiendo la instancia de producción de lectura y escritura en verde.
  • SWITCHOVER_COMPLETED: La conmutación finalizó correctamente. La instancia verde ahora es tu instancia de base de datos de producción activa que entrega tráfico de lectura y escritura, y la instancia azul se conserva como una instancia independiente de lectura y escritura hasta que borres la implementación.

Prácticas recomendadas antes del cambio

  • Programa la conmutación durante los períodos de baja actividad: Si bien el tiempo de inactividad es mínimo (generalmente, en segundos), inicia la conmutación durante los períodos de baja actividad de escritura (por ejemplo, horas de baja actividad o períodos de mantenimiento cuando las consultas de escritura por segundo [QPS] son más bajas). Esto minimiza el retraso de la replicación y reduce el riesgo de que se cancelen las transacciones.
  • Verifica el retraso de la replicación: Asegúrate de que el retraso de la replicación sea mínimo antes de iniciar la conmutación por error. En la descripción de una implementación azul-verde no se muestra el retraso de replicación, y Cloud SQL no verifica el retraso de replicación antes de la operación de cambio. Sin embargo, durante la ejecución del flujo de trabajo, la conmutación por error falla si el retraso de la replicación es demasiado alto. Para supervisar el retraso de la replicación, consulta las métricas de Cloud Monitoring (como replica_lag) o inspecciona el estado de la replicación directamente en la instancia verde. Para obtener más información, consulta Retraso de replicación.
  • Verifica las transacciones activas: Asegúrate de que las operaciones de DDL de larga duración o las escrituras por lotes se completen antes de iniciar el cambio.

Cómo iniciar un cambio

Inicia la operación de cambio con la consola de Google Cloud , la CLI de gcloud o la API de Cloud SQL Admin:

Console

  1. En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En la tarjeta Estado de la implementación azul-verde, haz clic en Detalles para abrir la página Resumen de la implementación.
  4. Haz clic en Cambiar implementación.
  5. En el diálogo Instance Setting Differences, revisa las diferencias de configuración entre las instancias de Source y Target, y, luego, haz clic en Continue para iniciar la conmutación.

gcloud

Ejecuta el comando blue-green-deployments switchover:

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

Las operaciones de conmutación pueden tardar varios minutos en completarse. Es posible que veas un mensaje que indica que la operación está tardando más de lo esperado. Puedes ignorar este mensaje o ejecutar el comando gcloud sql operations wait para descartarlo y esperar a que se complete la operación:

gcloud sql operations wait OPERATION_ID

Para verificar el estado de la operación de cambio, ejecuta el comando gcloud sql operations describe:

gcloud sql operations describe OPERATION_ID

Reemplaza lo siguiente:

  • DEPLOYMENT_NAME: Es el nombre de tu implementación azul-verde.
  • REGION: Es la región de Google Cloud en la que se creó la implementación.
  • OPERATION_ID: Es el ID de la operación de cambio.

REST v1

Envía una solicitud POST al método blueGreenDeployments.switchover:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • REGION: Es la región de Google Cloud en la que se creó la implementación.
  • DEPLOYMENT_NAME: Es el nombre de tu implementación azul-verde.

REST v1beta4

Envía una solicitud POST al método blueGreenDeployments.switchover:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • REGION: Es la región de Google Cloud en la que se creó la implementación.
  • DEPLOYMENT_NAME: Es el nombre de tu implementación azul-verde.

Supervisión posterior al cambio

Después de que se complete el cambio, haz lo siguiente:

  1. Verifica que tu aplicación se vuelva a conectar correctamente y que se reanuden las operaciones de la base de datos de producción.
  2. Supervisa el rendimiento de las consultas, los registros de errores y el estado de la replicación en la nueva instancia de producción.
  3. Mantén intacta la instancia independiente azul durante el período de verificación posterior a la actualización inicial. Después de confirmar la estabilidad, borra la implementación. Para obtener más información, consulta Borra una implementación azul-verde.

¿Qué sigue?