La estimación de la lección anterior decía 17.450 € al mes. La factura de julio de Contoso Airlines dice 17.800 €. Una desviación del 2 % es una estimación excelente, pero ese no es el logro: el logro es que ahora existe una cifra estimada contra la que comparar, y una lista de supuestos que explica cada diferencia. Lo que Nuria Peña necesita a partir de aquí es lo contrario de una hipótesis: qué se gastó de verdad, en qué recurso, de qué equipo, en qué día y por qué sube.
Esa es la función de Microsoft Cost Management, la herramienta gratuita incluida en cualquier suscripción de Azure. Esta lección la recorre entera: la jerarquía de facturación y por qué se confunde siempre con la de recursos, el análisis de costes con sus agrupaciones y su previsión, el desglose real de la factura de Contoso, la diferencia entre coste real y amortizado, los presupuestos con alertas y con respuesta automática, el reparto entre equipos con la etiqueta centro-coste, las exportaciones programadas y la detección de anomalías. Aquí es donde se cobra —con intereses— la disciplina de etiquetado sembrada en el módulo 1 y forzada por la política hereda-centro-coste del módulo 4.
Recordatorio: todas las cifras en euros de esta lección son orientativas y ficticias. Los precios reales de Azure cambian con frecuencia y varían por región, moneda y acuerdo comercial. Consúltalos siempre en la calculadora oficial.
Contenido
- La jerarquía de facturación frente a la de recursos
- Análisis de costes: vistas, agrupaciones y previsión
- El análisis real de la factura de Contoso
- Coste real frente a coste amortizado
- Presupuestos, alertas y grupos de acciones
- Automatizar la respuesta a un presupuesto superado
- Asignación de costes: showback, chargeback y lo que no es de nadie
- Exportaciones programadas y análisis del dato de coste
- Detección de anomalías
- Por qué la factura nunca cuadra al céntimo
- Permisos: quién ve el coste
- Errores Comunes y Consejos
- Ejercicios
- Conclusión
- La jerarquía de facturación frente a la de recursos
Esta es la confusión clásica, y produce media hora de desconcierto en toda organización que abre Cost Management por primera vez. Hay dos jerarquías distintas, con propósitos distintos, y no se corresponden entre sí.
| Jerarquía de facturación | Jerarquía de recursos | |
|---|---|---|
| Para qué sirve | Emitir facturas y cobrar | Organizar, gobernar y aplicar RBAC |
| Niveles | Cuenta de facturación → perfil de facturación → sección de factura → suscripción | Grupo de administración → suscripción → grupo de recursos → recurso |
| Quién manda | Finanzas / el acuerdo comercial | Ingeniería / la arquitectura |
| Se ve en | Cost Management + Facturación | Portal de Azure, ARM, Resource Graph |
| Punto de encuentro | La suscripción, que pertenece a las dos |
Los cuatro niveles de facturación, en el caso de Contoso:
- Cuenta de facturación: el contrato con Microsoft. Contoso tiene una, ligada a su Contrato de Cliente de Microsoft.
- Perfil de facturación: la unidad que genera una factura con su propio método de pago y su moneda. Contoso tiene uno,
Contoso Airlines Global. - Sección de factura: la agrupación dentro de la factura, pensada para separar departamentos. Contoso tiene dos:
Operaciones de plataformayProyectos digitales. - Suscripción:
Contoso Airlines - Produccióncuelga de la primera sección;Contoso Airlines - Desarrolloy la de Contoso Millas, de la segunda.
Y la consecuencia práctica que hay que interiorizar: la sección de factura y el grupo de administración son cosas diferentes y pueden no coincidir. Un grupo de administración es un contenedor de gobernanza donde se aplican directivas y RBAC; una sección de factura es una línea en un documento contable. Contoso los mantuvo alineados a propósito para no volverse loca, pero nada obliga a ello, y en organizaciones grandes divergen. Si alguien pregunta «¿por qué el grupo de administración Contoso-Produccion no aparece en la factura?», la respuesta es: porque la factura no sabe que existe.
- Análisis de costes: vistas, agrupaciones y previsión
El análisis de costes es la pantalla central de Cost Management. Se abre desde una suscripción, un grupo de recursos, un grupo de administración o el propio perfil de facturación, y el ámbito elegido gobierna todo lo que se ve.
Los controles que importan:
| Control | Opciones | Para qué se usa |
|---|---|---|
| Ámbito | Perfil de facturación, grupo de administración, suscripción, grupo de recursos | Decide el universo de datos |
| Intervalo | Mes actual, mes anterior, últimos 30 días, personalizado | El mes de facturación no siempre es el mes natural |
| Granularidad | Acumulada, diaria, mensual | Diaria para detectar el día del salto; acumulada para comparar con el presupuesto |
| Agrupar por | Servicio, ubicación, grupo de recursos, recurso, etiqueta, medidor, suscripción | Es la palanca principal del análisis |
| Filtrar | Cualquiera de los anteriores | Aislar un equipo, un entorno o un servicio |
| Tipo de gráfico | Área acumulada, columnas, líneas, tabla | La tabla es la que se exporta |
| Previsión | Proyección al final del periodo | Alimenta las alertas de presupuesto previsto |
Las tres vistas que Contoso tiene guardadas y consulta cada semana:
vista-coste-diario-produccion: granularidad diaria, agrupada por servicio, ámbitoContoso Airlines - Producción. Es la que revela un salto el día exacto en que ocurre, y por tanto la que se cruza conAzureActivitypara saber qué cambió.vista-por-centro-coste: acumulada, agrupada por la etiquetacentro-coste, todo el perfil de facturación. Es la vista de Nuria.vista-desarrollo-por-propietario: ámbitoContoso Airlines - Desarrollo, agrupada por la etiquetapropietario. Es la que hace que nadie deje una máquina encendida el viernes.
Las vistas se guardan, se comparten con el equipo y se anclan al panel del portal, igual que los libros de Azure Monitor del módulo 7. Y aquí llega el momento en que la disciplina de etiquetado pasa factura —en el buen sentido—: agrupar por etiqueta solo funciona si la etiqueta está. Un recurso sin centro-coste aparece en un cubo llamado «sin etiquetar», y ese cubo es exactamente el dinero que nadie reclama. En Contoso ese cubo era del 34 % del gasto antes de la política hereda-centro-coste; después de que la asignación con efecto Modify empezara a heredar la etiqueta del grupo de recursos, bajó al 3 %.
Dos advertencias sobre las etiquetas en el análisis de costes que se aprenden por las malas. La primera: las etiquetas no se aplican retroactivamente. Etiquetar hoy un recurso no reetiqueta el coste del mes pasado, así que el histórico anterior a la política sigue sin imputar. La segunda: no todos los tipos de recurso propagan la etiqueta a su registro de uso; algunos costes —tráfico, ciertos medidores de red— llegan al análisis sin etiqueta por naturaleza, y para esos hace falta el reparto del apartado 7.
Desde la línea de comandos, el ámbito y las consultas se manejan así:
# Coste del mes en curso, agrupado por servicio, en la suscripción de producción
SUB=$(az account show --subscription "Contoso Airlines - Producción" --query id -o tsv)
az costmanagement query \
--type ActualCost --timeframe MonthToDate \
--scope "/subscriptions/$SUB" \
--dataset-granularity None \
--dataset-aggregation '{"total":{"name":"Cost","function":"Sum"}}' \
--dataset-grouping name="ServiceName" type="Dimension" \
-o table
# Lo mismo, pero agrupado por la etiqueta centro-coste
az costmanagement query \
--type ActualCost --timeframe MonthToDate \
--scope "/subscriptions/$SUB" \
--dataset-aggregation '{"total":{"name":"Cost","function":"Sum"}}' \
--dataset-grouping name="centro-coste" type="TagKey" \
-o table--type admite ActualCost y AmortizedCost (apartado 4); --dataset-grouping acepta type="Dimension" para dimensiones como ServiceName, ResourceGroupName o ResourceLocation, y type="TagKey" para etiquetas. La combinación de estas dos consultas responde a las dos preguntas que siempre se hacen: «¿en qué gastamos?» y «¿de quién es?».
- El análisis real de la factura de Contoso
Ejecutada la primera consulta sobre el mes de julio, agrupada por recurso y ordenada de mayor a menor, el resultado (cifras orientativas y ficticias):
| # | Recurso o partida | € / mes | % factura | Qué lo produce | Qué se decide |
|---|---|---|---|---|---|
| 1 | sql-contoso-reservas-pro (db-reservas + réplica fg-contoso-reservas) |
2.660 | 15 % | 8 vCore con redundancia de zona y una secundaria en North Europe al 80 % del precio | Se mantiene: es el RPO/RTO firmado por el negocio. Se lleva a capacidad reservada (08-03) |
| 2 | aks-contoso-operaciones |
1.980 | 11 % | Nodos sistema (3) y aplicaciones (4) a demanda 24x7; lotes ya en spot |
Reserva de 3 años sobre los nodos estables + revisión de tamaño |
| 3 | log-contoso-pro + ai-insights-contoso-pro |
1.640 | 9 % | 42 GB/día ingeridos y retención interactiva generosa | Recorte de ingesta y planes de tabla (07-02) antes de comprometer capacidad |
| 4 | vmss-api-disponibilidad-pro |
1.320 | 7 % | Media de 6 instancias; el perfil apertura-temporada-verano sube el mes de agosto |
Reservar solo la línea base de 2 instancias, dejar el resto a demanda |
| 5 | fw-contoso-hub-pro |
1.010 | 6 % | Factura por hora de despliegue y por GB procesados, haya tráfico o no | Se mantiene: es control de salida obligatorio. Se consolida en un único firewall de concentrador |
| 6 | Salida de datos | 780 | 4 % | Tarjetas de embarque, API a agregadores, replicación entre regiones | Caché en fd-contoso-global (08-05) |
| 7 | oai-contoso-pro + ai-contoso-pro |
730 | 4 % | Coste por token, creciente | Límite duro, recorte de contexto y caché de respuestas |
| 8 | sb-contoso-pro + evhns-contoso-telemetria-pro |
775 | 4 % | Service Bus Premium por unidad de mensajería, reservado 24x7 | Se mantiene: Premium es requisito de red privada |
| Resto de la plataforma | 6.905 | 40 % | Cuarenta y tantos recursos por debajo de 500 € | — | |
| Total de julio | 17.800 | 100 % |
Las lecturas de esta tabla son la esencia de la lección:
- Cinco recursos concentran el 48 % de la factura. Es el patrón universal: el gasto se concentra. Optimizar por orden alfabético, o empezar por lo que más nos molesta, es perder el tiempo. Se empieza por arriba.
- La tercera partida más cara no es un servicio de negocio: es la observabilidad.
log-contoso-procuesta más que la web de reservas entera. No significa que esté mal —significa que hay que dimensionarla conscientemente, con las tres palancas de 07-02—. - La sexta partida no tiene recurso. La salida de datos sigue siendo invisible en cualquier vista agrupada por recurso; solo aparece agrupando por medidor.
- El 40 % de «resto» es donde vive el desperdicio silencioso: discos huérfanos, IP sin asociar, entornos olvidados. Nada de eso duele individualmente, y por eso nadie lo mira. Es el territorio de Azure Advisor y Resource Graph (08-04).
Un matiz que Nuria entendió inmediatamente y que conviene explicar siempre: las dos primeras partidas no son un problema. Son el precio de decisiones de arquitectura correctas y firmadas. El problema sería no saber que existen.
- Coste real frente a coste amortizado
Cost Management ofrece dos métricas que dan cifras distintas para el mismo mes, y entender la diferencia evita discusiones estériles con finanzas:
Coste real (ActualCost) |
Coste amortizado (AmortizedCost) |
|
|---|---|---|
| Qué muestra | Lo que se cargó en la factura ese día | El coste repartido a lo largo del periodo del compromiso |
| Una reserva de 3 años pagada por adelantado | Aparece entera el día de la compra | Aparece dividida entre los 36 meses |
| Uso cubierto por una reserva | Aparece a coste cero | Aparece a su parte proporcional del compromiso |
| Para qué sirve | Conciliar con la factura y con el banco | Entender el coste real por recurso y por equipo |
| Quién lo prefiere | Tesorería | Ingeniería y el reparto por centro de coste |
El efecto es contraintuitivo hasta que se ve: con una reserva activa, el coste real de un VMSS puede ser 0 € durante meses, lo que sugiere que el recurso es gratis. No lo es; se pagó por adelantado. Si el reparto entre equipos se hiciera con coste real, el equipo que compró la reserva cargaría con todo y los demás disfrutarían de recursos aparentemente gratuitos.
Regla de Contoso: coste real para conciliar la factura del mes; coste amortizado para todo lo demás —análisis por recurso, reparto por centro-coste, cálculo del coste unitario y comparación entre meses—. Las vistas guardadas del apartado 2 usan amortizado, y está escrito en su descripción para que nadie se confunda.
- Presupuestos, alertas y grupos de acciones
Un presupuesto en Azure no bloquea nada. Es un umbral que dispara notificaciones y, opcionalmente, automatización. Conviene decirlo alto porque la expectativa contraria es habitual: «pusimos un presupuesto de 20.000 € y hemos gastado 23.000». Sí, porque un presupuesto avisa, no corta.
Los presupuestos de Contoso, derivados de la estimación con colchón de 08-01:
| Presupuesto | Ámbito | Importe | Umbrales | Destinatarios |
|---|---|---|---|---|
presupuesto-contoso-pro |
Suscripción - Producción |
20.000 €/mes | 60 % y 80 % real; 100 % previsto | Nuria, Marta, ag-equipo-contoso |
presupuesto-contoso-dev |
Suscripción - Desarrollo |
1.500 €/mes | 80 % real; 100 % real → automatización | Diego, ag-equipo-contoso |
presupuesto-rg-analitica |
rg-contoso-reservas-pro, filtrado por servicio Synapse |
600 €/mes | 50 %, 90 % real | Equipo de datos |
presupuesto-contoso-millas |
Filtro por etiqueta centro-coste=CC-2077 |
900 €/mes | 80 %, 100 % previsto | Responsable de Millas |
Tres decisiones de diseño detrás de esa tabla. La primera: existe un umbral sobre coste previsto, no solo real, porque avisar al 100 % de lo ya gastado llega tarde por definición; la previsión avisa a mitad de mes de que la tendencia no cabe. La segunda: los umbrales bajos (50-60 %) no son alarmas, son señales tempranas y van a correo, no a ag-guardia-contoso. La tercera: hay un presupuesto por etiqueta, que es la forma de presupuestar un proyecto que no tiene suscripción propia.
SUB=$(az account show --subscription "Contoso Airlines - Producción" --query id -o tsv)
AG="/subscriptions/$SUB/resourceGroups/rg-contoso-seguridad-pro/providers/microsoft.insights/actionGroups/ag-equipo-contoso"
az consumption budget create --budget-name presupuesto-contoso-pro \
--amount 20000 --category Cost --time-grain Monthly \
--start-date 2026-08-01 --end-date 2028-12-31 \
--scope "/subscriptions/$SUB"
# Aviso sobre coste PREVISTO al 100 %, enviado también al grupo de acciones
az consumption budget update --budget-name presupuesto-contoso-pro \
--notifications '{
"previsto-100": {
"enabled": true, "operator": "GreaterThan", "threshold": 100,
"thresholdType": "Forecasted",
"contactEmails": ["[email protected]"],
"contactGroups": ["'"$AG"'"]
}
}'thresholdType acepta Actual y Forecasted, y contactGroups es lo que reutiliza ag-equipo-contoso, el grupo de acciones creado en 07-01: mismo canal de Teams, mismos destinatarios, misma disciplina de gravedades. No hay razón para inventar un canal nuevo para las alertas de coste; hay muchas razones para no hacerlo.
- Automatizar la respuesta a un presupuesto superado
En producción, una alerta de presupuesto es información: alguien decide. En desarrollo, Contoso decidió que puede ser acción, porque el riesgo de equivocarse es asumible y el patrón —alguien deja algo encendido— es siempre el mismo.
flowchart LR P["presupuesto-contoso-dev<br/>100 % del coste real"] --> AG["ag-equipo-contoso"] AG --> LA["logic-contoso-presupuesto<br/>o webhook"] LA --> RB["Runbook Detener-IniciarEntornosDev<br/>en aa-contoso-operaciones"] RB --> D["Desasigna lo etiquetado<br/>horario=laborable"] LA --> T["Aviso en Teams con el<br/>desglose por propietario"] D --> V["Verificación: nada con<br/>entorno=produccion tocado"]
El grupo de acciones invoca un runbook de aa-contoso-operaciones (07-04) que desasigna todo lo etiquetado con horario=laborable en rg-contoso-reservas-dev, y publica en Teams el desglose por propietario. Cuatro salvaguardas imprescindibles antes de dejar que algo así toque recursos:
- Ámbito acotado por etiqueta y por suscripción. El runbook filtra por
entorno=desarrolloy aborta si encuentra cualquier recurso conentorno=produccion. - Idempotencia y modo de simulación, exactamente como se construyó en 07-04.
- Aviso antes que acción: la primera vez que se supera se avisa; solo si se vuelve a superar en el mismo mes se actúa.
- Reversibilidad documentada: cómo se vuelve a encender, y quién puede hacerlo.
La alternativa con Logic Apps (logic-contoso-presupuesto) es igual de válida y a veces preferible: el flujo visual permite meter una aprobación humana en medio, con un botón en Teams, sin escribir código. La regla que Contoso escribió: automatización que apaga, solo en desarrollo; automatización que avisa, en todas partes.
- Asignación de costes: showback, chargeback y lo que no es de nadie
Repartir el coste entre equipos tiene dos modalidades, y confundirlas genera peleas:
| Showback | Chargeback | |
|---|---|---|
| Qué hace | Muestra a cada equipo lo que consume | Carga el importe al presupuesto del equipo |
| Efecto | Conciencia y conversación | Responsabilidad presupuestaria real |
| Riesgo | Que nadie haga nada con el dato | Discusiones sobre el reparto de lo compartido |
| Requisito | Etiquetado fiable | Etiquetado fiable y un acuerdo escrito de reparto |
Contoso empezó por showback durante dos trimestres y pasó a chargeback después, que es el orden sensato: cargar a alguien un importe que no entiende es la mejor forma de que rechace todo el sistema.
El vehículo es la etiqueta centro-coste, con CC-1042 para el proyecto de reservas y CC-2077 para Contoso Millas. Con la política hereda-centro-coste aplicando efecto Modify desde la iniciativa «Base de gobernanza de Contoso», el 97 % del gasto queda imputado automáticamente.
Queda el 3 % y, sobre todo, queda el problema real: los costes compartidos. ¿De quién es fw-contoso-hub-pro? ¿Y log-contoso-pro? ¿Y fd-contoso-global? No son de nadie, o son de todos, que es lo mismo. Para eso existen las reglas de asignación de costes de Cost Management, que toman el gasto de un origen —una suscripción, un grupo de recursos o unas etiquetas— y lo reparten entre destinos con un criterio:
| Coste compartido | € / mes | Criterio de reparto elegido | Por qué |
|---|---|---|---|
fw-contoso-hub-pro |
1.010 | Proporcional al gasto de cada centro de coste | Aproxima el uso sin exigir medirlo |
log-contoso-pro |
1.640 | Proporcional a los GB ingeridos por recurso, calculado con la tabla Usage |
Es medible de verdad y es justo |
fd-contoso-global + WAF |
385 | Proporcional al número de peticiones por ruta | Medible desde las métricas de Front Door |
bastion-contoso-pro, vgw-contoso-pro |
340 | Partes iguales entre los centros de coste activos | Uso ocasional y difícil de atribuir; simplicidad |
Las tres reglas de oro que Contoso adoptó tras la primera discusión: el criterio se acuerda antes de aplicarlo, se escribe, y se prefiere simple y aceptado a exacto y discutido. Un reparto proporcional al gasto es imperfecto pero comprensible; un modelo con quince coeficientes es más justo sobre el papel y nadie lo defiende en una reunión.
- Exportaciones programadas y análisis del dato de coste
El análisis de costes del portal conserva un histórico limitado y no permite cruzar el coste con datos de negocio. Para eso existe la exportación programada: Cost Management deja cada día un fichero en una cuenta de almacenamiento.
SUB=$(az account show --subscription "Contoso Airlines - Producción" --query id -o tsv)
SA="/subscriptions/$SUB/resourceGroups/rg-contoso-reservas-pro/providers/Microsoft.Storage/storageAccounts/stlagocontosopro"
az costmanagement export create \
--name export-coste-diario --scope "/subscriptions/$SUB" \
--type AmortizedCost --timeframe MonthToDate \
--recurrence Daily --recurrence-period from="2026-08-01T00:00:00Z" to="2028-12-31T00:00:00Z" \
--storage-account-id "$SA" --storage-container costes \
--storage-directory contoso-produccion --schedule-status ActiveEl destino es stlagocontosopro, el Data Lake del módulo 3, y a partir de ahí el dato es un dato más: syn-contoso-analitica-pro lo consulta con SQL sin servidor sobre los ficheros del contenedor, se cruza con la tabla de reservas vendidas y sale el coste unitario que se trabajará en 08-05. Ojo con la ironía: consultar mal ese lago con Synapse sin servidor cuesta dinero, así que el propio análisis de costes tiene coste. Contoso particiona por fecha y lee solo el mes en curso.
Las columnas que más se usan del fichero exportado:
| Columna | Contenido | Uso típico |
|---|---|---|
Date |
Día de consumo | Series diarias y detección del salto |
ResourceId |
Identificador ARM completo | Unir con Resource Graph (08-04) |
MeterCategory / MeterName |
Servicio y medidor | Encontrar la salida de datos, que no tiene recurso |
Quantity / UnitOfMeasure |
Cantidad consumida | Calcular precios unitarios efectivos |
CostInBillingCurrency |
Importe | Todo lo demás |
Tags |
Etiquetas del recurso | Reparto por centro-coste y propietario |
PricingModel |
OnDemand, Reservation, Spot, SavingsPlan |
Medir la cobertura de los compromisos (08-03) |
Otras dos vías de acceso al mismo dato. La API de Cost Management (Microsoft.CostManagement/query y /exports) permite integrarlo en herramientas propias, con la advertencia de que está limitada por peticiones y no está pensada para consultas interactivas masivas. Y el conector de Power BI para Cost Management, que es lo que Nuria usa: se conecta al perfil de facturación, trae el detalle de uso y permite construir el informe mensual sin depender de nadie. Cuando finanzas puede responder sus propias preguntas, ingeniería deja de ser un cuello de botella —y eso es, en sí mismo, media cultura FinOps—.
- Detección de anomalías
Cost Management incluye detección de anomalías basada en el patrón histórico de gasto de la suscripción. No es un umbral fijo: aprende la forma habitual del gasto y avisa de desviaciones significativas, con una explicación del servicio y el ámbito que la provocan. Es gratuita y se configura como una alerta de anomalía con destinatarios.
Es complementaria del presupuesto, no redundante:
| Presupuesto | Anomalía | |
|---|---|---|
| Pregunta que responde | ¿Voy a pasarme de lo previsto? | ¿Ha cambiado algo respecto a lo normal? |
| Detecta | Exceso acumulado | Cambios bruscos, aunque quepan en el presupuesto |
| Ejemplo en Contoso | Julio iba camino de 21.000 € | Un salto de 40 € a 190 € diarios en Synapse |
Ese ejemplo es real dentro de la historia: nadie habría notado los 150 € diarios de más dentro de un presupuesto de 20.000 €, y sin embargo eran sqlpool-contoso encendido y olvidado tras un análisis puntual. Un presupuesto detecta el problema grande; una anomalía detecta el problema temprano. El flujo de trabajo cuando salta: mirar la vista diaria agrupada por servicio, identificar el día, cruzar con AzureActivity en log-contoso-pro para saber quién cambió qué, y actuar.
- Por qué la factura nunca cuadra al céntimo
Antes o después, alguien compara el análisis de costes con el PDF de la factura y encuentra una diferencia. Las causas son conocidas y ninguna es un error:
- Periodo: la factura cubre el periodo de facturación, que no siempre coincide con el mes natural.
- Impuestos: el análisis de costes muestra importes sin IVA; la factura lo incluye. Es la diferencia más habitual y la más fácil de explicar.
- Créditos y descuentos: los créditos promocionales, los saldos de Enterprise y los descuentos negociados se aplican en la factura, no siempre en el análisis.
- Redondeo: se redondea por línea de uso, y hay decenas de miles de líneas.
- Compras del Marketplace de terceros: aparecen en la factura y se muestran aparte en el análisis.
- Reservas: el pago inicial aparece íntegro en coste real y repartido en amortizado (apartado 4).
- Retraso de datos: el uso tarda unas horas en consolidarse; los últimos días del mes se ajustan.
La regla: el análisis de costes sirve para decidir; la factura sirve para pagar. Pretender que cuadren al céntimo es una pérdida de tiempo. Lo que sí debe cuadrar es el orden de magnitud y la tendencia, y si no cuadran ahí, entonces sí hay algo que investigar.
- Permisos: quién ve el coste
El acceso al coste se rige por el RBAC del módulo 4, con la particularidad de que existen roles específicos de coste que no dan ningún acceso a los recursos:
| Rol | Ámbito habitual | Qué permite | Quién lo tiene en Contoso |
|---|---|---|---|
| Lector de Cost Management | Suscripción o grupo de administración | Ver costes y presupuestos; no modificar nada | Responsables de equipo |
| Colaborador de Cost Management | Suscripción | Crear presupuestos, exportaciones y vistas | Marta Ríos |
| Lector de facturación | Cuenta o perfil de facturación | Ver facturas y datos fiscales | Nuria Peña |
| Lector (genérico) | Cualquiera | Incluye ver costes del ámbito | Amplio |
Dos detalles que evitan sustos. El primero: en un Contrato de Cliente de Microsoft, el acceso a la factura se concede en la jerarquía de facturación, no en la de recursos —es decir, ser Propietario de la suscripción no da acceso al PDF de la factura—. El segundo: existe una opción a nivel de cuenta de facturación que oculta los precios a los usuarios de suscripción; si un compañero ve el uso pero no los importes, es casi seguro eso y no un problema de rol.
az role assignment create \
--assignee-object-id "$(az ad group show --group Contoso-Responsables --query id -o tsv)" \
--assignee-principal-type Group \
--role "Cost Management Reader" \
--scope "/providers/Microsoft.Management/managementGroups/Contoso-Produccion"Asignar el rol al grupo de Microsoft Entra ID y en el grupo de administración, no persona a persona y suscripción a suscripción, es la misma buena práctica del módulo 4 aplicada aquí.
Errores Comunes y Consejos
- Confundir la jerarquía de facturación con la de recursos. La sección de factura no es un grupo de administración, y un grupo de administración no aparece en la factura.
- Creer que un presupuesto bloquea el gasto. No lo hace. Avisa, y como mucho dispara automatización que tú construyes.
- Analizar el coste con
ActualCosthabiendo reservas. Verás recursos aparentemente gratuitos y repartos absurdos. UsaAmortizedCostpara todo lo que no sea conciliar. - Agrupar por etiqueta antes de tener etiquetado fiable. El cubo «sin etiquetar» te dirá la verdad sobre tu gobernanza, y no será agradable.
- Esperar que etiquetar hoy arregle el histórico. No es retroactivo.
- Pelearse con el céntimo de diferencia entre el análisis y la factura, en lugar de mirar impuestos, periodo y créditos.
- Repartir los costes compartidos sin acuerdo previo por escrito. Es la discusión más larga y menos productiva de FinOps.
- Consejo: crea hoy una vista diaria agrupada por servicio y ánclala al panel. Es la que te dirá cuándo cambió algo, que suele ser más útil que cuánto.
- Consejo: activa la detección de anomalías aunque tengas presupuesto. Detectan cosas distintas.
- Consejo: da
Lector de Cost Managementa mucha gente. El coste oculto no se optimiza, y nadie ha roto nada nunca por mirar una factura.
Ejercicios
Ejercicio 1. Diseña el conjunto de presupuestos de Contoso Millas (centro-coste=CC-2077), que tiene 900 €/mes aprobados y comparte suscripción con otros proyectos. Indica ámbito, filtros, umbrales, tipo de umbral, destinatarios y qué automatización pondrías —y cuál no—.
Ejercicio 2. El análisis de costes muestra 17.800 € en julio y la factura dice 21.900 €. Enumera las causas posibles en orden de probabilidad y describe cómo comprobar cada una.
Ejercicio 3. Marta debe repartir entre CC-1042 y CC-2077 los costes compartidos de julio: fw-contoso-hub-pro (1.010 €), log-contoso-pro (1.640 €) y bastion-contoso-pro (205 €). Sabe que CC-1042 genera el 85 % del gasto directo y el 78 % de los GB ingeridos, y que ambos equipos usan el bastión ocasionalmente. Propón el reparto, justifica cada criterio y explica qué objeción esperas de cada equipo.
Soluciones
Solución 1: al compartir suscripción, el ámbito debe ser la suscripción con un filtro por la etiqueta centro-coste=CC-2077; no sirve un presupuesto de grupo de recursos si el proyecto tiene recursos en varios. Umbrales: 50 % real como señal temprana solo al responsable del proyecto; 80 % real al responsable y a Marta; 100 % previsto a Nuria, porque avisar de la tendencia a mitad de mes es lo único que permite reaccionar; y 110 % real como constancia de que se ha desbordado. Destinatarios por correo más contactGroups apuntando a ag-equipo-contoso, sin usar ag-guardia-contoso: un desvío de presupuesto nunca justifica despertar a nadie. Automatización: ninguna que apague nada, porque el proyecto tiene recursos de producción y el criterio de Contoso es que solo se automatiza el apagado en desarrollo; sí una Logic App que publique en Teams el desglose por propietario y abra una incidencia. Requisito previo indispensable: verificar que la política hereda-centro-coste cubre los grupos de recursos del proyecto, porque un presupuesto filtrado por etiqueta solo ve lo etiquetado y un recurso sin etiqueta gastaría fuera del radar.
Solución 2: por orden de probabilidad. (1) IVA: 17.800 × 1,21 = 21.538 €, muy cerca de la diferencia; el análisis de costes muestra importes sin impuestos y es casi con seguridad la causa principal. Se comprueba mirando la línea de impuestos del PDF. (2) Periodo de facturación distinto del mes natural: se comprueba en la cabecera de la factura y se repite el análisis con un intervalo personalizado que coincida. (3) Compras del Marketplace de terceros —una imagen de firewall virtual, una licencia—, que aparecen en la factura y se listan aparte en el análisis. (4) Ámbito equivocado: el análisis se hizo sobre una suscripción y la factura cubre el perfil de facturación completo, que incluye también Contoso Airlines - Desarrollo; se comprueba cambiando el ámbito al perfil de facturación. (5) Retraso de consolidación si el análisis se ejecutó antes de cerrar el mes. (6) Créditos aplicados en un sentido u otro. El método: reproducir el análisis con ámbito «perfil de facturación», intervalo igual al periodo de la factura, tipo ActualCost y sin filtros, y comparar entonces; el resto de la diferencia serán impuestos.
Solución 3: log-contoso-pro se reparte proporcionalmente a los GB ingeridos (78 %/22 %): 1.279 € a CC-1042 y 361 € a CC-2077. Es el criterio más defendible porque la magnitud repartida es exactamente la que se factura, y es medible con la tabla Usage agrupada por _ResourceId (07-02); si un equipo lo discute, se le enseña la consulta. fw-contoso-hub-pro se reparte proporcionalmente al gasto directo (85 %/15 %): 859 € y 152 €. No es exacto —el firewall procesa gigabytes, no euros— pero medir el tráfico por origen exigiría registros de flujo y su propia ingesta, que costaría más que la precisión que aporta; se documenta como aproximación aceptada. bastion-contoso-pro se reparte a partes iguales: 102,50 € cada uno, porque el uso es ocasional, no medible sin esfuerzo y de importe pequeño; discutirlo cuesta más que pagarlo. Objeciones esperables: CC-2077 alegará que el firewall estaba desplegado antes de que Millas existiera y que su tráfico es marginal —respuesta: el criterio es proporcional al gasto, se revisa cada semestre, y si aporta una medición mejor se cambia—; CC-1042 alegará que paga el 85 % de una infraestructura que habilita a otros —respuesta: es la contrapartida de que el coste unitario baja para todos al compartirla—. Y la regla de fondo: el reparto se acuerda antes del cierre del mes y se publica en la revisión mensual (08-05), nunca se comunica por primera vez junto con el importe.
Conclusión
Ya distingues las dos jerarquías —cuenta de facturación, perfil, sección de factura y suscripción, frente a grupo de administración, suscripción, grupo de recursos y recurso— y sabes que solo se tocan en la suscripción, lo que explica media docena de preguntas que aparecen siempre. Manejas el análisis de costes con sus controles reales: ámbito, intervalo, granularidad diaria o acumulada, agrupación por servicio, ubicación, grupo de recursos, medidor y etiqueta, filtros, previsión y vistas guardadas, con las tres vistas de Contoso como plantilla. Y has comprobado el valor exacto del etiquetado: el cubo «sin etiquetar» pasó del 34 % al 3 % gracias a la política hereda-centro-coste del módulo 4, con las dos advertencias de que las etiquetas no son retroactivas y de que ciertos medidores nunca las llevan.
Tienes el desglose real de la factura de Contoso: 17.800 € en julio, con cinco recursos concentrando el 48 % —sql-contoso-reservas-pro con su réplica, aks-contoso-operaciones, log-contoso-pro, vmss-api-disponibilidad-pro y fw-contoso-hub-pro—, la salida de datos como sexta partida sin recurso al que mirar, y un 40 % de cola larga donde vive el desperdicio silencioso. Sabes que el gasto se concentra y que por eso se optimiza de arriba abajo, y que las partidas más caras no son necesariamente problemas: son decisiones de arquitectura con precio visible. Distingues coste real de coste amortizado y por qué con reservas el real miente sobre lo que cuesta cada recurso.
En el plano operativo llevas los presupuestos de Contoso con sus umbrales sobre coste real y previsto, reutilizando ag-equipo-contoso, la automatización de la respuesta en desarrollo con el runbook Detener-IniciarEntornosDev y sus cuatro salvaguardas, y la regla que las gobierna: automatización que apaga solo en desarrollo, automatización que avisa en todas partes. Sabes repartir con showback antes que chargeback, con centro-coste como vehículo y reglas de asignación para lo compartido, prefiriendo un criterio simple y acordado a uno exacto y discutido. Y sabes sacar el dato fuera —exportaciones diarias a stlagocontosopro, API y Power BI—, activar la detección de anomalías que encontró sqlpool-contoso encendido, explicar por qué la factura no cuadra al céntimo, y repartir los permisos de coste sin dar acceso a los recursos.
Con la factura medida y repartida, la conversación cambia de pregunta. Ya no es «¿cuánto gastamos?», sino «¿cuánto de esto podríamos no gastar sin cambiar nada de lo que hacemos?». Y la primera respuesta, la más grande y la más inmediata, no exige tocar una sola línea de arquitectura: basta con comprometerse. db-reservas, los nodos de aks-contoso-operaciones, los planes Premium v3 y la línea base del VMSS llevan meses funcionando a tarifa de pago por uso, que es la más flexible y la más cara que existe. La lección siguiente trata de las reservas, los planes de ahorro, las instancias de acceso puntual y Azure Hybrid Benefit: qué son, en qué se diferencian, cuánto descuentan, qué se compromete Contoso a comprar y qué deja deliberadamente a demanda —y por qué reservar antes de estabilizar la arquitectura es la forma más cara que existe de ahorrar dinero—.
Curso de Azure
Módulo 1: Introducción a Azure
- ¿Qué es Azure?
- Modelos de servicio, regiones y zonas de disponibilidad
- Crear y configurar tu cuenta de Azure
- Recorrido por el portal de Azure
- Azure Resource Manager: suscripciones, grupos de recursos y etiquetas
- Azure CLI, PowerShell y Cloud Shell
Módulo 2: Servicios principales de Azure
- Máquinas virtuales de Azure
- Escalado y alta disponibilidad del cómputo
- Azure App Service
- Azure Storage: blobs, archivos, colas y tablas
- Redes en Azure: redes virtuales, subredes y NSG
- Conectividad híbrida y entrega global
Módulo 3: Bases de datos de Azure
- Elegir el servicio de datos adecuado
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Analítica de datos: Data Lake, Data Factory y Synapse
Módulo 4: Seguridad en Azure
- Microsoft Entra ID y gestión de identidades
- RBAC e identidades administradas
- Azure Key Vault
- Protección DDoS y firewall de aplicaciones web
- Microsoft Defender for Cloud
- Gobernanza y cumplimiento con Azure Policy
Módulo 5: Azure DevOps
- Introducción a Azure DevOps
- Azure Repos
- Azure Pipelines: integración continua
- Despliegue continuo con entornos y aprobaciones
- Azure Artifacts
- Infraestructura como código con Bicep
Módulo 6: Servicios avanzados de Azure
- Contenedores en Azure: Container Registry y Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Mensajería y eventos: Service Bus, Event Grid y Event Hubs
- Servicios de IA de Azure
Módulo 7: Monitoreo y gestión
- Azure Monitor: métricas, alertas y paneles
- Log Analytics y consultas KQL
- Application Insights
- Azure Automation y runbooks
- Copias de seguridad y recuperación ante desastres
Módulo 8: Gestión y optimización de costos
- Calculadora de precios y estimación de costes
- Azure Cost Management: análisis, presupuestos y alertas
- Reservas, planes de ahorro y Azure Hybrid Benefit
- Azure Advisor
- Estrategias de optimización y cultura FinOps
