Kubernetes: la fórmula mágica de las empresas de TI

  • Opinión

Cada cierto tiempo, emerge una tecnología empresarial que parece ser la panacea para solucionar de manera sencilla problemas complejos. Kubernetes es un ejemplo. Se trata de una plataforma de código abierto que automatiza las operaciones de las aplicaciones ejecutadas en contenedores de Linux, eliminando muchos de los procesos manuales necesarios para la implementación y la escalabilidad de la contenerización de las aplicaciones. Pero, podríamos decir que ¿Kubernetes puede por sí mismo resolver el reto que supone ejecutar a escala cargas de trabajo de misión crítica?

Tribuna de opinión de Graham Berry, EMEA sales lead OpenShift, Red Hat

El uso de contenedores sigue aumentando. Según un estudio de Red Hat hoy en día sólo el 10% de las organizaciones cuenta con más de la mitad de sus cargas de trabajo contenerizadas, pero se espera que en los próximos 24 meses este porcentaje se triplique hasta llegar al 28%1. Los contenedores han dejado de ser vistos como una nueva forma de paquetizar aplicaciones por los arquitectos de infraestructura encargados de encontrar mejores formas de ejecutar aplicaciones y reducir los costes de las máquinas virtuales. Hoy en día, las plataformas de contenedores son reconocidas en primer lugar como habilitadores de innovación, y después como infraestructura. Este nuevo enfoque pone la viabilidad de las plataformas de contenedores, así como la forma de orquestarlos como una prioridad para los CIOs.

¿Qué es Kubernetes?

Hace unos años surgió una batalla tecnológica entre diferentes plataformas de orquestación de contenedores. Entonces llegó Kubernetes al mercado. Una vez desarrollado en código abierto, Kubernetes se convirtió en uno de los proyectos de código abierto de más rápido crecimiento. Cerca de 8.000 desarrolladores asistieron al Kubecon en Barcelona en 2019, transformándose en una de las conferencias de código abierto más importantes de Europa. Se puede decir con seguridad que Kubernetes ha acaparado el espacio de orquestación de contenedores y el sector ha coincidido en el uso de esta tecnología: hay más de 90 ofertas certificadas de Kubernetes en el mercado2.

Pero ¿qué es lo que hace Kubernetes para que sea tan importante para las plataformas de contenedores? Como una solución agnóstica del fabricante y una herramienta de gestión y orquestación de contenedores, Kubernetes proporciona una plataforma para automatizar el despliegue, el escalado y las operaciones de las aplicaciones en contenedores en los diferentes clusters de los hosts y en cualquier infraestructura. En un momento en que lo híbrido es la estrategia de nube predominante3, los clusters de Kubernetes pueden abarcar nubes públicas, privadas o híbridas. Por este motivo, Kubernetes es una plataforma ideal para alojar aplicaciones nativas de la nube que requieren una rápida escalabilidad, como el streaming de datos en tiempo real.

Sin embargo, Kubernetes confía y depende de otros proyectos de código abierto para hacer posible todo su potencial.

¿Qué no es Kubernetes?

Una plataforma empresarial de contenedores debe tener varias herramientas importantes además de la orquestación de Kubernetes. Entre ellas: registro, conexión en red, almacenamiento, telemetría, automatización y servicios. Estas herramientas deben contar con métricas, registro, monitorización, ingress, autenticación y autorización, lenguajes, frameworks, middleware y bases de datos. Y además con seguridad. Un negocio necesita pensar en la seguridad en todas las capas del stack de soluciones antes de desplegar y ejecutar un contenedor, y abordar la seguridad de Kubernetes de forma integrada y continua, teniendo en cuenta dónde termina la seguridad de Kubernetes y dónde debe intervenir la empresa.

Por lo tanto, aunque instalar Kubernetes y experimentar con ellos es posible para muchos, establecerlo como una plataforma central para ejecutar aplicaciones críticas para la empresa requiere de mucho más. Cualquiera que desarrolle su propia plataforma de contenedores tendrá que examinar, probar y consolidar las tecnologías individuales en todo el stack. Además, deberá mantenerse al día con cada componente de manera individual a lo largo de sus diferentes ciclos de vida, y asegurarse de que todos trabajan de manera conjunta. Si surgiese algún problema en cualquier punto del proceso, Kubernetes es un proyecto de código abierto que carece de una estructura de soporte formalizada, así que la solución dependerá de la persona que lo instale y lo ejecute.

Un Frankenstein de Kubernetes

Muchas organizaciones se inician en Kubernetes haciendo una pequeña instalación. Cuando quieren escalar y empezar a ejecutar cargas de trabajo de misión crítica, pueden descubrir que han subestimado la complejidad y los gastos generales de integrar, probar, actualizar y gestionar varios componentes nativos de la nube. Es entonces cuando el mantra "no existen los sabores vainilla de Kubernetes" puede ser muy claro, ya que pieza por pieza terminas ensamblando un monstruo. Mantener y gestionar esta creación a medida que crece puede ser cada vez más costoso, sobre todo cuando las capacidades digitales son cada vez más demandas.

Innovación en el canal

En un mundo en el que la innovación y el tiempo de comercialización son una prioridad máxima, los desarrolladores de “día uno” deben ser capaces de proveer eficientemente la infraestructura y obtener la codificación. El uso de una plataforma gestionada que proporciona un acceso rápido a todo lo necesario para ejecutar contenedores y kubernetes de forma consistente en un entorno híbrido (incluyendo el soporte y la seguridad) significa que los equipos de aplicación y de desarrollo pueden dedicar más tiempo a resolver problemas empresariales.

Muchas organizaciones querrán que su entorno híbrido incluya múltiples nubes públicas. Esto significa que deben ser conscientes de cuánta flexibilidad y libertad querrán para utilizar las tecnologías de su elección, incluyendo innovaciones emergentes como Quarkus, que permite construir aplicaciones nativas de nubes; u Operators, una forma de empaquetar aplicaciones nativas de Kubernetes para una gestión más fácil para las operaciones de “día dos”. En última instancia, esto significa entender la diferencia entre una plataforma abierta y una propietaria.

Un ejemplo de ello es el Deutsche Bank, que estableció una plataforma como servicio de código abierto para estandarizar y optimizar el acceso de los desarrolladores a la capacidad informática y a otros recursos de aplicación en todo su negocio. El Deutsche Bank desarrolló Fabric, una plataforma de desarrollo de aplicaciones contenerizadas y basada en microservicios. Fabric proporciona un acceso más rápido a los recursos, ayudando a los desarrolladores a trabajar de forma más eficiente, por lo que ahora las aplicaciones pueden pasar de la prueba de concepto a la producción en 2-3 semanas en lugar de 6-9 meses4. Por otro lado, Cathay Pacific Airways Limited, que ofrece sus servicios en 200 destinos de 52 países, adoptó una plataforma empresarial de Kubernetes en un entorno de nube híbrida abierta. Además de ganar escalabilidad y portabilidad a demanda en la infraestructura privada y pública, aumentó la colaboración entre equipos, creando procesos de trabajo más eficientes y rentables. Actualmente, la aerolínea puede hacer 200 despliegues por día, muchos más que antes de tener Kubernetes, cuando sólo hacía un despliegue por semana, y mover las aplicaciones sin necesidad de reescribirlas.

Contenga su emoción

Cuando nos iniciamos en los contenedores, vale la pena tener una visión más amplia de cómo se van a llevar a la producción a lo largo del tiempo. A la larga, ¿en qué queremos que se centren nuestros equipos? Si la respuesta es construir servicios globales para los clientes y hacerlos llegar al mercado de una forma rápida, entonces hay que recordar que los kubernetes son un arma potente, pero que se necesita más que una bala de plata para matar al hombre lobo.

Graham Berry, EMEA sales lead OpenShift, Red Hat

TAGS Opinión