¿Cómo gestionar fácilmente los datos con una base de datos como servicio para Kubernetes?

Bases de DatosDatos y Almacenamiento

Adela de Toledo, Country Manager Pure Storage Iberia, sobre cómo implementar una base de datos como servicio (DBaaS) para Kubernetes independiente de la infraestructura.

Las aplicaciones modernas deben ser rápidas, estar disponibles y ser seguras. Están formadas por numerosos microservicios, a menudo soportados por múltiples servicios de datos. La gestión de cada uno de estos servicios de datos en el mundo dinámico de Kubernetes es compleja, lleva mucho tiempo y deja poco margen para la innovación.

Gestionar las aplicaciones con estado en Kubernetes en un entorno de producción es una tarea difícil. Según un estudio que hemos realizado desde Pure Storage, los requisitos más importantes para los clientes son:

● Las copias de seguridad y la restauración (55%)

● La movilidad de los datos (49%)

● La gestión de la capacidad (49%)

● La alta disponibilidad (48%)

● La multinube (45%)

● El cifrado (43%)

● La recuperación de desastres (43%).

La mayoría de las aplicaciones utilizan algún tipo de base de datos, cola o almacén de clave-valor para gestionar el estado. Sin embargo, cuando hay que ejecutar estos servicios de datos en contenedores, los problemas se multiplican, porque los contenedores y los programadores populares como Kubernetes no se han diseñado para tratar los problemas relacionados con las bases de datos.

Los problemas de las bases de datos contenedorizadas

Estos son algunos de los problemas que plantean las bases de datos contenedorizadas:

  1. Cuando un contenedor muere, se pueden perder los datos si la persistencia no se ha configurado correctamente.
  2. Los programadores populares no se han diseñado para los servicios con estado y solo ofrecen una funcionalidad limitada.
  3. La replicación a nivel de la aplicación requiere un conocimiento específico del dominio para cada base de datos.

A la complejidad de gestionar una base de datos contenedorizada hay que sumarle el hecho de que las aplicaciones desarrolladas con microservicios necesitan acceder a bases de datos SQL y NoSQL, como MySQL, PostreSQL, Cassandra y Couchbase, y a pipelines de transmisión, búsqueda e IA/AA, como Elasticsearch y Kafka. La administración de tantos tipos de servicios de datos es compleja, pero esta complejidad aumenta aún más debido al número de instancias de bases de datos que se utilizan para gestionar y escalar en distintos entornos de prueba, desarrollo y producción, zonas de disponibilidad y nubes.

Una de las maneras tradicionales de gestionar estos servicios de datos consiste en recurrir al scripting y a numerosas actividades manuales repetitivas, lo que conlleva un esfuerzo muy importante para garantizar que las bases de datos permanecen en línea y soportan las aplicaciones de misión crítica. Estas actividades muy manuales son propensas a los errores humanos y a los tiempos de inactividad excesivos y además no pueden automatizarse fácilmente con las herramientas de automatización de la infraestructura existentes.

La complejidad de Kubernetes

Kubernetes proporciona un cierto soporte para esta automatización, pero la ejecución de los servicios de datos en Kubernetes sigue siendo compleja. Actualmente, los equipos de desarrollo y operaciones tienen que hacer un gran esfuerzo para gestionar los numerosos servicios de datos que las empresas tienen desplegados en Kubernetes, ya que cada uno de ellos tiene su propia serie de requisitos complejos relacionados con el rendimiento, la alta disponibilidad, la protección de los datos, la seguridad de los datos, etc. Por ello, en lugar de lanzar al mercado nuevas características y aplicaciones, estos equipos dedican una gran parte del tiempo a resolver los problemas y a gestionar el funcionamiento de estos servicios de datos.

Manejar fácilmente una plataforma de base de datos como servicio

Lo que los equipos de desarrollo y operaciones necesitan es una experiencia como servicio que proporcione unos servicios de datos fiables y con un buen rendimiento para sus aplicaciones que se ejecutan en Kubernetes, sin quedar en manos de un solo proveedor, que es lo que suele pasar con algunas plataformas de base de datos como servicio (DBaaS) alojadas por proveedores de servicios en la nube. Los desarrolladores tienen que acceder a unos servicios de datos fiables para sus aplicaciones, pero con las ofertas como servicio lo que hacen es consumir, pero no gestionar, la base de datos. Una manera de solucionar este problema consiste en disponer de una sola capa de gestión de los datos para todos los servicios con estado, independientemente del lugar en el que se ejecuten. Con una plataforma DBaaS de este tipo, es muchísimo más fácil ejecutar los servicios de datos en Kubernetes.

Este tipo de plataforma integrada permite que las empresas ejecuten automáticamente los servicios de datos gestionados, en cualquier nube y con un coste bajo. De este modo, pueden disfrutar de las ventajas de las bases de datos como servicio, sin quedar limitadas a un proveedor. Además, la plataforma automatiza la gestión de los servicios de datos, lo que deja más tiempo para la innovación. Esta clase de plataforma de software como servicio se ha diseñado para gestionar bases de datos on-premise o en la nube. Permite automatizar numerosas tareas rutinarias de gestión y administración de las bases de datos. Con una plataforma DBaaS eficaz, los equipos pequeños pueden dar soporte a muchos usuarios y proporcionar un funcionamiento fiable y una experiencia de usuario sencilla y en modo autoservicio.

Realizar copias de seguridad de los contenedores y las cargas de trabajo de Kubernetes

Las herramientas tradicionales de realización de copias de seguridad y recuperación no son lo suficientemente granulares para abordar la complejidad de las copias de seguridad de los contenedores y las cargas de trabajo distribuidas de Kubernetes. Sin embargo, la función de realización de copias de seguridad de una plataforma DBaaS, que se ha desarrollado desde cero para Kubernetes, proporciona una protección de los datos y de la aplicación de nivel empresarial, así como una recuperación rápida, con la granularidad mejorada necesaria para proteger los datos a nivel de la aplicación. Los desarrolladores obtienen un plano de control definido por la aplicación, que permite que las aplicaciones se ejecuten en múltiples máquinas y que ofrece coherencia de la aplicación para las bases de datos distribuidas. Además, se integra totalmente en Kubernetes y proporciona reconocimiento de los espacios de nombres.

Simplicidad, eficacia e innovación

Una plataforma de almacenamiento de contenedores definida por software proporciona un almacenamiento persistente y servicios de datos para los contenedores y los microservicios. Además, oculta la complejidad de la infraestructura de almacenamiento subyacente, para proporcionar una sola capa de almacenamiento unificada para las aplicaciones nativas de la nube. Con un solo clic, los desarrolladores pueden desplegar un servicio de datos de producción de nivel empresarial, que permite la realización de copias de seguridad, la restauración, la alta disponibilidad, la recuperación y la seguridad de los datos, la gestión automatizada de la capacidad y la migración de los datos.

Con una plataforma DBaaS para Kubernetes, las bases de datos y otros servicios con estado se pueden desplegar y gestionar en cualquier clúster de Kubernetes con un solo clic, lo que proporciona a las empresas las ventajas de una base de datos gestionada, sin los inconvenientes de quedar limitadas a un proveedor. Una plataforma DBaaS hace que ejecutar los servicios de datos en Kubernetes sea mucho más fácil y libera a los equipos de desarrollo y operaciones para que se dediquen a la innovación y a otras actividades de mayor valor añadido.

Autor
Saber más 
Saber más