Una recurrente pregunta que se formulan hoy día las compañías es ¿cómo implementar una base de datos as-a-service (DBaaS) 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 un mundo dinámico de 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 la base de datos en contenedores
Algunos de los problemas encontrados con las bases de datos en contenedores:
- 1) Cuando un contenedor muere, puede perder datos si la persistencia no está configurada correctamente.
- 2) Los programadores populares no están diseñados para servicios con estado y solo brindan una funcionalidad limitada.
- 3) 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, y a canalizaciones de streaming, búsqueda y IA/ML como Elasticsearch y Kafka. Administrar tantos tipos de servicios de datos es complejo, pero esta complejidad se ve aumentada 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, lo que resulta en un esfuerzo significativo para garantizar que las bases de datos permanezcan en línea y admitan aplicaciones de misión crítica.
Estas actividades altamente manuales son propensas al error humano y al tiempo de inactividad excesivo, y no se pueden automatizar fácilmente con las herramientas de automatización de infraestructura existentes.
Complejidad de Kubernetes
Si bien Kubernetes brinda cierta compatibilidad con dicha automatización, la ejecución de servicios de datos en Kubernetes sigue siendo compleja. Los equipos de DevOps de hoy luchan por administrar los numerosos servicios de datos implementados en Kubernetes en toda la empresa, ya que cada uno tiene su propio conjunto de requisitos complejos en torno al rendimiento, la alta disponibilidad, la protección de datos, la seguridad de datos y más.
En lugar de ofrecer nuevas funciones y aplicaciones al mercado, los equipos de DevOps pasan gran parte de su tiempo resolviendo implementaciones y administrando las operaciones de estos servicios de datos.
Opera fácilmente una plataforma de base de datos as-a-service
Lo que los equipos de DevOps necesitan es una experiencia como servicio que brinde servicios de datos confiables y de alto rendimiento para sus aplicaciones que se ejecutan en Kubernetes, sin el bloqueo del proveedor que acompaña a algunas plataformas de base de datos as-a-service (DBaaS) alojadas por proveedores de servicios en la Nube.
Los desarrolladores necesitan acceso a servicios de datos confiables para sus aplicaciones y 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.
Nota relacionada: Database-as-a-Service promete innovaciones en próximos años
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 as-a-service, 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 de usuario fácil y de autoservicio.
Copia de seguridad de contenedores y cargas de trabajo de Kubernetes
Las herramientas tradicionales para la copia de seguridad y la recuperación no son lo suficientemente granulares para hacer frente a la complejidad de la copia de seguridad de los contenedores 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 con recuperación rápida con la granularidad mejorada necesaria para proteger sus datos a nivel de aplicación.
Los desarrolladores obtienen un plano de control definido por la aplicación que 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.
Sencillez, eficacia e innovación
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, recuperación de datos, seguridad de datos, administración de capacidad automatizada 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 de Kubernetes con un solo clic, lo que 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, lo que libera a los equipos de DevOps para una actividad e innovación de mayor valor agregado.
Por Julio Castrejón, Country Manager México en Pure Storage.