Reducción del desperdicio en la nube mediante la optimización de Kubernetes con aprendizaje automático

La nube se ha convertido en el estándar de facto para la implementación de aplicaciones. Kubernetes se ha convertido en el estándar de facto para la implementación de aplicaciones. La optimización óptima de las aplicaciones implementadas en Kubernetes es un objetivo móvil, y eso significa que las aplicaciones pueden tener un rendimiento inferior al esperado o un gasto excesivo. ¿Podría ese problema resolverse de alguna manera usando la automatización?

Esa es una pregunta muy razonable para hacer, una que otros también han hecho. A medida que Kubernetes evoluciona y se vuelve más complejo con cada iteración, y las opciones de implementación en la nube proliferan, ajustar la implementación y el funcionamiento de las aplicaciones se vuelve cada vez más difícil. Esa es la mala noticia.

La buena noticia es que ahora hemos llegado a un punto en el que Kubernetes existe desde hace un tiempo y muchas aplicaciones lo han utilizado a lo largo de su vida. Eso significa que hay un cuerpo de conocimiento, y de manera crucial, datos, que se ha acumulado. Lo que esto significa, a su vez, es que debería ser posible utilizar el aprendizaje automático para optimizar la implementación de aplicaciones en Kubernetes.

StormForge ha estado haciendo eso desde 2016. Hasta ahora, se han enfocado en entornos previos a la implementación. A partir de hoy, también apuntan a Kubernetes en producción. Nos reunimos con el CEO y fundador Matt Provo para discutir los pormenores de la oferta de StormForge.

Optimización de Kubernetes con aprendizaje automático

Cuando Provo fundó StormForge en 2016 después de un largo período como gerente de producto en Apple, el objetivo era optimizar la forma en que se consume electricidad en grandes equipos de HVAC y fabricación, utilizando el aprendizaje automático. La empresa estaba usando Docker para sus implementaciones y, en algún momento a fines de 2018, levantaron y cambiaron a Kubernetes. Fue entonces cuando encontraron el caso de uso perfecto para su competencia principal, como lo expresó Provo.

Un pivote, una adquisición, 68 millones de dólares en financiación y muchos clientes después, StormForge anuncia hoy Optimize Live, la última extensión de su plataforma. La plataforma utiliza el aprendizaje automático para mejorar de forma inteligente y automática el rendimiento y la rentabilidad de las aplicaciones en entornos de producción nativos de la nube.

Lo primero a tener en cuenta es que la plataforma de StormForge ya lo había estado haciendo para entornos de preproducción y no producción. La idea es que los usuarios especifiquen los parámetros para los que desean optimizar, como el uso de la CPU o la memoria.

Luego, StormForge activa diferentes versiones de la aplicación y regresa a las opciones de configuración del usuario para implementar la aplicación. StormForge afirma que esto suele dar como resultado un ahorro de costes de entre un 40 % y un 60 %, y un aumento del rendimiento de entre un 30 % y un 50 %.

Sin embargo, también es importante tener en cuenta que se trata de un problema de optimización multiobjetivo. Lo que esto significa es que, si bien los modelos de aprendizaje automático de StormForge intentarán encontrar soluciones que logren un equilibrio entre los diferentes objetivos establecidos, normalmente no será posible optimizarlos todos simultáneamente.

Cuantos más parámetros para optimizar, más difícil es el problema. Normalmente, los usuarios proporcionan hasta 10 parámetros. Lo que ve StormForge, dijo Provo, es un continuo de costo-rendimiento.

En entornos de producción, el proceso es similar, pero con algunas diferencias importantes. StormForge llama a esto el lado de observación de la plataforma. Se utilizan datos de telemetría y observabilidad, a través de integraciones con soluciones APM (Application Performance Monitoring) como Prometheus y Datadog.

Luego, Optimize Live proporciona recomendaciones casi en tiempo real, y los usuarios pueden optar por aplicarlas manualmente o usar lo que Provo llamó «establecer y olvidar». Es decir, deje que la plataforma elija aplicar esas recomendaciones, siempre que se cumplan ciertos umbrales definidos por el usuario:

«El objetivo es proporcionar suficiente flexibilidad y una experiencia de usuario que permita al propio desarrollador especificar las cosas que les interesan. Estos son los objetivos en los que debo permanecer. Y estos son mis objetivos. Y a partir de ese momento, la máquina el aprendizaje se activa y toma el control. Proporcionaremos decenas, si no cientos, de opciones de configuración que cumplan o superen esos objetivos», dijo Provo.

La delgada línea con Kubernetes en producción

Hay una línea muy fina entre el aprendizaje y la observación de los datos de producción y el ajuste en vivo en la producción, agregó Provo. Cuando cruza esa línea, el nivel de riesgo es inmanejable e insostenible, y los usuarios de StormForge no querrían eso, esa fue su respuesta inequívoca. Lo que se les presenta a los usuarios es la opción de elegir dónde está su tolerancia al riesgo y con qué se sienten cómodos desde el punto de vista de la automatización.

En preproducción se realizan pruebas de carga de las diferentes opciones de configuración de las aplicaciones mediante un software creado a tal efecto. Los usuarios pueden traer su propia solución de pruebas de rendimiento, con la que se integrará StormForge, o utilizar la propia solución de pruebas de rendimiento de StormForge, que se incorporó a través de una adquisición.

forjatormenta.png

Optimizar la implementación de aplicaciones en Kubernetes es un objetivo múltiple Imagen: StormForge

Históricamente, esta ha sido la mayor entrada de datos de StormForge para su aprendizaje automático, dijo Provo. Emprenderlo, sin embargo, no fue fácil. StormForge era rico en talento, pero pobre en datos, como dijo Provo.

Para impulsar su aprendizaje automático, StormForge ofreció a sus primeros grandes clientes muy buenos tratos, a cambio del derecho a utilizar los datos de sus casos de uso. Eso funcionó bien, y StormForge ahora ha construido su propiedad intelectual en torno al aprendizaje automático para problemas de optimización de objetivos múltiples.

Más específicamente, en torno a la optimización de Kubernetes. Como señaló Provo, la base está ahí, y todo lo que se necesita para ajustar cada caso de uso específico y cada nuevo parámetro son unos minutos, sin necesidad de ajustes manuales adicionales.

Hay un poco de aprendizaje que tiene lugar, pero en general, StormForge ve esto como algo bueno. Cuantos más escenarios y más situaciones pueda encontrar la plataforma, mejor rendimiento puede tener.

En el escenario de producción, StormForge compite en cierto sentido con el propio Kubernetes. Kubernetes tiene capacidades de escalado automático, tanto vertical como horizontalmente, con VPA (Vertical Pod Autoscaler) y HPA (Horizontal Pod Autoscaler).

StormForge funciona con el VPA y planea trabajar también con el HPA, para permitir lo que Provo llamó escalado inteligente bidireccional. StormForge mide la optimización y el valor proporcionado frente a lo que VPA y HPA recomiendan para el usuario dentro de un entorno de Kubernetes.

Incluso en el escenario de producción, dijo Provo, están viendo ahorros de costos. No es tan alto como las opciones de preproducción, pero sigue siendo un ahorro de costos del 20 % al 30 % y, por lo general, una mejora del 20 % en el rendimiento.

Provo y StormForge llegan incluso a ofrecer una garantía de reducción de desechos en la nube. StormForge garantiza una reducción mínima del 30 % de los costos de recursos de la aplicación en la nube de Kubernetes. Si los ahorros no coinciden con el 30 % prometido, Provo pagará la diferencia en su factura de la nube durante 1 mes (hasta $50 000 por cliente) y donará el monto equivalente a una organización benéfica ecológica de su elección.

Cuando se le preguntó, Provo dijo que no tenía que cumplir con ese compromiso ni una sola vez hasta la fecha. A medida que más y más personas se trasladan a la nube y se consumen más recursos, existe una conexión directa con los desechos de la nube, que también está relacionado con la huella de carbono, agregó. Provo considera que StormForge tiene un fuerte lado orientado a la misión.

Deja un comentario