Desde hace algunos años, se escucha en las empresas una cantinela que ha ganado fuerza en los últimos meses: la nube no es un recurso tan barato. Al contrario, en algunos casos resulta más cara que una buena infraestructura tradicional en las instalaciones. Hasta el punto de que se observa un movimiento -visto en Francia por Cigref- de reinternalización de ciertos recursos de la nube para controlar mejor los costes o incluso reducirlos.
En una lógica de optimización de costes, es mejor que las empresas que optan por una nube estable se aseguren de que los recursos movilizados para ejecutar, en particular, los clústeres Kubernetes (muy de moda) estén optimizados al máximo. Es decir, que las capacidades de la nube dedicadas a estos procesos no estén infrautilizadas para este fin. Sin embargo, parece que en la vida real, la situación dista mucho de ser idílica, como se muestra. Un último estudio publicado por Cast.
Los megaclusters se salvan de la subutilización de recursos
Para su benchmark, el proveedor se basó en el análisis de 4.000 clusters que funcionaron en AWS, GCP y Microsoft Azure entre el 1 de enero y el 31 de diciembre de 2023, comparando el uso de CPU y memoria con respecto a los recursos de K8s aprovisionados, excluyendo los clusters con menos de 50 CPU. La sorpresa fue grande: “Solo el 13% de las CPU que se aprovisionaron se utilizaron en promedio”, dice Cast. “El uso de memoria fue ligeramente mejor, en torno al 20%”. Para los clusters más grandes (+1.000 CPU), la situación no es mucho mejor con una tasa de aprovisionamiento del 17%; solo los clusters gigantes (+30.000 CPU pero que representan menos del 1% del panel) lo hacen mejor, subiendo al 44%.
“Estos hallazgos resaltan que muchas empresas que ejecutan aplicaciones en Kubernetes aún se encuentran en una etapa temprana de optimización, luchando con la complejidad de administrar una infraestructura nativa de la nube y repitiendo los mismos errores que causaron su gasto excesivo en 2022”. ¿El tipo de nube marca una diferencia? Claramente, no mucha: “La utilización de la CPU varía poco entre AWS y Azure, en alrededor del 11%. El desperdicio de la nube es menor en Google, un 17% [...] En cuanto a la memoria, las diferencias de uso son pequeñas entre los proveedores: GCP (18%), AWS (20%) y Azure (22%).
Consejos y mejores prácticas
Cast ha señalado a algunos culpables de esta situación de sobrecarga. En concreto, los clústeres se aprovisionan con más capacidad de la que deberían y las solicitudes de CPU y memoria se establecen en niveles superiores a los que realmente requieren las aplicaciones de Kubernetes, lo que genera un desperdicio de capacidad.
¿Cuáles son entonces las respuestas a este costoso problema? Esto implica aprovisionar el tipo, tamaño y número correctos de máquinas virtuales, ajustar correctamente las solicitudes de cargas de trabajo y escalar automáticamente los nodos para combatir el desperdicio de recursos de CPU. También se pueden favorecer las instancias puntuales, que según Cast representan una oportunidad muy interesante para reducir costos, aunque sin cifras que lo respalden.
Otras noticias que te pueden interesar