Comparación entre MySQL autoadministrado y Cloud SQL para MySQL

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.

MySQL autoadministrado

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.

  • Disponibilidad: Los componentes de hardware y software están destinados a fallar. Sin embargo, la responsabilidad de diseñar el sistema de modo que sea tolerante a las fallas de hardware y software y garantice la disponibilidad continua de la base de datos, el servidor y la aplicación reside en la usuario.  
  • Mantenimiento de bases de datos: En la opción de MySQL autoadministrada, los usuarios deben mantener las diferentes capas de la pila de aplicaciones actualizadas con las últimas versiones del software y tomar decisiones sobre la asistencia del final del ciclo de vida, las versiones no compatibles o heredadas del hardware, el sistema operativo y otro software. Además, los usuarios deben instalar parches de software, SO y MySQL con regularidad mientras mantienen la base de datos en funcionamiento sin interrupciones importantes.
  • Escalabilidad: A medida que el uso de la aplicación aumenta con el tiempo, la necesidad de mejorar el rendimiento de la base de datos aumenta. De manera similar, para admitir una gran carga de trabajo o base de clientes, los recursos de hardware deben escalarse verticalmente u horizontalmente. Esta responsabilidad recae en el usuario en el caso de MySQL autoadministrado. El escalamiento de los recursos de hardware en un entorno local es una actividad que consume mucho tiempo, es compleja y a veces genera un tiempo de inactividad del sistema.
  • Seguridad: En el último tiempo, la seguridad se ha convertido en el aspecto más importante que abarca varias capas del sistema de base de datos, comenzando desde la protección física del hardware para configurar firewalls de redes, asegurar conexiones de bases de datos y mucho más. Se trata de actividades complejas que requieren un esfuerzo significativo y una experiencia especializada en casos de configuración de administración automática.
  • Supervisión: Además de la configuración, la instalación y la configuración de MySQL, los usuarios también deberán preocuparse por supervisar varios componentes de todas las capas de la pila, como la supervisión a nivel del hardware, el SO, MySQL y la ejecución de medidas correctivas en caso de fallas.

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.

Imagen que muestra todas las responsabilidades de un administrador en el hosting de bases de datos autoadministradas

¿Qué es Cloud SQL para 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.

Imagen del hosting de bases de datos completamente administradas

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.  

¿Cómo crear una instancia de base de datos MySQL en Cloud SQL para MySQL?

Ventajas y desventajas de MySQL autoadministrado

Ventajas

  1. Capacidad de usar cualquier bifurcación de MySQL del ecosistema de MySQL, como MariaDB o Percona, para configurar MySQL.
  2. Flexibilidad para configurar MySQL, ya que los usuarios tienen control total de la instancia, los recursos y el sistema operativo. Además, los usuarios pueden usar el SO que deseen, configurar el SO como quieran y configurar MySQL según sus necesidades, sin limitaciones.
  3. Los usuarios no están restringidos por las limitaciones de Cloud SQL, como el tamaño máximo de almacenamiento de 64 TB. Los usuarios pueden exceder el límite de almacenamiento de 64 TB y usar una infraestructura de procesamiento mucho mayor para alojar MySQL.
  4. Los usuarios tienen acceso completo a la instancia de MySQL, incluidos los privilegios SUPER, y acceso completo al sistema operativo, incluidos los permisos sudo.
  5. Los usuarios pueden configurar topologías de alta disponibilidad y replicación según sus requisitos, incluso si no son compatibles con Cloud SQL.  

Desventajas

  1. Los usuarios son responsables de administrar la infraestructura de hardware compleja, las herramientas de redes y las operaciones del centro de datos en un entorno local. Incluso cuando MySQL se autogestiona en la nube, los usuarios deben lidiar con la complejidad de la preparación, la configuración de instancias y discos de persistencia, y el diseño y la administración de clústeres de alta disponibilidad, la seguridad, la recuperación ante desastres y la escalabilidad.
  2. Mantener las versiones de la base de datos, las versiones de los sistemas operativos y los sistemas de hardware actualizados con los parches más recientes para evitar errores y vulnerabilidades de seguridad puede implicar costos, recursos, complejidad y tiempos de inactividad significativos.
  3. Además de la configuración de la base de datos, los usuarios deben configurar y administrar la seguridad en todas las capas, no solo en la base de datos. Por ejemplo, garantizar que las conexiones se encripten en tránsito mediante SSL y mantener los certificados actualizados, encriptar los datos en reposo y administrar el acceso de los usuarios y las cuentas de servicio a las bases de datos.
  4. Para garantizar la disponibilidad de la instancia, se deben supervisar varias capas del sistema de la base de datos en busca de fallas. Los usuarios deben invertir recursos adicionales en la configuración de las herramientas de supervisión. Las alertas deben definirse para notificar en caso de errores, y se deben tomar medidas correctivas a fin de corregir cualquier error.
  5. Los usuarios deben dedicar una gran cantidad de tiempo, recursos y esfuerzo a la configuración y administración de las bases de datos, en lugar de enfocarse en el desarrollo de la aplicación.

Ventajas y desventajas de Cloud SQL para MySQL

Ventajas

  1. Cloud SQL para MySQL proporciona una interfaz fácil de usar a fin de crear, administrar, acceder y supervisar la base de datos de MySQL para ingenieros y desarrolladores, incluso para aquellos sin experiencia en bases de datos. Para comenzar con rapidez, Cloud SQL también ofrece una manera fácil de migrar bases de datos de MySQL existentes desde el entorno local o desde otras nubes a Cloud SQL para MySQL de Google Cloud.
  2. Cloud SQL para MySQL ofrece un conjunto amplio de funciones necesarias a fin de alojar bases de datos de MySQL para aplicaciones diversas, desde bases de datos para micrositios hasta aplicaciones empresariales sumamente importantes y críticas, aplicaciones de videojuegos y datos para casos prácticos de estadísticas. Con estas funciones enriquecidas, los usuarios pueden compilar aplicaciones altamente confiables y escalables.
  3. Cloud SQL comparte la responsabilidad de la seguridad con los usuarios. Cloud SQL garantiza la seguridad en niveles más bajos de infraestructura y red, lo que permite a los usuarios enfocarse en configurar y desarrollar aplicaciones de nivel superior. 
  4. Cloud SQL proporciona varias funciones de seguridad, como complementos de validación de contraseñas y registros de auditoría que no están disponibles inmediatamente en las versiones de la comunidad y son complejos de implementar en entornos autoadministrados. Cloud SQL simplifica estas funciones y las pone a disposición de los usuarios.
  5. Cloud SQL ofrece varias formas de interactuar con la base de datos. Los usuarios pueden usar la GUI, la CLI y la API para personalizar las operaciones según sus necesidades con un esfuerzo mínimo.
  6. Cloud SQL proporciona una integración sencilla a otras soluciones y productos, como BigQuery, que permite el desarrollo de soluciones analíticas con un esfuerzo mínimo.
  7. Cloud SQL se hace cargo de la confiabilidad de la instancia de la base de datos gracias a su infraestructura con alta disponibilidad, sus soluciones autorreparables y, lo que es más importante, los equipos de SRE disponibles las 24 horas, todos los días.
  8. Los usuarios invierten menos tiempo y esfuerzo en las tareas operativas de la base de datos y, en cambio, pueden enfocarse en el desarrollo de aplicaciones y, por lo tanto, aumentar su capacidad para ofrecer soluciones que satisfagan sus necesidades empresariales de manera más eficiente.
  9. Además de ayudar a administrar la base de datos, Cloud SQL proporciona sugerencias y recomendaciones para mejorar el rendimiento de las bases de datos mediante funciones como las estadísticas de consultas y las recomendaciones. Estas funciones hacen que el hosting y la administración de la base de datos en la nube sean simples, seguros y rentables.
  10. Cloud SQL ofrece servicios de atención al cliente a fin de simplificar y optimizar la asistencia que se requiere para cualquier problema o solicitud que se relacione con las bases de datos.

Desventajas

  1. Las bifurcaciones de MySQL del ecosistema MySQL como MariaDB y Percona no son compatibles con Cloud SQL. 
  2. Algunas funciones de MySQL no son compatibles. Obtén más información acerca de las características no admitidas.
  3. Los tipos de máquinas con hasta 624 GB de RAM y 96 CPU son compatibles con Cloud SQL. Se admite un almacenamiento de hasta 64 TB. Si la base de datos necesita más capacidad, una alternativa autoadministrada sería la única opción actualmente.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud