La nube se convirtió en un océano
Ya no se habla de máquinas virtuales, sino de contenedores, kubernetes, constelaciones y ballenas. Cuáles fueron las innovaciones que en cinco años marcaron un cambio de paradigma y obligaron a repensar el software que corre en la nube.
Su nombre la hace parecer algo abstracto, etéreo y perdido en algún rack de un Data Center ubicado en el medio de la nada estadounidense, pero la nube demostró hace tiempo ser una solución sólida al problema del desperdicio de recursos, evitando que las empresas tengan que invertir en hardware y paguen solo por lo que consumen sus aplicaciones. En 2017, el mercado de los servicios en la nube, disponibles en todo momento y lugar, alcanzó los US$ 116.000 millones, según el relevamiento que realizaron los investigadores de International Data Corporation. Pero si bien se sigue llamando igual, su arquitectura y la tecnología que la sostiene están atravesando rápidos cambios. El término “Cloud Computing” se popularizó cuando Amazon lanzó su Elastic Compute Cloud en 2006 y para 2010 players del calibre de Google, Microsoft e incluso la NASA habían comenzado a trabajar en desarrollos similares. El mayor impulso, sin embargo, vendría después: hoy reconocida por su simpática mascota marina, Docker impuso su presencia en 2013 cuando liberó su software homónimo que permite realizar virtualización a nivel de sistema operativo y aislar aplicaciones dentro de contenedores. “Estos son paquetes livianos, independientes y ejecutables de una pieza de software que incluyen todo lo necesario para correr: código, runtime, herramientas del sistema, librerías y configuraciones”, explica a INFOTECHNOLOGY David Messina, Chief Marketing Officer (CMO) de Docker. No son algo nuevo, pero la ballena supo mejorar la tecnología, logrando así una rápida adopción por parte de sus clientes. “Los contenedores aparecieron en 1970, cuando se usaban solo para aislar el código de las aplicaciones, pero por muchos años la tecnología no tuvo aquella usabilidad y portabilidad que hoy se espera”, señala Messina. Docker se enfocó en enfrentar el “infierno de dependencias”, un desafío que apareció con el aumento en la cantidad de aplicaciones, lenguajes, frameworks y más piezas que deben interactuar correctamente con entornos de hardware cada
vez más diversos. En 2013, comenzaron a colaborar con Red Hat; en 2014 la nube de Amazon incorporó sus servicios y se asociaron con IBM. Un año más tarde, el proyecto estaba en el top 20 de Github con 25.000 estrellas y más de 1.100 colaboradores. Y para mayo del 2016 los principales contribuyentes al proyecto
incluían a los equipos de Cisco, Google Huawei, IBM y Microsoft.
Un capitán para el nuevo barco
Cuando se habla de software nativo de la nube, con frecuencia se refiere a la implementación de una arquitectura basada en microservicios, pequeñas aplicaciones interconectadas que realizan funciones específicas y que juntas les dan vida a plataformas como Facebook, Skype, Tinder o Despegar. Con el enorme tamaño que alcanzaron las constelaciones de containers surgió naturalmente la necesidad de contar con herramientas que permitan administrarlos. No es una sorpresa que la solución a un problema de escala provenga de alguna de las grandes tecnológicas. Así fue que el proyecto Kubernetes nació dentro de Google para lidiar con su propia infraestructura. En 2014, la compañía del buscador ya se la había jugado all-in. “Todo en Google corre dentro de un contenedor”, admitió Joe Beda, un ingeniero de la empresa, en la conferencia Gluecon y detalló que ellos encienden más de 2.000 millones de contenedores por semana. Sus desarrollos se enfocaron en aprovechar al máximo su infraestructura. “Cuando vimos que apareció Docker, buscamos una forma de facilitarles aún más su uso a los desarrolladores y al equipo operativo”, cuenta a INFOTECH
NOLOGY Tim Hockin, ingeniero de Google y cofundador del proyecto Kubernetes. “El principal objetivo fue eliminar el trabajo poco productivo, las tareas molestas. Esas llamadas a las dos de la mañana para arreglar un servidor no tienen sentido. Ahora los Kubernetes se encargan de eso, de hacer que los sistemas sean más robustos y resilientes”, cuenta quien antes trabajó en los proyectos Borg y Omega de Google y en el kernel de Linux. Los kubernetes son como directores de orquesta. Marcan cuando un contenedor debe encenderse, apagarse, reiniciarse, actualizarse e incluso, con la configuración correcta, permite que se auto reparen. Si un servidor se cae, el orquestador puede desplegar las aplicaciones que quedaron inactivas en otro servidor que tenga los recursos necesarios sin que una persona tenga que prender su computadora a mitad de la noche. Ahora Kubernetes es, junto a Docker Swarm, una de las herramientas más usadas para gestionar clusters de contenedores, pero para lograrlo tuvo que alejarse de la empresa donde nació y entregarse de lleno a la comunidad de desarrolladores. Hoy el proyecto está a cargo de la Cloud Native Computing Foundation, fundada en 2015 a partir del lanzamiento de la primera versión de Kubernetes. Entre sus miembros fundadores están Google, Twitter, Huawei, Intel, Cisco, IBM, Docker, Univa y Vmware. “La fundación fue una pieza crítica. Queríamos dejar bien en claro que no se trataba de una jugada de Google para ganar marketshare, sino que estábamos contribuyendo con un desarrollo centrado en los usuarios de todo el mundo”, destaca Hockin.
La tripulación elige su nave
Las mejoras en los sistemas de containers que se desarrollaron en estos últimos años, especialmente desde el lanzamiento de Docker en 2013, son otro resultado más de lo
parece ser una tendencia marcada por la atención a usabilidad y la experiencia de usuario. Desapercibida por el cliente final de las aplicaciones, la nueva capa de abstracción les ahorró a los equipos detrás una buena parte del esfuerzo que implican los preparativos para correr una plataforma. Las demandas cambiaron. Startups y grandes empresas por igual, buscan servicios simples de usar y soluciones basadas en este concepto les permitieron a empresas argentinas como Nubeliu competir incluso contra grandes players del mercado brasileño. Su CEO, Rodrigo Benzaquen, fue el primer empleado del equipo de IT de Mercadolibre en 1999 y participó del despliegue de su plataforma de ecommerce. Ahora su empresa usa Docker y Kubernetes para coordinar tanto sus clusters de contenedores como los de sus clientes para mantenerse “Cloud Agnostic”, sin ataduras a ningún proveedor. “La nube pública está bárbara, es ágil, pero para el CTO se vuelve penoso porque se vuelven esclavos de quien les brinda el servicio y cada vez es más difícil salir”, señala el devenido emprendedor. Migrar a la arquitectura modular, enfocada en microservicios, que mejor funcionan en el modelo de contenedores no es sencillo, pero trae consigo el beneficio de la portabilidad. “Es como lo que pasó cuando el usuario se adueñó de su número de teléfono celular. Ya no pueden retener al cliente porque al usar contenedores, son libres de decir no me gusta este, me lo llevo a otra infraestructura”, así lo compara Herque nán Mazzeo, gerente de Servicios Profesionales y Servicios Gestionados de Iplan. La telco argentina, que en su momento evangelizó la virtualización, hoy arma clínicas con sus clientes para ver cómo se posicionan y encontró que el mercado regional evolucionó y creció la necesidad de flexibilidad. “Se llegó a la nube híbrida, usando la infraestructura de distintos proveedores y se pasó a un modelo de continuidad del negocio porque no se sabe qué va a cambiar mañana”, indica Mazzeo. Pero a su vez detectaron que sigue unos pasos atrás del mercado norteamericano. Las aplicaciones tienen que estar desarrolladas para funcionar con los orquestadores, deben adaptarse y estar conectadas a ciertas API para aprovechar sus ventajas. “Si bien quedan pocas telcos que no conozcan la tecnología, todavía no es algo que los desarrolladores de acá propongan. Hay una falta de capacitación que nos lleva a estar involucionados a escala local”, señala el gerente de la empresa. Para él, falta tiempo, pero Docker, el software opensource, se transformó en un
Se pasó a un modelo de continuidad del negocio porque no se sabe qué va a pasar mañana.” — Hernán Mazzeo, gerente de Servicios Profesionales y Gestionados de Iplan.
claro estándar. “Es inminente que todos empiecen a trabajar sobre estos entornos. Indiscutiblemente, los clientes nos piden portabilidad y llevar sus aplicaciones a formatos estándar. Esto es lo que está logrando la tecnología y lo hace a pasos bastante ligeros”, destaca el responsable de los servicios cuya mayor demanda viene de las startups. La movilidad que proporcionan estos nuevos formatos cambió a su vez el juego para los proveedores. Ahora, para retener a sus clientes, gigantes como Microsoft, Amazon y Google están vendiendo comodidad. “Como con la arquitectura correcta es muy fácil salirse pasarse de un vendor a otro, intentan brindar un muy buen servicio orientado a los desarrolladores. Tenes API por todos lados, un dashboard excelente y módulos de bases de datos, storage o big data ya administrados que te proveen como un servicio más”, explica Benzaquen de Nubeliu y resalta: “Al desarrollador le encanta tener todo servido porque se evita contratar a alguien que se lo configure y esto es un cualidad que los atrapa. Son API que no controlan, que pagan por mes y si armaron su software para trabajar con estos servicios quedan esclavizados”, advierte el CEO. Desde este escenario, el futuro parece ser multi Cloud. Las nuevas plataformas permiten a los desarrolladores preservar su agnosticismo y elegir los proveedores más convenientes en cada caso. Las aplicaciones ya no corren sobre la plataforma de una sola empresa, sino que tiene sus partes separadas en distintas nubes. Almacenamiento acá, procesamiento allá. “En promedio, hoy las empresas usan más de tres nubes distintas”, señala el CMO de Docker. La adopción de arquitecturas basadas en microservicios alojados en contenedores creció porque ante la incertidumbre, necesitan mantener sus opciones abiertas. “La facilidad de su administración, control y portabilidad puede no ser algo que valoren mucho hoy, pero sí mañana, cuando escalen y necesiten mayor flexibilidad”, indica Mazzeo, de Iplan. Mientras que las startups ya se subieron a la nueva tendencia, el desafío lo tienen —como siempre— las empresas con trayectoria. “No todas las aplicaciones están preparadas para correr en contenedores. Las viejas aplicaciones legacy con sus arquitecturas monolíticas van a funcionar al igual que en un servidor físico, no están pensadas para el nuevo paradigma y hay que migrarlas”, plantea Benzaquen. Según ve en el trato con sus clientes, algunas grandes empresas están empezando a analizar las posibilidades que brindan los contenedores y otras ya decidieron migrar sus sistemas. “Estamos frente a un cambio de paradigma, los desarrolladores lo descubren y pocos quieren volver al viejo modelo. Es chocante para algunos, pero es una tecnología que va a permitir desarrollar más rápido y mejor”, concluye.