Kubernetes, una tecnología más cercana a nosotros de lo que creemos
Por Dmitri Zaroubine, Director de Ingeniería de Sistemas de Veeam para Latinoamérica-
¿Sabía que cuando ve alguna serie en Netflix y cada que usa su app bancaria o la de alguna aerolínea está disfrutando de Kubernetes? Esta plataforma de código abierto se ha convertido en una herramienta esencial para gestionar las complejas y cambiantes infraestructuras de aplicaciones de las organizaciones. Apoya a los equipos de TI en el despliegue de cargas de trabajo en entornos multi-nube, cada vez más frecuentes en las empresas que están adoptando el modelo hibrido para desarrollar y escalar sus aplicaciones.
Kubernetes nació hace menos de una década. Al principio, la conocían sólo los equipos de Desarrollo y Operaciones (DevOps) e Infraestructura de TI, pero desde hace un par de años ha crecido de forma exponencial, a partir de sus notorias ventajas, como disponibilidad y resiliencia cibernética, y el término se está empezando a escuchar más ampliamente.
Cloud Native Computing Foundation[1] indica que el 91% de los profesionales de TI que usan Kubernetes consideran que esta plataforma ha beneficiado a toda su organización, no sólo al área de TI, trayendo impactos directos al negocio como: mayor participación de mercado (25%), creación de nuevas experiencias para los clientes que generan ingresos (21%) y aumento de los márgenes (20%). Como clientes y usuarios de los negocios que la utilizan, sin duda hemos sido testigos de sus beneficios, aun sin saberlo. En otras palabras, lo que logra Kubernetes está más cerca de cada uno de nosotros de lo que pensamos.
¿En qué nos ayuda Kubernetes, como clientes?
Actualmente, los desarrolladores deben construir aplicaciones cada vez más grandes, complejas y escalables, en ambientes mucho más dinámicos. Siendo así, que una plataforma automatice el despliegue, escalación y gestión de las apps en contenedores, facilitando un uso optimizado de recursos, implementaciones más rápidas y disponibilidad global para aplicaciones de transmisión por secuencias –lo que hace Kubernetes–, es ideal.
No es casual que las aerolíneas, con sus apps móviles tan necesarias hoy día, sean las mayores consumidoras de Kubernetes (algunas con hasta 1,000 contenedores). Los negocios de streaming (como Netflix o Spotify, entre otros), los bancos y las telefónicas también están entre las industrias que más la usan para orquestar sus servicios y atender mejor a sus clientes. Ahora bien, ¿cómo nos impacta esto? Aquí unos ejemplos prácticos:
Al usar plataformas de streaming: Como usuarios de estas plataformas solemos ser exigentes: esperamos una experiencia de visualización sin interrupciones, y cualquier problema en el rendimiento podría hacer que nos vayamos a otra plataforma. Kubernetes es crucial para estos negocios, pues crea clústeres de contenedores que se escalan horizontalmente en respuesta a la demanda (estableciendo reglas de escalación basadas en métricas, como el uso del CPU o la memoria), lo que garantiza que la app siempre tenga los recursos necesarios para ofrecer visualización de alta calidad para todos los usuarios, aun durante los picos de uso.
En las apps bancarias: Muchos procesos de los bancos se pueden hacer online: consultar el saldo de la tarjeta, hacer pagos o transferencias, dar de alta cuentas, desconocer transacciones (por un posible fraude), etc. En esta era digital, queremos todo inmediato, y si la app fuera recurrentemente lenta y no nos permitiera hacer estas actividades, muy probablemente nos cambiaríamos de banco. Lo bueno es que con la estructura de microservicios de Kubernetes, si algún servicio de la app está caído en algún momento, podemos seguir interactuando con los otros; no como antes que, si fallaba algo, era imposible acceder a toda la aplicación.
Al viajar: Los aeropuertos no descansan, y el servicio de las aerolíneas a sus clientes, menos. Como viajeros, necesitamos poder entrar a su plataforma online a cualquier hora (incluso de madrugada) para comprar boletos de avión, hacer cambios de fecha o destino, consultar en tiempo real el gate de despegue, hacer el web check-in y demás. ¿Imagina que una actualización de TI, que suelen hacerse de madrugada, le impidiera realizar alguna de estas gestiones cuando lo necesita? En este negocio, donde la disponibilidad always-on es clave, Kubernetes permite ejecutar actualizaciones por ruta de tráfico graduales (es decir, sin afectar todos los procesos a la vez), minimizando así el riesgo de interrupciones.
Las empresas deben proteger su infraestructura de Kubernetes
Al inicio de este artículo decía que Kubernetes está mostrando sus notorias ventajas en disponibilidad y resiliencia cibernética, pero para que esto ocurra, los negocios deben proteger esta tecnología. ¡Ya existe ransomware que ataca exclusivamente a Kubernetes! Según Red Hat[2], 9 de cada 10 profesionales de TI y DevOps padecieron un incidente de seguridad en Kubernetes (o más) en los últimos 12 meses, con el 49% de ellos durante la fase de ejecución.
Para mitigar los riesgos, lo mejor es adoptar una estrategia de Zero Trust, cuyo principio es suponer que hay amenazas por doquier y alejar el foco de la seguridad del perímetro hacia las aplicaciones, ejecutando los principios de “Confianza Cero” para cada usuario, dispositivo y conexión, mediante estrictos procedimientos de seguridad que incluyan, por ejemplo, autenticaciones en los diferentes procesos e interacciones. Además, conviene hacer respaldo de Kubernetes y sus contenedores, también centrado en las aplicaciones y no en la infraestructura, y tener un plan de recuperación de estos entornos, basado en inmutabilidad, que identifique las dependencias del clúster y considere las APIs de Kubernetes relevantes.
De esta forma, las organizaciones pueden garantizar el uso de esta nueva y útil tendencia con seguridad, y nosotros como consumidores disfrutar de servicios más ágiles y disponibles.