Simplificar la gestión de las Bases de Datos con Nutanix Database Service (NDB)
By Sergio Almonacid
Nutanix NDB, gestor de bases de datos, es un paquete de software que automatiza y simplifica la gestión de las bases de datos. Sus principales servicios son el provisionamiento automático de bases de datos mediante operaciones en 1-Click así como todos los procesos de generación de copias secundarias. Nutanix NDB permite que los DBAs puedan provisionar, clonar, refrescar y realizar copias de seguridad de sus BBDDs de una forma muy sencilla.
Adicionalmente a los servicios anteriores, NDB proporciona servicios aplicación de parches a las bases de datos, actualizaciones, así como copias de seguridad de las bases de datos.
El servicio NDB soporta los siguientes motores de bases de datos: Oracle, SQL Server, MySQL, PostgreSQL, MariaDB, MongoDB y SAP HANA. Todos ellos se ejecutan sobre una plataforma común escalable y sin puntos de fallo.
Proporcionamos una solución que permite gestionar todas las bases de datos anteriores en un entorno multicluster, tanto sobre Cloud privada como Cloud pública (en cloud pública el servicio se ejecuta sobre hardware baremetal en AWS, y dentro de poco en Azure).
A nivel de gestión simplificamos de forma muy importante la administración de las bases de datos liberando a los DBAs de tareas tediosas (gestión de copias, refrescos, parcheado, provisión y backup).
Otro de los puntos importantes que aporta el servicio es que proporcionamos la misma agilidad que proporcionan servicios gestionados de bases de datos en nube pública como los que proporcionan, por ejemplo, AWS RDS o Azure. Sin embargo, aportamos una serie de ventajas sobre los servicios de Cloud pública:
- Realizando un ejercicio de TCO a 4 o 5 años podremos verificar que el coste es mucho más bajo.
- Disponemos servicios que permiten automatizar todos los procesos de gestión de copias secundarias, así como sus refrescos.
- Permitimos personalizar las imágenes de nuestras BBDD estandarizándolas y personalizándolas de acuerdo con los requerimientos de nuestra compañía.
Repasemos los principales puntos por los que una organización debería consumir servicios de bases de datos mediante una plataforma como NDB:
1. Automatizamos los procesos de provisión de bases de datos
En primer lugar, veremos un ejemplo de cómo funciona el proceso de provisión de bases de datos de una forma tradicional y posteriormente veremos 2 ejemplos mediante la utilización del servicio NDB:
Provisión de bases de datos de forma tradicional
En las grandes organizaciones o en empresas que proporcionan servicios de outsourcing IT a otros clientes nos solemos encontrar que las operaciones de los servicios están basadas en torno a centros técnicos por especialidades tal como puede observarse en la siguiente figura.
En este tipo de servicios cuando un cliente interno requiere una nueva base de datos se suele asignar un responsable de provisión que va realizando peticiones a los distintos centros técnicos hasta que finaliza el proceso de provisión del servicio (por ejemplo, un entorno Oracle RAC). Este proceso, en organizaciones grandes, puede tardar semanas o incluso meses hasta que se ha provisionado completamente.
Este tipo de modelo operativo introduce fricciones en los departamentos técnicos (cuando hay urgencia por provisionar este entorno) y no escala a medida que incrementa el número de clientes internos. Aunque incluyamos más recursos a los centros técnicos seguiremos teniendo falta de agilidad en el servicio.
Provisión con NDB totalmente automatizada
Finalmente, tenemos un modelo en el que la totalidad del proceso se encuentra totalmente automatizado mediante una herramienta, como, por ejemplo, un portal de autoprovisión o una herramienta como ServiceNOW.
En estos casos vamos a modelos en los que eliminamos todos los retrasos atribuibles a las personas ya que en el proceso de provisión se encuentra totalmente automatizado en una modalidad de servicio Cloud con mecanismos de RBAC. Estos servicios pueden provisionarse de forma automática como parte de portales de auto-provisión con llamadas a la API del servicio de NDB o bien forma parte de procesos de pipeline de CI/CD de un equipo de desarrollo.
2. Simplificamos la generación de los entornos de bases de datos secundarios.
A continuación, detallamos 2 ejemplos de donde podemos obtener ahorros para la generación de entornos secundarios:
Generación de copias secundarias: Consideremos un cliente con 3 bases de datos muy importantes para la organización, de 20 TB cada una. Este cliente tiene la necesidad de replicar esas bases de datos (posiblemente aplicando también procesos de masking) para generar 6 o 7 entornos secundarios. El resultado de esta operativa es gestionar unos 20 servidores de bases de datos que tenemos que refrescar de forma periódica. ¿Cuál es el coste real de realizar esta operativa dentro de una organización? El proceso de clonado/refresco de esas copias en un entorno tradicional requiere un día completo de trabajo (en caso de que no surja ningún problema). Realizar este tipo de operativas con una infraestructura tradicional implica tener 2-3 DBAs dedicados a realizar este tipo de procesos trabajando durante la semana (o incluso trabajando fuera de horas los fines de semana). Mediante la utilización del servicio NDB el proceso de generación de copias se simplifica de forma muy importante ya que la generación de clones y sus refrescos es un proceso que se automatiza completamente, de una forma muy sencilla y rápida, con lo que mejoramos la productividad de los DBAs de una forma muy importante. Cuantificar los ahorros que tenemos en este apartado es muy importante.
Productividad de los desarrolladores: Otro punto que cuesta medir pero que representa una gran diferencia si comparamos un servicio como NDB con la infraestructura tradicional. Típicamente, en las grandes organizaciones, por cada DBA hay 10 desarrolladores. Estos desarrolladores se encuentran trabajando con nuevos proyectos incorporando nuevas funcionalidades a las aplicaciones. Con los procesos de gestión de copias que ofrecen las plataformas tradicionales puede ser que los desarrolladores tengan que esperar días (o semanas) para obtener una copia de los datos de producción. Posteriormente, suele ser necesario refrescar esos datos de forma periódica. Necesitan tener datos reales para proporcionar nuevas funcionalidades a las aplicaciones. Mediante la utilización de NDB podemos incrementar la agilidad en estos procesos de copia e incrementar la productividad de los desarrolladores al menos en un 15%. Con esto queremos decir, que, si un nuevo proyecto tarda generalmente 12 meses en estar disponible en el mercado, mediante la utilización de NDB podemos reducirlos en 1-2 meses. Dado el escenario que estamos considerando: 2 DBAs a 20 Desarrolladores, estamos hablando sobre la productividad de dos o tres desarrolladores año.
3. Reducción de costes asociados a almacenamiento para clones (entornos secundarios) y copias de seguridad.
Los DBAs realizan múltiples peticiones para tener copias de bases de datos y copias de seguridad durante los ciclos de desarrollo, actualización y pruebas. La utilización de todas estas copias sobre plataformas tradicionales hace que se consuma gran cantidad de almacenamiento en cabinas de almacenamiento, en las copias de seguridad y las restauraciones que tienen duraciones muy altas... Los servicios de “Copy Data Management” incluidos en el servicio de NDB realizan copias, que prácticamente, no ocupan espacio, Zero Byte Clone, permiten realizar un clon de la base de datos en cualquier momento del tiempo, reduciendo hasta 6x el espacio necesario para almacenar los clones y las copias de seguridad.
4. Reducción de costes de licenciamiento y soporte.
Generalmente, en las arquitecturas tradicionales, encontramos que los clientes tienen licencias de bases de datos dedicadas para entornos secundarios como desarrollo y calidad que se requieren de forma periódica. Estos servicios generalmente consumen un 20% de CPU. Los desarrolladores trabajan en realizar cambios en el código y cuando necesitan probarlo necesitan acceder a la base de datos. Mediante la utilización de NDB los desarrolladores pueden levantar un entorno y pararlo en cuestión de pocos minutos para realizar las pruebas pertinentes. Gracias a esta funcionalidad no hace falta que tener entornos dedicados a Calidad y Desarrollo lo que permite consolidar las bases de datos de una forma muy importante, eso hace que podamos obtener ahorros en costes de licenciamiento de bases de datos.