Costes en Azure

Introducción

Hay una frase que mi madre siempre me decía cuando era niño al preguntarle si me podía comprar una u otra cosa: “el dinero no crece en los árboles”. Esta es una verdad que me ha acompañado toda la vida y que por supuesto es aplicable al mundo de la empresa y en especial a los proyectos en Cloud.

Ilustración 1 https://www.efficientallocation.net/wp-content/uploads/2020/12/moneytree2-300x287.jpg

Conceptos Generales

A diferencia de un proyecto on-premise en el que los costes se pueden calcular con bastante precisión antes de implementarlo (me refiero a nivel de infraestructuras) dado que podremos prever el coste del hardware, de las licencias, el almacenamiento, etc., en un proyecto Cloud el paradigma cambia totalmente.

En un entorno Cloud, los servicios que usamos se basan en la premisa de “pago-por-uso”, es decir, si yo almaceno 10 Gb de datos en una cuenta de almacenamiento durante 4 horas y luego borro esos datos solo tendré que pagar por el consumo de esa cantidad de datos almacenados durante 4 horas, algo muy diferente de lo que pasa en entornos on-premise en donde yo pago por el almacenamiento que reservo lo use o no.

Cada servicio Cloud tiene su forma de calcular el coste de este, unos en función de los minutos/horas usadas, por el tamaño de este, por el número de peticiones y por un montón más de variables. Además, al trabajar en el Cloud podemos adaptarnos a las necesidades reales de consumo con cambios de tamaño de los servicios, escalado y des escalado manual o automático de los mismos y otro largo etc. de variables, lo cual complica más cualquier tipo de cálculo.

Todo lo anterior hace que realizar un cálculo que se aproxime más o menos a la futura realidad es muy complicado y lo habitual es que tomemos todos los cálculos como meramente orientativos (mi consejo es que cuando hagáis algún presupuesto para presentarlo al cliente dejéis meridianamente claro que es solo un cálculo orientativo el cual puede variar en función de todas las variables que he comentado).

Ilustración 2 https://www.ciospain.es/archivos/201502/nube-ahorro.jpg

Herramientas

En no pocas ocasiones, me he encontrado con un coste muy elevado en facturas por servicios Cloud y al mirar donde se estaba produciendo el gasto y desglosarlo he comprobado lo fácil que sería reducir dicho coste con acciones sencillas.

Nuestro proveedor Cloud seguramente nos va a ofrecer diversas herramientas propias para el monitoreo y seguimiento de los costes de nuestro entorno, así como la creación de vistas o “dashboards” personalizados a través de sus portales de gestión Cloud. Estas herramientas han mejorado mucho a lo largo del tiempo.

En Azure, sería el servicio “Cost Management + Billing” el cual nos permite desglosar los costes por diferentes filtros mostrando gráficas acorde a los mismos.

Ilustración 3 https://learn.microsoft.com/es-es/partner-center/media/advanced-specializations/partner-cost.png
Ilustración 4 https://learn.microsoft.com/es-es/azure/cost-management-billing/costs/media/get-started-partners/customer-costs2.png

También existen herramientas de terceros como CloudHealth, Turbonomic, Cloudyn (adquirida por Microsoft) o RightScale, entre otras muchas, que permiten optimizar los gastos en la nube mediante la identificación de los recursos que no se están aprovechando, de manera que se puedan ajustar. Estas herramientas tienen “el problema” de que suelen ser de pago por lo que deberemos de realizar un desembolso económico para poder utilizarlas.

Ilustración 5 https://www.znetlive.com/images/azure-cost-management-from-cloudyn.jpg

Otra opción, quizás más útil, es tener de forma automatizada esa información en un repositorio que yo luego pueda consumir de alguna forma. Azure, al igual que el resto de los proveedores Cloud, permite (con los permisos necesarios) atacar a su API pública para descargarte toda la información de tu consumo. Esto nos va a permitir crear nuestros propios dashboards, tablas, etc. usando este origen de datos y explotar posteriormente esta información de manera más fácil.

Digital Lover

 

Podemos crear un script que se ejecute con frecuencia diaria para descargar los costes en formato CSV, y subir esta información a un repositorio como pudiera ser un Storage Account. Posteriormente, podremos crear mediante otra herramienta de visualización que permita tener como origen de datos ficheros CSV) una serie de gráficos, tablas etc. totalmente personalizados a nuestras necesidades.

Hay que tener en cuenta a la hora de hacer el script, que dependiendo del tipo de suscripción que sea (ej: CSP, EA Agreement, etc.) los campos que devuelve el API pueden variar en nombre y contenido, por lo que habrá que tener en cuenta este punto para adaptarnos.

En una suscripción perteneciente a un EA Agreement:

En una suscripción perteneciente a un CSP:

También deberemos tener cuidado con el número de líneas que devuelve por cada petición. Por razones de rendimiento son un límite de 1000 (al menos yo no he encontrado información que indique que es posible aumentar esta cantidad) por lo que será necesario paginar la información. En caso de que haya más de 1000 registros la llamada nos devolverá un valor en la propiedad “nextLink” con la URL que debemos llamar para descargar los siguientes registros y así hasta que este valor quede “nulo”.

Al tener los costes de todas nuestras suscripciones centralizados en un repositorio y posteriormente consumirlos, tenemos la ventaja de poder usar un único punto de acceso para acceder a los consumos de todas nuestras suscripciones incluidas las de diferentes proyectos.

Conclusiones

La gestión de los costes en Cloud de manera constante es vital para evitar el sobre coste innecesario y poder hacer una previsión a futuro de estos, adelantándonos a las necesidades.

Analizar en donde se me va el dinero en una factura y por qué, es imprescindible, ya que voy a poder detectar, analizar y remediar ese gasto en muchas ocasiones innecesario, tomando las medidas adecuadas.

Algunas ventajas de tener un correcto control de costes son:

  • Ahorro de costos: La gestión adecuada de los costes en Azure nos ayudará a ahorrar dinero del presupuesto, a través de la optimización de los recursos de Azure y la identificación de servicios donde se pueden realizar ahorros.
  • Planificación del presupuesto: El control de costes también es importante para la planificación del presupuesto. Si sabemos cuánto cuesta cada uno de los servicios y el porqué, podremos planificar y asignar recursos financieros de manera más eficiente.
  • Monitoreo del uso: El control de costes en Azure permite a los responsables de las distintas áreas del proyecto monitorear su uso y detectar cualquier uso no autorizado o inusual.
  • Facturación clara: El control de costes en Azure también garantiza una facturación clara y detallada, lo que permite a los responsables entender exactamente lo que están pagando y por qué.

En resumen, el control de costes en Azure es importante porque ayuda a las empresas a ahorrar dinero, planificar su presupuesto, monitorear su uso y comprender sus facturas.

 

 

Guía de posibilidades profesionales sobre Azure
He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA