ST-KEDA: Predictive Cost-Aware Autoscaling for Kubernetes Microservices via Spectral- Temporal Demand Forecasting
ST-KEDA es un marco de autoescalado predictivo y consciente del costo para microservicios de Kubernetes que integra la Descomposición de Modo Variacional y el pronóstico de LSTM cooperativo consciente de la topología con la estimación de costos en tiempo real para reducir significativamente los costos de infraestructura y la latencia de escalado, manteniendo al mismo tiempo un estricto cumplimiento de los SLA.
Artículo original bajo licencia CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
El software moderno a menudo no se ejecuta como un único programa masivo, sino como una colección de partes pequeñas e independientes llamadas microservicios. Estas partes se comunican entre sí constantemente, como un equipo de especialistas que se pasan notas para resolver un problema complejo. Para mantener este equipo funcionando sin problemas, las computadoras que los alojan deben ajustar su potencia automáticamente. Si muchas personas visitan un sitio web a la vez, el sistema necesita añadir más trabajadores instantáneamente. Si el tráfico disminuye, debe dejar ir a los trabajadores para ahorrar dinero. Este ajuste automático se llama escalado automático (autoscaling). Actualmente, la mayoría de los sistemas esperan hasta ver un problema —como tiempos de respuesta lentos— antes de reaccionar. Esta reacción toma varios minutos, un retraso que se siente como una eternidad en el mundo digital, causando que los usuarios experimenten lentitud o errores. Además, las personas que gestionan estos sistemas suelen carecer de una visión clara e inmediata de cuánto cuesta cada ajuste específico, lo que dificulta equilibrar el rendimiento con el presupuesto.
Un equipo de investigadores de la Universidad Multimedia de Malasia ha desarrollado un nuevo sistema diseñado para resolver ambos problemas a la vez. Llaman a su marco de trabajo ST-KEDA. En lugar de esperar a que el tráfico aumente y luego reaccionar, este sistema intenta predecir el aumento antes de que ocurra. También lleva una cuenta corriente del costo de cada acción que toma, lo que le permite tomar decisiones que ahorran dinero sin sacrificar la velocidad. Los investigadores probaron este sistema en dos ejemplos del mundo real de software complejo: una tienda de compras en línea con once servicios diferentes y un sistema de reserva de boletos de tren con cuarenta y un servicios. Sus hallazgos muestran que, al mirar hacia adelante y comprender el impacto financiero de cada movimiento, el sistema puede reducir los costos de infraestructura en más de un tercio y reducir drásticamente el número de veces que añade y elimina trabajadores frenéticamente.
El núcleo del problema radica en cómo los sistemas actuales vigilan los problemas. Las herramientas estándar monitorean la carga de trabajo actual de la computadora, como qué tan ocupados están los procesadores. Cuando la carga de trabajo cruza cierta línea, el sistema ordena más potencia de cómputo. Sin embargo, el tiempo que toma notar el pico, calcular la necesidad, encontrar una nueva computadora, descargar el software necesario y arrancar el nuevo trabajador es significativo. En las pruebas de los investigadores, todo este proceso tomó un promedio de casi cinco minutos. Durante esta ventana, el sistema se ve abrumado y los usuarios sufren. El nuevo enfoque, ST-KEDA, cambia la estrategia de reaccionar a anticipar. Observa el historial de patrones de tráfico para adivinar qué pasará en los próximos minutos.
Para que estas conjeturas sean precisas, el sistema primero descompone la compleja historia del tráfico en piezas más simples y comprensibles. Imagine una grabación ruidosa de una calle concurrida; contiene el zumbido constante del tráfico, el patrón rítmico de la hora punta y sonidos repentinos y agudos como el claxon de un auto. Los investigadores utilizaron una técnica matemática para separar estos diferentes ritmos del ruido. Descubrieron que, al estudiar estos patrones separados —las tendencias constantes, los ciclos diarios y los picos repentinos—, la computadora podía entender el tráfico mucho mejor que mirando solo los datos brutos y desordenados. Esta separación permitió al motor de predicción ver la estructura subyacente de la demanda en lugar de solo el caos.
Luego, el sistema utiliza un modelo de aprendizaje sofisticado que entiende cómo las diferentes partes del software dependen entre sí. En una arquitectura de microservicios, una parte a menudo activa a otra. Por ejemplo, un usuario al hacer clic en "comprar" puede activar una verificación del inventario, que luego activa un proceso de pago. Si el sistema predice un aumento en los clics de "comprar", sabe que los servicios de inventario y pago también necesitarán más potencia, incluso antes de que esos servicios muestren signos de estar ocupados. Al mapear estas conexiones, el sistema puede preparar toda la cadena de servicios simultáneamente. Esto evita la lentitud que ocurre cuando una parte está lista pero la siguiente aún está despertando.
Crucialmente, este sistema no solo se preocupa por la velocidad; se preocupa por el precio. Los servicios de computación en la nube cobran por minuto por cada unidad de procesador y memoria utilizada. Los investigadores construyeron una capa en su sistema que calcula el costo de cada decisión de escalado en tiempo casi real. Mientras que las facturas tradicionales pueden tardar días en llegar, este sistema estima el costo dentro de segundos de realizar un cambio. Sabe exactamente cuánto costará una nueva instancia de computadora durante la próxima hora. Esto le permite al sistema hacer un intercambio: puede decidir ahorrar dinero manteniendo el número de trabajadores ligeramente más bajo, aceptando una probabilidad muy pequeña de una ralentización, o puede gastar más para garantizar una velocidad perfecta. Los investigadores probaron una configuración donde el sistema priorizaba el ahorro de dinero, y logró reducir con éxito el costo total de operar la tienda en línea en un 34.7 por ciento.
Los resultados de las pruebas fueron sorprendentes. Comparado con el sistema reactivo estándar, el nuevo enfoque redujo el tiempo para ajustarse al nuevo tráfico de casi cinco minutos a solo ocho segundos. Esta velocidad significó que el sistema rara vez se quedaba atrás. Los investigadores también midieron algo llamado "flapping" (oscilación), que ocurre cuando un sistema sobrereacciona, añadiendo demasiados trabajadores, luego eliminándolos inmediatamente, luego añadiéndolos de nuevo. Este cambio constante es costoso e inestable. El nuevo sistema redujo este comportamiento caótico en un 96.6 por ciento, creando una operación mucho más fluida. Cuando se le permitió al sistema ignorar las preocupaciones de costo y enfocarse solo en el rendimiento, el número de respuestas lentas cayó a solo un 2 por ciento, una mejora significativa respecto al 8 por ciento del sistema estándar.
El estudio también reveló que los componentes específicos de su diseño eran todos necesarios. Cuando eliminaron la capacidad de descomponer los patrones de tráfico, las predicciones se volvieron menos precisas. Cuando eliminaron la comprensión de cómo se conectaban los servicios entre sí, el sistema falló al no preparar las partes descendentes de la cadena a tiempo. Y cuando eliminaron el seguimiento de costos, el sistema ya no pudo realizar los intercambios inteligentes que llevaron a tales ahorros significativos. Los investigadores encontraron que el mejor equilibrio se logró cuando el sistema fue ajustado para preocuparse tanto por el costo como por la velocidad, aceptando un aumento minúsculo en las respuestas lentas para lograr ahorros financieros masivos.
Este trabajo demuestra que gestionar sistemas de software complejos no tiene por qué ser un juego de alcanzar al rival. Al combinar una comprensión profunda de cómo evolucionan los patrones de tráfico, cómo las diferentes partes del software dependen unas de otras y exactamente cuánto cuesta cada decisión, es posible ejecutar estos sistemas de manera más eficiente y económica. Los investigadores probaron sus ideas en dos tipos distintos de aplicaciones, sugiriendo que el enfoque es lo suficientemente robusto como para manejar diferentes tipos de cargas de trabajo. Aunque el sistema fue probado en un entorno de nube específico, los principios de predecir la demanda e integrar el costo en el ciclo de toma de decisiones ofrecen un camino claro a seguir para cualquiera que gestione servicios digitales a gran escala. El futuro de la computación en la nube puede no tratarse solo de tener más potencia, sino de saber exactamente cuándo y cómo usarla.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.