Hay una pregunta recurrente que hoy en día se formulan las compañías, incluidas las de atención a la salud. ¿Cómo implementar una base de datos como servicio (DBaaS, por sus siglas en inglés) para Kubernetes, independientemente de la infraestructura? Las aplicaciones modernas deben ser rápidas, disponibles y seguras. Se componen de muchos microservicios, a menudo respaldados por múltiples servicios de datos. Administrar cada uno de estos servicios de datos en Kubernetes es complejo, requiere mucho tiempo y deja poco tiempo para la innovación.

Administrar aplicaciones con estado en Kubernetes en producción es difícil. De acuerdo con una reciente encuesta de Pure Storage, los requisitos más importantes de los clientes son:

●Copia de seguridad y restauración (55%).

●Movilidad de datos (49%).

●Gestión de capacidad (49%).

●Alta disponibilidad (48%).

●Nube múltiple (45%).

●Cifrado (43%).

●Recuperación de desastres (43%).

La mayoría de las aplicaciones utilizan algún tipo de base de datos, cola o almacén de valor-clave para administrar el estado. Sin embargo, cuando se trata de ejecutar estos servicios de datos en contenedores, los problemas se multiplican porque los contenedores y los programadores populares como Kubernetes no están diseñados para manejar los problemas asociados con las bases de datos.

Problemas de las bases de datos en contenedores

Algunos de los problemas encontrados con las bases de datos en contenedores:

DBaaS para Kubernetes
Ilustración: iStock.

●Cuando un contenedor muere, puede perder datos si la persistencia no está configurada correctamente.

●Los programadores populares no están diseñados para servicios con estado y solo brindan una funcionalidad limitada.

●La replicación a nivel de aplicación requiere conocimientos específicos del dominio para cada base de datos.

A la complejidad de la administración de bases de datos en contenedores se suma que las aplicaciones modernas creadas con microservicios requieren acceso a bases de datos SQL y NoSQL, como MySQL, PostreSQL, Cassandra y Couchbase. Además, a canalizaciones de streaming, búsqueda y IA/ML como Elasticsearch y Kafka. Administrar tantos tipos de servicios de datos es complejo. Dicha complejidad se aumenta por la cantidad de instancias de bases de datos que se utilizan para administrar y escalar en diferentes entornos de prueba, desarrollo y producción, zonas de disponibilidad y nubes.

Un enfoque tradicional para administrar estos servicios de datos se basa en secuencias de comandos y numerosas actividades repetitivas y manuales. Ello resulta en un esfuerzo significativo para garantizar que las bases de datos permanezcan en línea y admitan aplicaciones de misión crítica. Tales actividades son propensas al error humano y al tiempo de inactividad excesivo. Además, no se pueden automatizar fácilmente con las herramientas de automatización de infraestructura existentes.

Si bien Kubernetes brinda cierta compatibilidad con la automatización, la ejecución de servicios de datos es compleja. Los equipos de DevOps luchan por administrarlos. Cada uno tiene su propio conjunto de requisitos en torno al rendimiento, la alta disponibilidad, la protección y la seguridad de datos.

En lugar de ofrecer nuevas funciones y aplicaciones, los equipos de DevOps pasan gran parte de su tiempo resolviendo implementaciones y administrando las operaciones de estos servicios de datos.

Operar fácilmente una plataforma DBaaS

Los equipos de DevOps necesitan una experiencia como servicio con servicios de datos confiables y de alto rendimiento para las aplicaciones ejecutadas en Kubernetes. Por supuesto, sin el bloqueo del proveedor que acompaña a algunas plataformas de base de datos como servicio (DBaaS) alojadas por proveedores de servicios en la nube.

Los desarrolladores necesitan acceso a servicios de datos confiables para las aplicaciones. Una oferta como servicio significa que consumen, pero no administran, la base de datos. Una solución para este desafío es una única capa de gestión de datos para todos los servicios con estado, sin importar dónde se ejecuten. Con una plataforma DBaaS de este tipo, ejecutar servicios de datos en Kubernetes es mucho más simple.

Una plataforma integrada de este tipo permite a las empresas ejecutar servicios de datos administrados automáticamente, en cualquier nube, a bajo costo. Pueden obtener los beneficios de la base de datos como servicio, sin el bloqueo. La plataforma automatiza la gestión de los servicios de datos, dejando más tiempo para la innovación.

Este tipo de plataforma SaaS está diseñada para administrar bases de datos locales o en la nube. Permite automatizar muchas tareas rutinarias de gestión y administración de bases de datos. Con una plataforma DBaaS efectiva, los equipos pequeños pueden brindar soporte a muchos usuarios, brindando operaciones confiables y una experiencia fácil y de autoservicio.

Granularidad necesaria

DBaaS para Kubernetes
Ilustración: cortesía Pure Storage.

Las herramientas tradicionales no son suficientemente granulares para la complejidad de las copias de seguridad y las cargas de trabajo distribuidas de Kubernetes. Creada desde cero para Kubernetes, la función de copia de seguridad de una plataforma DBaaS ofrece protección de datos y aplicaciones de nivel empresarial. Tiene recuperación rápida, con la granularidad necesaria para proteger sus datos a nivel de aplicación.

Los desarrolladores obtienen un plano de control definido por la aplicación. Éste permite que las aplicaciones se ejecuten en varias máquinas y brinda coherencia de aplicación para las bases de datos distribuidas. Se integra estrechamente con Kubernetes y proporciona reconocimiento de espacio de nombres.

Una plataforma de almacenamiento de contenedores definida por software ofrece servicios persistentes de almacenamiento y datos para contenedores y microservicios. Abstrae la complejidad de la infraestructura de almacenamiento subyacente para proporcionar una única capa de almacenamiento unificado para aplicaciones nativas de la nube.

Con un solo clic, los desarrolladores pueden implementar un servicio de datos de producción de nivel empresarial que admita respaldo, restauración, alta disponibilidad, administración de capacidad automatizada y recuperación, seguridad y migración de datos.

Con la plataforma DBaaS para Kubernetes, las bases de datos y otros servicios con estado pueden implementarse y administrarse en cualquier clúster con un solo clic. Eso brinda a las empresas las ventajas de una oferta de base de datos administrada sin los inconvenientes del bloqueo del proveedor.

Una plataforma DBaaS especializada hace que la ejecución de servicios de datos en Kubernetes sea mucho más simple. En consecuencia, libera a los equipos de DevOps para una actividad e innovación de mayor valor agregado.