Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Optimización de costos en hyperscalers: la ventaja de Azure

By Luca SerpietriApr 10, 20257 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

¿Qué buenas prácticas de optimización de costos son estándar en Azure, AWS y GCP, y en qué se diferencia Azure del resto a la hora de ahorrarles dinero a sus clientes?

Foto de Łukasz Łada en Unsplash

Esto me hizo pensar: ¿y si compartimos algunas estrategias de mínimo común denominador aplicables a todos los hyperscalers y luego nos metemos de lleno en uno para resaltar sus particularidades?

En este post arrancamos nuestro recorrido por la optimización de costos en Azure, partiendo de las buenas prácticas que aplican a los tres grandes: AWS, GCP y Azure. Después veremos en detalle tres funcionalidades que solo ofrece Azure y que requieren un esfuerzo mínimo del cliente, con un potencial de ahorro enorme.

Los tres grandes: similitudes en la optimización de costos

Si bien los equipos de AWS, GCP y Azure invertirán tiempo y dinero en resaltar las diferencias entre sus servicios, hay principios de optimización de costos que aplican a todos por igual. Al fin y al cabo, la adopción de la nube no se mueve solo por funcionalidades y capacidades, sino también por la eficiencia, y en los últimos años los clientes han dejado claro que exigen más visibilidad sobre sus costos y más oportunidades para reducirlos.

La FinOps Foundation, por ejemplo, está impulsando un enfoque relativamente estandarizado para analizar costos en la nube y detectar ineficiencias. Si te interesa conocer más sobre su trabajo, échales un vistazo aquí https://www.finops.org/

Pero no nos desviemos. Ya sea que estés encarando tu primera migración a la nube o que lleves en ella desde la época de SimpleDB, vamos a profundizar en 3 de los principios fundamentales de optimización de costos que aplican por igual a AWS, GCP y Azure.

1\. Right-sizing de instancias

El concepto de right-sizing es un clásico de la nube: asegurarse de que los clientes usen recursos que se ajusten a sus necesidades, ni más ni menos. Como pasa con la gran mayoría de las decisiones en la nube (y en la vida), el tamaño de tu recurso (ya sea una instancia de DB administrada, un contenedor, un pod, una VM, un sistema de archivos, etc.) es un equilibrio entre lo que necesitas ahora, lo que podrías necesitar en el futuro y la rapidez con la que lo vas a necesitar.

Todos los hyperscalers cruzan los datos de facturación con métricas operativas (como uso de red, memoria o CPU de las instancias, por ejemplo) para justificar la reducción del tamaño del recurso o incluso su eliminación, ofreciendo una estimación de cuánto se ahorraría.

Azure no se queda atrás y le entrega sus recomendaciones a los clientes a través de Azure Advisor, que, al igual que Compute Optimizer de AWS y Recommender de GCP, propone sugerencias para hacer right-sizing de los recursos o eliminar los que están inactivos.

No te saltes la revisión de esas recomendaciones: te sorprendería cuántos recursos se podrían eliminar. Más adelante en este artículo profundizaremos en algunas capacidades adicionales que ofrece Azure, así que sigue leyendo.

2\. Reservations

Pagar por adelantado los recursos de cómputo a cambio de un compromiso de tiempo fijo reduce los costos de manera significativa en todas las nubes. En todos los hyperscalers, este método de compra está disponible para una amplia gama de servicios (Compute, Storage, Databases…). Aunque pueda parecer intimidante, es la forma más rápida de ahorrar en la nube: sin cambios de configuración, sin re-arquitectura, solo unos clics y el precio por unidad de tu recurso baja drásticamente.

Azure ofrece una Reservation Recommendation API y también muestra recomendaciones a nivel de suscripción a través de Azure Advisor; sin embargo, si quieres ver recomendaciones para todo tu billing scope (como deberías, para maximizar el aprovechamiento de la Reservation), la forma de mostrarlas es algo torpe: en el portal de Azure, ve a Reservations > Add y allí encontrarás todos los servicios a los que aplican las reservations y sus recomendaciones.

En mi opinión, los portales de AWS y GCP me parecen más fáciles de usar, ya que ambos muestran las recomendaciones de reservations para los servicios elegibles en un solo lugar, sin tener que andar haciendo clic por todos lados. Pero no nos quedemos en lo estético: lo importante es que analices esas recomendaciones y apliques cuanto antes las que se ajusten a tu caso de uso. https://azure.microsoft.com/en-us/pricing/offers/savings-plan-compute

3\. Spot Instances

Si corres workloads que toleran interrupciones (piensa en entornos de pruebas y sandbox, batch jobs, procesamiento asíncrono), las tres plataformas ofrecen Spot instances. La idea central detrás de las Spot instances es que los hyperscalers tienen capacidad excedente en sus centros de datos: en lugar de dejarla ociosa, permiten a los clientes usar esa capacidad extra con un descuento fuerte. En AWS y Azure los clientes incluso pueden fijar un precio máximo que están dispuestos a pagar por esas VMs, lo que les da mucho más control sobre sus costos.

Supongamos que aumenta la demanda de capacidad en la Availability Zone. En ese caso, el precio Spot sube y podría superar el umbral del cliente. Cuando esto ocurre, el proveedor de nube inicia el proceso de eviction, apagando la VM. Los clientes pueden conservar la VM y sus discos (pagando por ellos) y esperar a que el precio vuelva a bajar, o simplemente eliminarla y dejar de generar cargos.

Azure ofrece Spot Virtual Machines que admiten configuración de precio máximo y comportamiento de eviction, pero conviene destacar que las máquinas de la serie B y los tamaños promo no son compatibles. Los clientes incluso pueden desplegar Virtual Machine Scale Sets para Spot VMs, combinando SpotVMs con escalado automatizado, lo que reduce aún más el riesgo de sustos en la factura por escalado excesivo.

En qué se diferencia Azure

Ya vimos algunos enfoques comunes de optimización en la nube válidos para todos los hyperscalers, pero ¿qué hay de las particularidades de Azure? ¿Tiene ventajas únicas que podríamos aprovechar para reducir aún más nuestros costos?

1\. Azure Hybrid Benefit: juega la carta del BYOL

Los clientes de DoiT pagan millones de dólares al mes en licencias de Windows cuando ejecutan workloads de Windows en AWS o GCP, pero quienes ya tienen un acuerdo de licencias de Windows con Software Assurance pueden aprovechar el Azure Hybrid Benefit: les permite trasladar a sus despliegues en la nube las licencias on-premises existentes de Windows Server, Microsoft SQL Server y productos Linux.

Sé que no es el tema más emocionante del mundo, pero es importante señalar que este programa permite a los clientes reutilizar sus licencias on-premise para sus recursos en Azure, con un descuento enorme en el proceso. Si bien AWS y GCP han llegado a acuerdos con Microsoft que permiten a los clientes traer sus propias licencias al usar productos de Microsoft en sus nubes, el Azure Hybrid Benefit reduce los costos totales de manera significativa (a veces hasta un 85%). Conoce más en este enlace

2\. Precios Dev/Test

En una jugada única, Azure ofrece precios especiales para entornos no productivos (Dev/Test pricing) a través de sus programas de Enterprise Agreement. Más arriba mencionamos cómo las Spot VMs pueden usarse para reducir costos en entornos de prueba, pero esa estrategia se limita a las VMs de Azure. Con el Dev/Test Pricing se cubre una amplia variedad de servicios, incluidos SQL Database y App Service, lo que reduce significativamente el TCO de los entornos de prueba. Si tu equipo usa Azure DevOps o suscripciones MSDN, asegúrate de levantar VMs y servicios en el tier de Dev/Test cuando corresponda.

3\. Activa el Dynamic Scaling para Azure Cosmos DB

Este podría haber pasado desapercibido, sobre todo si eres usuario de Azure Cosmos DB desde hace tiempo. Desde septiembre de 2024, Microsoft cambió la forma en que Cosmos DB escala sus bases de datos al habilitar el Dynamic Scaling.

Antes, el escalado se disparaba según la región o partición más activa: a primera vista parece un comportamiento deseable, pero cuando tu base de datos tiene workloads desiguales, donde una región o partición está bajo mucha más presión que las demás, este comportamiento provoca scale-ups innecesarios y costosos.

Ahora, Microsoft factura las bases de datos multirregión por región, no según la región más activa como antes. Además, el escalado ocurre por partición, lo que les permite a los clientes obtener una facturación más precisa según sus patrones.

Tip accionable: si tu cuenta de Azure Cosmos DB se creó después del 25 de septiembre de 2024, no tienes que hacer nada, viene habilitado por defecto. Para las cuentas creadas antes de esa fecha, puedes habilitarlo siguiendo las instrucciones en este enlace.

Ahora que vimos qué buenas prácticas son comunes a AWS, GCP y Azure, y cómo Azure tiene algunos ases bajo la manga para que nuestras inversiones en la nube sean más eficientes, ¿cuál sería tu siguiente paso? Contactar a DoiT, por supuesto, en doit.com/services 😊