Azure Media Services: estimación de consumo y explicación de su pricing

Unos de los desafíos que vinieron con el cambio de paradigma hacia la nube y de la aparición de nuevos servicios, es la estimación de capacidad y proyección de gastos a futuro, necesito conocerlos!

En primera instancia, en este link se encuentran los detalles de los precios en el sitio oficial de Azure. Te recomiendo que primero leas eso y luego si te quedan dudas, leas este post en el cual intento explicarlo con mis palabras. Si optás por el workflow general de media services, lo cual implica encodear el contenido y luego disponibilizarlo, debes tener en cuenta 4 tipos de costos.

Encoding GB

Costo de encoding = archivo de entrada + archivos de salida. Ejemplo, puedo subir un video en formato WMV de 2 GB, y luego de realizar el encoding a H.264, obtengo un archivo de 2.5 GB. En ese caso el costo total será de 4.5 GB. La siguiente calculadora muestra los precios en este momento:

La calculadora está disponible en: https://azure.microsoft.com/en-us/pricing/calculator/?scenario=full

Unidades Reservadas para encoding – Encoding Reserved Units

El costo de unidades reservadas es de $99 (dólares) al mes. Tu cuenta será cargada con el máximo número de Unidades Reservadas (RUs) que fueron provisionadas ese día en cuenta. El precio por día se calcula dividiendo $99 por 31. Por ejemplo, si empezás con 3 RUs y una hora después decidís subir a 5 y luego bajar a 2, el precio a pagar será de 5 RUs para ese día.

Con las unidades reservadas tenés el gran beneficio de la paralelización de tus tareas. Por ejemplo, si tenes 5 RUs, entonces el servicio corre 5 de tus tareas en paralalo. Ni bien una termina, toma la siguiente de la cola (queue) para procesarla.

Si no contás con una RU, el tiempo de espera hasta que una tarea inicie puede llegar a ser de hasta varias horas. Si solamente tenes una RU, una tarea no empezará hasta que termine la anterior, aunque esto será inmediatamente después.

En conclusión, el número de tareas de encoding que serán procesadas en paralelo será igual al número de RUs aprovisionadas en tu cuenta en un momento dado. Desde el portal podés pedir como máximo 5 RUs, aunque hay mecanismos para pedir más.

Pregunta: agregar Encoding Reserved Units reduce el tiempo de procesamiento?

Respuesta: con RUs, el tiempo de encoding de un único archivo es el mismo y no cambia. Sin embargo, si tenés múltiples archivos, el tiempo total será acortado ya que se corren tareas en paralelo.

Costos de almacenamiento – Blob Storage

Los archivos serán almacenados en un Azure Blob Storage, y por lo tanto, se abona el costo normal del mismo. Te dejo el link a los detalles de precio de storage: https://azure.microsoft.com/en-us/pricing/details/storage/.

Unidades Reservadas para Streaming

El costo de las unidades reservadas para on-demand streaming o streaming a demanda es de $199 (dólares) por mes. Para cada unidad reservada hay un mínimo de 200 Mbps de ancho de banda alocado. El SLA solamente aplica cuando uno utiliza 80% o menos del ancho de banda disponible. Dicho eso, en muchos casos los clientes verán más ancho de banda disponible por unidad reservada. Esto se debe a que cada RU está creada con 1 o más máquinas virtuales médium. Se agregan o quitan máquinas virtuales para asegurar que el ancho de banda fijado no se vea impactado cuando las máquinas fallen o se actualicen. Cuando todas las VMs estén disponibles, habrá más capacidad de la red y por tanto más ancho de banda.

Pregunta: Puedo hacer streaming sin On-Demand Streaming Reserved Units?

Respuesta: La respuesta corta es sí. No obstante, sin una unidad reservada no hay SLA y el streaming se realiza vía un pool compartido de recursos para el cual no hay forma de controlar lo que usa cada consumidor. Por ejemplo, si un cliente empiza a usar muchísimo ancho de banda, esto tendrá un impacto sobre todos los demás. Un pool compartido funciona bien cuando tus clientes tienen capacidades limitadas de streaming y no están bajo la necesidad de un SLA.

Pregunta: Cómo estimo el número de unidades reservadas para streaming que necesito?

Respuesta: para una estimación conservadora, podemos tomar los límites del SLA: el ancho de banda total es 160 Mbps * cantidad de RUs. Para obtener una estimación inicial podemos tomar el número concurrente de usuarios * máximo bitrate en el estamos encodeando el video. A grandes rasgos esta es la manera más conservadora, y en el peor de los casos si sobra mucho ancho de banda siempre se puede reducir el número de unidades.