Blue-Green deployments en AWS RDS
En el dinámico mundo de la gestión de bases de datos, mantenerse al día es esencial para garantizar un rendimiento óptimo, una seguridad robusta y el acceso a las últimas características y mejoras. Una de las actualizaciones más esperadas y significativas en este ámbito es la transición de MySQL 5.7 a MySQL 8. Esta actualización no solo brinda mejoras de rendimiento, sino que también introduce una serie de nuevas funciones y características que pueden transformar la forma en que su aplicación interactúa con los datos.
En este artículo, explicaremos un enfoque moderno y seguro para llevar a cabo la actualización de MySQL en AWS RDS: el despliegue "Blue-Green". Esta metodología se ha convertido en un estándar en la administración de sistemas y DevOps debido a su capacidad para minimizar el riesgo y el tiempo de inactividad durante las actualizaciones de software.
Comprendiendo el Despliegue "Blue-Green"
Antes de sumergirnos en los detalles, es importante comprender el concepto detrás de un despliegue "Blue-Green". En pocas palabras, se trata de mantener dos entornos separados: uno en producción (entorno "Blue") y otro en preparación (entorno "Green"). En el proceso de paso a producción del entorno "Green", se realizan de manera automática las operaciones que permiten redirigir el tráfico al nuevo cluster, permitiendo una transición fluida que minimiza el impacto y la pérdida de servicio.
El Proceso en Acción
Imaginemos que tenemos una base de datos RDS MySQL 5.7 Community que deseamos actualizar a MySQL 8. A continuación, describiremos los pasos necesarios para llevar a cabo esta transición mediante un despliegue "Blue-Green".
Antes de comenzar, es importante resaltar que los backups han de estar habilitados en la instancia RDS sobre la cual queremos realizar el Blue/Green Deployment, no sólo por seguridad nuestra a la hora de realizar el proceso de actualización, si no que es un requisito de dicho proceso.
Para crear un despliegue Blue-Green seleccione la base de datos, haga clic en "Actions" y elija "Create Blue/Green Deployment".
En la siguiente ventana encontrarás las configuraciones necesarias para el despliegue Blue-Green, incluida la elección de la versión de MySQL 8 a la que se actualizará, el parameter group a utilizar, etc.
El despliegue creará una nueva base de datos que será clonada de la versión anterior, y establecerá una replicación de las transacciones realizadas en el entorno Blue al Green.
Una vez que el despliegue esté listo,
seleccionamos el Blue/Green Deployment donde podemos revisar las configuraciones para contrastar los cambios entre los entornos "blue" y "green".
Una vez contrastados y ajustados los cambios a aplicar entre los distintos entornos, conviene utilizar el Endpoint del entorno "Green" para realizar pruebas exhaustivas antes de realizar el cambio de servicio.
Una vez validado el entorno "green", realice el "switch over" de los entornos. Seleccionamos el despliegue Blue-Green creado y vamos a "Actions" > "Switch over".
Veremos antes de confirmar el paso las configuraciones de ambos entornos una vez más para poder contrastar cambios y verificarlos antes de proceder finalmente con el Switch Over.
El "switch over" transferirá controladamente el servicio al nuevo entorno, replicando todas las transacciones del entorno "blue" al "green".
Por último y no menos importante, una vez que el "switch over" se haya realizado con éxito, elimine los recursos obsoletos, incluyendo la base de datos antigua y el recurso del despliegue "Blue-Green".
Conclusión
Este enfoque "Blue-Green" ofrece una forma segura y eficiente de llevar a cabo la actualización de MySQL en AWS RDS. Minimiza el riesgo y el tiempo de inactividad, asegurando que su base de datos esté siempre actualizada y lista para las demandas de su aplicación.
Como resultado, su servicio puede evolucionar de manera continua sin interrupciones innecesarias.