En este documento, se describe cómo crear y preparar una implementación azul-verde de Cloud SQL para realizar actualizaciones de versiones principales o cambios de configuración.
Antes de comenzar
Para crear y preparar una implementación azul-verde, verifica que tengas los roles necesarios y que tu instancia de origen cumpla con los requisitos previos de implementación.
Roles y permisos requeridos
Para obtener los permisos que necesitas para crear y preparar una implementación azul-verde, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Editor de Cloud SQL (
roles/cloudsql.editor) - Administrador de Cloud SQL (
roles/cloudsql.admin)
Para los roles personalizados, asegúrate de tener los siguientes permisos:
cloudsql.blueGreenDeployments.createcloudsql.blueGreenDeployments.getcloudsql.instances.getcloudsql.instances.createcloudsql.operations.get
Para obtener más información sobre los roles y permisos de IAM en Cloud SQL, consulta Roles y permisos.
Requisitos previos de la instancia
Antes de crear una implementación azul-verde, verifica que tu instancia de producción (azul) cumpla con los siguientes requisitos:
- Motor de base de datos y versión: Tu instancia debe ejecutar Cloud SQL para MySQL versión 5.7, 8.0 u 8.4. La versión 8.0.18 no es compatible. En el caso de las actualizaciones de versiones principales, puedes actualizar de la versión 8.0 a la 8.4.
- Registro binario y copias de seguridad automáticas: Debes habilitar el registro binario y las copias de seguridad automáticas en la instancia azul para establecer una replicación lógica continua en el entorno verde.
- Estado de la instancia: La instancia azul debe estar en estado
RUNNINGsin operaciones en curso ni períodos de mantenimiento en conflicto. Funciones no admitidas: Verifica que tu instancia no use ninguna función que no se admita en las implementaciones azul-verde, incluidas las siguientes:
Versión de mantenimiento más reciente: Tu instancia debe ejecutar la versión de mantenimiento más reciente antes de que crees una implementación azul-verde. Para obtener más información, consulta Mantenimiento de autoservicio.
Arquitectura de red: Tu instancia debe usar la nueva arquitectura de red. No se admiten las instancias que usan la arquitectura de red anterior.
Cuando activas la creación de la implementación, Cloud SQL ejecuta automáticamente una serie de verificaciones previas automatizadas para validar la compatibilidad y las marcas de replicación. En el caso de las actualizaciones de versión principal, Cloud SQL también ejecuta la API de verificación previa a la actualización de versión principal en la instancia de origen para validar la preparación de la actualización antes de continuar con el flujo de trabajo. Si fallan las verificaciones previas, se detiene la creación de la implementación y se devuelve un error en el estado de la operación.
Crea una implementación azul-verde
Puedes crear una implementación azul-verde con intención para realizar una actualización de versión principal o sin intención para preparar actualizaciones de hardware o marcas.
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- En la sección Configuración, haz clic en Crear implementación azul-verde.
- En la página Create Blue Green Deployment, en la sección Deployment information, ingresa un nombre único para la implementación en el campo Deployment name.
- En la lista Caso de uso de la implementación, selecciona una de las siguientes
opciones:
- Opción A (actualización de versión principal): Para preparar y probar una actualización de versión principal en la instancia verde antes de la conmutación, selecciona Actualización de versión principal. En la lista Versión de la base de datos de destino, selecciona la versión de la base de datos de destino (por ejemplo, MySQL 8.4).
Cuando creas una implementación con intención, Cloud SQL ejecuta automáticamente la verificación previa de la actualización de versión principal como parte de la operación antes de crear la instancia verde. Como alternativa, te recomendamos que ejecutes la verificación previa de actualización de la versión principal antes de crear la implementación para identificar cualquier bloqueo de actualización.
- Opción B (predeterminada): Para crear un entorno de pruebas verde en la misma versión de la base de datos que la instancia de origen para probar los cambios de configuración o hardware, selecciona Predeterminado.
- Opción A (actualización de versión principal): Para preparar y probar una actualización de versión principal en la instancia verde antes de la conmutación, selecciona Actualización de versión principal. En la lista Versión de la base de datos de destino, selecciona la versión de la base de datos de destino (por ejemplo, MySQL 8.4).
- Haz clic en Crear.
gcloud
Para crear una implementación azul-verde con gcloud, ejecuta el comando blue-green-deployments create.
Opción A: Crear con intención (actualización de versión principal)
Cuando creas una implementación con intención, Cloud SQL ejecuta automáticamente la verificación previa a la actualización de la versión principal como parte de la operación antes de crear la instancia verde. Como alternativa, puedes ejecutar la verificación previa de la actualización de la versión principal en tu instancia azul antes de crear la implementación para identificar cualquier bloqueo de actualización.
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --target-database-version=TARGET_DATABASE_VERSION \ --region=REGION \ --async
Reemplaza lo siguiente:
- DEPLOYMENT_NAME: Es un nombre único para tu implementación.
- SOURCE_INSTANCE_ID: Es el nombre de tu instancia de origen azul.
- TARGET_DATABASE_VERSION: Es la versión de destino (por ejemplo,
MYSQL_8_4). - REGION: La Google Cloud región de tu instancia azul.
Opción B: Crear sin intención (hardware o configuración)
Omite la marca --target-database-version para aprovisionar un entorno verde con la misma versión de la base de datos que la instancia azul:
gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \ --source-instance=SOURCE_INSTANCE_ID \ --region=REGION \ --async
La creación de una implementación azul-verde tarda varios minutos en completarse, en especial cuando se realiza una actualización de versión principal. 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
Reemplaza OPERATION_ID por el ID de operación que mostró el comando o que se muestra en el mensaje.
REST v1
Para crear una implementación azul-verde con la API de Cloud SQL Admin, envía una solicitud POST al método blueGreenDeployments.create.
Opción A: Crear con intención (actualización de versión principal)
Cuando creas una implementación con intención, Cloud SQL ejecuta automáticamente la verificación previa a la actualización de la versión principal como parte de la operación antes de crear la instancia verde. Como alternativa, puedes ejecutar la verificación previa de la actualización de la versión principal en tu instancia azul antes de crear la implementación para identificar cualquier bloqueo de actualización.
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID",
"requestedConfig": {
"databaseVersion": "TARGET_DATABASE_VERSION"
}
}
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- REGION: La Google Cloud región de tu instancia azul.
- DEPLOYMENT_NAME: Es un nombre único para tu implementación.
- SOURCE_INSTANCE_ID: Es el nombre de tu instancia de origen azul.
- TARGET_DATABASE_VERSION: Es la versión de la base de datos de destino (por ejemplo,
MYSQL_8_4).
Opción B: Crear sin intención (hardware o configuración)
Omite el campo requestedConfig para aprovisionar un entorno verde en la misma versión de la base de datos que la instancia azul:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
REST v1beta4
Para crear una implementación azul-verde con la API de Cloud SQL Admin, envía una solicitud POST al método blueGreenDeployments.create.
Opción A: Crear con intención (actualización de versión principal)
Cuando creas una implementación con intención, Cloud SQL ejecuta automáticamente la verificación previa a la actualización de la versión principal como parte de la operación antes de crear la instancia verde. Como alternativa, puedes ejecutar la verificación previa de la actualización de la versión principal en tu instancia azul antes de crear la implementación para identificar cualquier bloqueo de actualización.
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"
}
}
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- REGION: La Google Cloud región de tu instancia azul.
- DEPLOYMENT_NAME: Es un nombre único para tu implementación.
- SOURCE_INSTANCE_ID: Es el nombre de tu instancia de origen azul.
- TARGET_DATABASE_VERSION: Es la versión de la base de datos de destino (por ejemplo,
MYSQL_8_4).
Opción B: Crear sin intención (hardware o configuración)
Omite el campo requestedConfig para aprovisionar un entorno verde en la misma versión de la base de datos que la instancia azul:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
locations/REGION/
blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
"sourceInstance": "SOURCE_INSTANCE_ID"
}
Supervisa el estado de la implementación
La creación es una operación de larga duración (LRO). Durante la etapa de pruebas, Cloud SQL aprovisiona la instancia verde, la actualiza (si se solicitó una actualización de versión principal) y comienza la replicación lógica continua.
Verifica el progreso y el estado de tu implementación azul-verde:
Console
-
En la consola de Google Cloud , ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Busca la tarjeta Estado de la implementación azul-verde para ver el estado de la implementación.
- Para ver las tareas de aprovisionamiento detalladas y el progreso, haz clic en Detalles para abrir la página Descripción general de la implementación.
gcloud
Para verificar el progreso y el estado de tu implementación azul-verde con gcloud, ejecuta el comando blue-green-deployments describe:
gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \ --region=REGION
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.
Para esperar a que se complete la operación de creación, ejecuta el comando gcloud sql
operations wait:
gcloud sql operations wait OPERATION_ID
Reemplaza OPERATION_ID por el ID de la operación de creación.
REST v1
Para verificar el progreso y el estado de tu implementación azul-verde con la API de Cloud SQL Admin, envía una solicitud GET al método blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
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
Para verificar el progreso y el estado de tu implementación azul-verde con la API de Cloud SQL Admin, envía una solicitud GET al método blueGreenDeployments.get:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/ locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
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.
En el resultado del comando o en la consola de Google Cloud , supervisa el campo state para hacer un seguimiento del ciclo de vida de la implementación:
PROVISIONING: Se está creando, actualizando (si se solicitó) y conectando la instancia verde a la replicación lógica continua.SWITCHOVER_READY: Se completó la replicación inicial y la replicación lógica continua está activa. La implementación está lista para la validación, las pruebas y el cambio.SWITCHOVER_NOT_READY: El servicio de implementación se aprovisionó, pero no se puede iniciar la conmutación (por ejemplo, si se interrumpió la replicación o se informó un problema enerrorDetail).
Para obtener más información sobre todas las fases del ciclo de vida de la implementación, consulta Ciclo de vida y estados de la implementación.
Espera hasta que el estado de la implementación cambie a SWITCHOVER_READY antes de describir la implementación, validar las cargas de trabajo de tu aplicación o iniciar un cambio.
¿Qué sigue?
- Describe y enumera las implementaciones azul-verde para inspeccionar el estado de la implementación y recuperar los detalles de la conexión.
- Cambia una implementación azul-verde para convertir la instancia verde en la instancia activa de producción de lectura y escritura.
- Borra una implementación azul-verde para cancelar la etapa de pruebas y quitar el entorno verde.