Cuando hoy hablamos de aplicaciones realizadas para la nube, ya sea privada, pública o soberana, el reflejo casi instantáneo es recurrir a una plataforma moderna de gestión de contenedores como Kubernetes, con todo su ecosistema y metodologías DevSecOps. En este contexto y estos usos, la capacidad de mover aplicaciones y datos es una cuestión de gran importancia para las empresas que confían en Kubernetes; y la búsqueda de una solución de gestión y protección de datos para estos entornos se ha convertido en una búsqueda estratégica, con criterios muy específicos para integrar.

Algunas verticales, como el sector financiero y asegurador o el sector público, han dado claramente el paso al decidir operar en producción esta nueva forma de aplicación, considerada “Coud Native”. Históricamente, en entornos Kubernetes diferenciamos entre aplicaciones que no almacenan datos persistentes (denominadas “Stateless”) y aquellas que consumen servicios de datos en todas sus formas (denominadas “Stateful”).

Desde su creación, el proyecto Kubernetes ha seguido evolucionando en la gestión y soporte de volúmenes de datos persistentes, en particular a raíz de la aparición del componente driver CSI (Container Storage Interface) en 2017, luego el estándar homónimo en 2018 y finalmente los snapshots y clones en 2019. En los últimos tres años, hemos visto un crecimiento exponencial de las llamadas aplicaciones "Stateful" en producción, siendo estos dos términos clave. CNCF (Cloud Native Computing Foundation) lleva a cabo cada año Un estudio con los usuarios de Kubernetes para comprender y analizar su adopción en el mercado. Entre las 11 tecnologías más desplegadas en entornos Kubernetes, 9 corresponden a motores de bases de datos o aplicaciones que almacenan datos persistentes en diferentes formatos, según un estudio estudiar hecho por Datadog.

Índice
  1. Portabilidad de datos y aplicaciones, un criterio central
  2. El desafío de gestionar datos en producción en Kubernetes
  3. ¿Cuáles son los criterios fundamentales para elegir una plataforma?

Portabilidad de datos y aplicaciones, un criterio central

Los responsables de las decisiones técnicas deben cumplir con las normativas y obligaciones a la hora de poner en producción estas nuevas aplicaciones, lo que requiere servicios de recuperación ante desastres, copias de seguridad y restauración. Para muchos, también existe la cuestión del desbordamiento hacia la nube pública o la nube soberana, según la naturaleza de los datos y las actividades en cuestión. El tema de la movilidad de las aplicaciones es una preocupación importante que debe abordarse.

Los responsables de las decisiones empresariales deben ser capaces de conquistar nuevos mercados cada vez más rápidamente. La portabilidad de las aplicaciones se está convirtiendo en una cuestión fundamental, preservando al mismo tiempo la integridad de los datos. La capacidad de mover las aplicaciones y los datos asociados a ellas es un factor competitivo importante. Este problema ya es bien conocido en el mundo del Edge Computing, en particular entre los operadores de telecomunicaciones, pero también es el caso del sector financiero, tanto los bancos como las compañías de seguros. Estos actores buscan constantemente acercarse al mercado que intentan conquistar, ya sea para mejorar la experiencia de un usuario o para tener la posibilidad de desplegarse en una nueva zona geográfica para satisfacer las restricciones regulatorias. Esta necesidad de movilidad de las aplicaciones también se encuentra en ciertos sectores verticales y en el comercio minorista y estará cada vez más presente en los sectores de actividad en los que la agilidad es esencial para seguir siendo competitivos.

El desafío de gestionar datos en producción en Kubernetes

Por eso, todos los responsables de la toma de decisiones deben tener en cuenta la cuestión de la gestión de datos en producción en el marco de esta nueva plataforma cloud que es Kubernetes. Probablemente, sea la primera vez en el mercado de TI que existe una plataforma común y completamente estandarizada, capaz de unificar todas las nubes. Tanto si el entorno Kubernetes se despliega en una nube privada, pública, soberana o en escenarios de Edge Computing, la API de Kubernetes sigue siendo la misma, independientemente del proveedor elegido (Red Hat, Suse, VMware, AWS, Azure, GCP u OVH). Este denominador común acelera y facilita todos los desafíos que rodean a la nube híbrida.

Existen varias prácticas recomendadas para adoptar Kubernetes con éxito, especialmente en un contexto híbrido y multicloud. La palabra clave es movilidad. La portabilidad de aplicaciones le permite ser independiente de la nube, la infraestructura y la distribución de Kubernetes que se puede elegir en cualquier momento del ciclo de decisión.

Como denominador común entre todas las nubes disponibles en la actualidad, la API de Kubernetes permite una estandarización de los servicios ofrecidos por la plataforma. El enfoque consiste, en primer lugar, en disponer de un método de backup de última generación que garantice la consistencia de los datos de extremo a extremo. La consistencia a nivel de aplicación está vinculada a la importante presencia de bases de datos en estas aplicaciones denominadas nativas de la nube.

En un segundo paso, se debe poner en marcha un plan global de recuperación ante desastres para cumplir con los SLA (Service Level Agreements) de los entornos de producción, con la implementación de automatizaciones para evitar errores humanos. Luego, en un tercer paso, al restaurar estas aplicaciones en el sitio de destino, se debe activar un mecanismo de transformación para hacer que las aplicaciones sean compatibles con el entorno de destino. Una transformación que a veces resulta necesaria porque integra las especificidades de los servicios de infraestructura de origen en el entorno de destino (nuevo tipo de almacenamiento, red).

¿Cuáles son los criterios fundamentales para elegir una plataforma?

La elección de un servicio de almacenamiento para gestionar los datos de este tipo de aplicaciones requiere una atención especial. Para poder soportar cualquier tipo de datos y cualquier tipo de aplicación, el criterio principal es tener capacidades de captura de instantáneas y clonación de los volúmenes de datos que consumen estas aplicaciones que se ejecutan dentro de una plataforma Kubernetes.

Para beneficiarse de estas ventajas en la gestión del almacenamiento, los datos deben residir lo más cerca posible de la aplicación, es decir, dentro del clúster de Kubernetes. Esta unificación de los datos con los componentes de la aplicación permite tratar el conjunto como un todo, una única unidad operativa que simplifica enormemente los escenarios de movilidad. Cuando los datos residen fuera del clúster de Kubernetes, es necesario multiplicar los procesos y los esfuerzos para capturar la aplicación por un lado y el servicio de datos por otro. Este tipo de esquema suele heredarse de los equipos de TI, que todavía se organizan con demasiada frecuencia en silos. La separación de las competencias de almacenamiento, DevOps y bases de datos dentro de un equipo se refleja inevitablemente en la elección de las arquitecturas de aplicación.

En resumen, para negociar adecuadamente el cambio a la nube nativa, se recomienda romper los silos organizacionales para aunar habilidades dentro del mismo equipo y mantener los datos lo más cerca posible de la aplicación, porque Kubernetes y su ecosistema han alcanzado el nivel de madurez necesario. Esta unificación de los datos con la aplicación es la clave para beneficiarse de la movilidad de aplicaciones en escenarios de nube híbrida.