MySQL es una de las bases de datos relacionales de código abierto más populares del mundo. Uno de los motivos de su popularidad es la capacidad de alojar y administrar la base de datos de muchas maneras que cumplen con los requisitos de carga de trabajo de un usuario. Un usuario puede optar por configurar la base de datos para que sea autogestionada en el entorno local, autogestionada en máquinas virtuales en la nube, o bien por medio de la oferta completamente administrada de un proveedor de servicios en la nube. Este artículo se centra en la opción autoadministrada de MySQL y la solución completamente administrada, Cloud SQL para MySQL, proporcionada por Google Cloud. Se abordarán las ventajas y desventajas de cada una de las opciones.
La opción autoadministrada de MySQL significa que el usuario, en la mayoría de los casos, un administrador de la base de datos, es responsable de la mayoría de las actividades involucradas en la preparación, la instalación, la configuración y el mantenimiento de la base de datos, el sistema operativo (SO), las herramientas de redes, el almacenamiento, la instancia de máquina virtual (VM) y el hardware, que aloja la instancia de base de datos y el servidor. Algunas de estas tareas, como el hardware, la instancia de VM, el almacenamiento, las herramientas de redes y el sistema operativo, se pueden realizar con más facilidad si se aprovecha un proveedor de servicios en la nube, como Google Cloud. Sin importar si un usuario administra una base de datos de forma local o en la nube, será responsable de algunas tareas importantes de administración de bases de datos necesarias para que el sistema se ejecute sin problemas. Estas tareas se indican a continuación.
En el siguiente diagrama, se muestra la responsabilidad del usuario cuando elige la configuración autoadministrada. Si bien la administración automática en Google Cloud reduce algunas tareas relacionadas con el hardware, el procesamiento, las herramientas de redes y el almacenamiento, aún es responsabilidad del usuario administrar las capas restantes de la pila. El administrador de la base de datos y el desarrollador de aplicaciones aún deben dedicar tiempo, energía y recursos suficientes a la administración de MySQL.
Cloud SQL es un servicio de base de datos completamente administrado que ofrece facilidad de uso para la configuración, el mantenimiento, la gestión y la administración de bases de datos de MySQL, PostgreSQL y SQL Server en Google Cloud. Cloud SQL administra todos los aspectos del hardware, las herramientas de redes, el SO, la seguridad, la supervisión, el mantenimiento, la disponibilidad y el escalamiento de la base de datos de MySQL. Todas estas responsabilidades están ocultas para los usuarios, lo que les permite enfocarse en el desarrollo de aplicaciones y en entregar valor a sus clientes.
El siguiente diagrama es similar al diagrama anterior, que muestra las tareas involucradas en la administración de las distintas capas de la base de datos de MySQL. La única diferencia es que todas las tareas que Cloud SQL administra en nombre del usuario se ilustran en azul.
Además de administrar las tareas descritas con anterioridad, Cloud SQL ofrece diversas funciones y soluciones que no están disponibles de forma nativa en un entorno autoadministrado. A continuación, se mencionan algunas de las características principales que ofrece Cloud SQL.
Confiabilidad: Las copias de seguridad y la recuperación son las actividades más importantes de la administración de bases de datos. Cloud SQL ofrece copias de seguridad automatizadas y copias de seguridad on demand, que se pueden usar para restablecer la base de datos a un momento determinado en caso de daños, desastres o modificaciones de datos no deseadas.
Disponibilidad: Cloud SQL proporciona alta disponibilidad mediante la creación de instancias de varios servidores que alojan la base de datos en varias zonas con capacidad de conmutación por error automatizada para proporcionar alta disponibilidad en caso de que falle una VM o un centro de datos. Cloud SQL garantiza una disponibilidad superior al 99.95% en cualquier parte del mundo.
Además de la función de alta disponibilidad, Cloud SQL también ofrece un equipo de ingeniería de confiabilidad de sitios (SRE) las 24 horas, todos los días, que es responsable de garantizar la confiabilidad de las instancias de bases de datos de Cloud SQL para MySQL en Google Cloud.
Las réplicas de lectura entre regiones son otra característica que se puede usar como mecanismo de recuperación ante desastres en caso de fallas. Permite que un usuario active con rapidez la base de datos afectada en otro sitio (región) con un impacto mínimo en la empresa.
Escalabilidad: Cloud SQL ofrece la creación de réplicas de lectura de MySQL, como las instancias de solo lectura adicionales de MySQL, en la misma región o en regiones remotas que permiten el servicio de solicitudes desde las réplicas y la instancia principal, lo que proporciona un mejor rendimiento de lectura. Las réplicas de lectura también se pueden usar con fines de generación de informes y se pueden destruir después de que se satisfagan las necesidades del negocio.
Cloud SQL permite escalar verticalmente los recursos (CPU, memoria y almacenamiento) y reducir la escala de los recursos en la instancia de MySQL con un tiempo de inactividad muy mínimo. Mientras que, en el caso de la configuración autogestionada, estas actividades complicadas requieren un gran nivel de esfuerzo, experiencia y planificación.
Seguridad: Los servidores de bases de datos de Cloud SQL para MySQL se encuentran en centros de datos seguros de Google Cloud, lo que garantiza el nivel más alto de seguridad. Además, Google Cloud ofrece conectividad privada con la nube privada virtual y acceso a la red controlado por el usuario con protección de firewall, lo que garantiza que los servidores de la base de datos de usuarios estén fuera del alcance de actores maliciosos.
Otro aspecto de la seguridad es el cumplimiento de las normas de seguridad. Cloud SQL cumple con muchas reglamentaciones reconocidas, como SSAE 16, ISO 27001, HIPAA y PCI DSS.
Cloud SQL ofrece la capacidad de administrar usuarios y su acceso a la base de datos a través de la integración de IAM. Esta integración administra la autorización y autenticación de los usuarios de Google Cloud y proporciona acceso detallado a recursos específicos de Google Cloud, lo que evita el acceso no autorizado a la base de datos. Además, Cloud SQL facilita el control de identidades y accesos, ya que proporciona roles predefinidos diseñados para controlar el acceso a tus recursos de Cloud SQL.
Otra función de seguridad de Cloud SQL es la encriptación de datos en reposo y en tránsito, que garantiza que ningún usuario no autorizado pueda acceder a datos de usuarios.
Cloud SQL ofrece una función de validación de contraseñas para usuarios de bases de datos, que les permite a los clientes definir la política de contraseñas en cuanto a la complejidad, la longitud mínima, el intervalo de cambio de contraseña y el uso del nombre de usuario en la contraseña a nivel de instancia. Los clientes también pueden definir la política para los días de vencimiento de la contraseña, la cantidad de intentos fallidos y los requisitos de cambio de contraseñas anteriores a nivel de cada usuario. Estas características de Cloud SQL proporcionan prácticas recomendadas de cumplimiento de seguridad y reducen el riesgo de acceso no autorizado a los datos críticos.
Cloud SQL también proporciona una forma de auditar acciones y operaciones en la base de datos de MySQL con un complemento de registro de auditoría. El registro de auditoría proporciona estadísticas sobre quién hizo qué acción, en qué objeto y cuándo. La auditoría de la base de datos te permite realizar un seguimiento de las acciones específicas de los usuarios en la base de datos, como las actualizaciones de tablas, las consultas de lectura, las asignaciones de privilegios de usuario y otras.
Observabilidad: Cloud SQL ofrece varias soluciones de supervisión y tiene un listado cada vez más grande de métricas listas para usar, que proporcionan estadísticas sobre el estado de la base de datos. Los usuarios pueden usar las métricas para crear alertas a fin de mantener a los administradores al tanto del estado de la base de datos.
Cloud SQL también proporciona funciones como estadísticas de consultas y recomendadores, lo que permite a los usuarios identificar y solucionar los cuellos de botella de rendimiento de una consulta o una carga de trabajo. Estas características son difíciles de replicar en un entorno de MySQL autoadministrado.
Integración: Cloud SQL ofrece conectividad de red simple e integración con otros servicios en Google Cloud, como Google Kubernetes Engine, Compute Engine y Cloud Run, que facilitan el desarrollo de soluciones profundamente integradas. Cloud SQL también ofrece integración nativa con BigQuery y Looker, que se pueden usar para el procesamiento analítico de los datos presentes en Cloud SQL.
Aplicación de parches: Como servicio administrado, Cloud SQL actualiza de forma automática las instancias para garantizar que el hardware subyacente y la operación del sistema sean confiables, eficaces, seguros y estén actualizados. La mayoría de estas actualizaciones se realizan mientras la instancia de Cloud SQL está en funcionamiento. Sin embargo, algunas actualizaciones del sistema pueden requerir una breve interrupción del servicio. Los usuarios pueden definir períodos de mantenimiento para la actividad de actualización.
Actualizaciones de versión: Cloud SQL también proporciona un proceso automatizado de actualización de la versión (MySQL) de la base de datos. Los usuarios también pueden actualizar la versión principal mediante la migración de los datos a una instancia de una versión superior.
Ventajas
Desventajas
Ventajas
Desventajas
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.