La Nuria Peña, responsable financera de Contoso Airlines, fa mesos que formula la mateixa pregunta al comitè i rep la mateixa resposta imprecisa. Quan es va aprovar la migració, algú va posar en una diapositiva «uns 8.500 € al mes». La factura mitjana del primer trimestre real va ser de 17.500 € al mes: exactament el doble. Ningú no va mentir. Simplement, l'estimació es va fer sumant màquines virtuals i bases de dades, que és el que tothom estima, i es va oblidar tota la resta: el tallafoc, el bastió, la passarel·la global, la ingesta de registres, la sortida de dades i un clúster de Kubernetes els nodes del qual algú creia que eren «part d'AKS».

Aquesta lliçó ensenya a estimar abans de desplegar. Veuràs com factura Azure de debò —quina unitat de mesura fa servir cada família de serveis—, els tres tipus de cost que gairebé ningú no estima, el maneig complet de la calculadora de preus, l'estimació reconstruïda de tota la plataforma de Contoso línia per línia, la calculadora de cost total de propietat per comparar-la amb el centre de dades de Barcelona, per què la mateixa màquina costa diferent en dues regions, com automatitzar estimacions amb l'API de preus minoristes i, sobretot, com es documenta el marge d'error, perquè una estimació sense supòsits escrits no és una estimació: és una xifra.

Avís sobre els preus d'aquesta lliçó i de tot el mòdul: totes les xifres en euros que hi apareixen són orientatives i fictícies, triades perquè els ordres de magnitud i les proporcions siguin didàctics. Els preus reals d'Azure canvien amb freqüència, varien per regió, per moneda, per tipus d'oferta i per descomptes contractats. Cap xifra d'aquest mòdul no s'ha de fer servir per decidir res: consulta sempre la calculadora oficial de preus d'Azure i el teu propi acord comercial.

Contingut

  1. Per què estimar abans de desplegar
  2. Com factura Azure de debò: unitats de mesura
  3. Els tres costos que gairebé ningú no estima
  4. La calculadora de preus d'Azure, pas a pas
  5. L'estimació completa de Contoso Airlines
  6. La calculadora de cost total de propietat
  7. Preus per regió: la mateixa VM a dos preus
  8. L'API de preus minoristes
  9. El marge d'error i els supòsits escrits
  10. L'estimació com a part del disseny
  11. Errors Comuns i Consells
  12. Exercicis
  13. Conclusió

  1. Per què estimar abans de desplegar

En un centre de dades propi, gastar diners exigeix una ordre de compra, una signatura i unes quantes setmanes. A Azure exigeix tres clics. Aquesta és tota la diferència, i és enorme: el control de la despesa s'ha desplaçat del departament de compres al teclat de l'enginyer, i ningú no va avisar l'enginyer.

La conseqüència és un patró que es repeteix a totes les organitzacions que migren:

Moment Què passa Cost de corregir-ho
Disseny Es tria l'arquitectura i els seus nivells de servei Gairebé nul: és canviar una decisió en un document
Desplegament Es creen els recursos amb Bicep Baix: canviar un paràmetre i tornar a desplegar
Primer mes Arriba la factura i sorprèn Mitjà: cal canviar recursos en producció
Sisè mes La despesa està normalitzada i hi ha dades a sobre Alt: migracions, finestres, risc

L'estimació és l'única palanca que actua a la primera fila. Dit d'una altra manera: la factura més difícil de corregir és la que ja has provocat. Un nivell de redundància triat a la lleugera el primer dia es converteix en una migració de dades l'any següent.

I hi ha un segon motiu, menys obvi i més important: estimar obliga a entendre l'arquitectura. Quan la Marta Ríos va refer l'estimació de Contoso amb la calculadora, va descobrir tres coses que feia mesos que hi eren sense que ningú no les veiés —una rèplica geogràfica de base de dades que costava gairebé el mateix que la principal, un grup de nodes d'AKS dimensionat per a una prova de càrrega que va acabar al març, i una passarel·la de VPN sense cap connexió activa—. Estimar és auditar el disseny amb una calculadora a la mà.

  1. Com factura Azure de debò: unitats de mesura

L'error de fons de l'estimació fallida de Contoso va ser mental: es va pensar en Azure com en un catàleg de màquines amb preu mensual. Azure factura unitats de consum, i cada família de serveis fa servir la seva. Fins que no interioritzes la taula següent, no pots estimar res.

Família Unitat de mesura principal Altres unitats que també facturen Exemple a Contoso
Còmput (VM, VMSS) Hora d'instància encesa (deallocated no factura) Discos gestionats (GB-mes, IOPS), IP pública, llicència de SO vmss-api-disponibilidad-pro
App Service Hora del pla, no de l'aplicació Certificats, dominis, ranures addicionals segons nivell plan-contoso-reservas-pro
Contenidors (AKS) Hora de cada node (VM) + discos Pla de control estàndard, equilibrador, sortida aks-contoso-operaciones
Container Apps / Functions consum vCPU-segon i GiB-segon + execucions Rèpliques mínimes sempre actives ca-motor-disponibilidad
Emmagatzematge GB-mes per nivell d'accés Transaccions, recuperació de dades, canvi de nivell sttarjetascontosopro
SQL Database (vCore) vCore-hora aprovisionat o vCore-segon sense servidor Emmagatzematge GB-mes, còpies LTR, rèplica secundària db-reservas
Cosmos DB Unitats de sol·licitud per segon (RU/s) hora Emmagatzematge GB-mes, còpies, cada regió addicional cosmos-contoso-tarifas-pro
Synapse sense servidor TB de dades llegits per consulta Emmagatzematge del llac, canalitzacions per activitat syn-contoso-analitica-pro
Log Analytics GB ingerit GB-mes retingut, pla de taula, consultes sobre arxiu log-contoso-pro
Xarxa GB de sortida (egress) Hora de tallafoc + GB processats, hora de bastió, hora de passarel·la fw-contoso-hub-pro
Missatgeria Operacions o unitats de missatgeria/rendiment hora Entitats addicionals, retenció ampliada sb-contoso-pro
Logic Apps Execució d'acció Connectors empresarials amb tarifa pròpia logic-contoso-retrasos-pro
IA / Azure OpenAI Token d'entrada i de sortida Unitats de rendiment aprovisionades, si es contracten oai-contoso-pro
Còpies de seguretat Instància protegida + GB emmagatzemat Redundància geogràfica, restauració entre regions rsv-contoso-pro

Tres lectures d'aquesta taula que canvien la manera d'estimar:

  • La unitat no sempre és el recurs que veus. No pagues app-contoso-reservas-pro; pagues plan-contoso-reservas-pro, i tant se val que hi allotgis una aplicació o cinc.
  • Gairebé tot té una segona unitat. L'emmagatzematge té GB i transaccions. El tallafoc té hores i gigabytes processats. La base de dades té còmput i emmagatzematge i còpies. Estimar només la unitat principal produeix sistemàticament estimacions baixes.
  • Algunes unitats no són proporcionals a l'ús que perceps. Una consulta mal escrita a Synapse sense servidor llegeix 2 TB i costa més que un dia sencer de màquines virtuals, encara que l'usuari només hagi premut «actualitza».

  1. Els tres costos que gairebé ningú no estima

De l'estimació fallida de Contoso, gairebé la meitat de la desviació va venir de tres partides que ni tan sols apareixien al full de càlcul original.

Sortida de dades (egress). El trànsit cap a Azure és gratuït; el trànsit **des d'**Azure cap a internet, no. I tampoc no és gratuït el trànsit entre regions, ni en molts casos entre zones de disponibilitat. Tal com s'avançava al mòdul 2, aquesta és la sorpresa habitual de la factura, perquè no apareix en cap recurs: no hi ha cap objecte anomenat «sortida de dades» al portal que puguis mirar. A Contoso la produeix tot això alhora: cada targeta d'embarcament descarregada per un passatger, cada resposta de l'API de Disponibilitat als agregadors externs, la replicació de db-reservas a North Europe, la replicació geogràfica d'acrcontosopro i les exportacions nocturnes cap al sistema de facturació local. S'estima amb una regla senzilla: quants objectes surten al mes × mida mitjana, i es documenta el supòsit.

Transaccions i operacions. Els GB d'un compte d'emmagatzematge s'estimen bé; les transaccions, gairebé mai. I en càrregues amb molts objectes petits —que és exactament el cas de les targetes d'embarcament— les transaccions poden superar l'emmagatzematge. Encara pitjor: els nivells freds abarateixen el GB-mes i encareixen la transacció, de manera que un cicle de vida mal ajustat que mogui a Cool dades que encara es llegeixen molt pot apujar la factura. El mateix s'aplica a les operacions de Key Vault, a les peticions de Cosmos DB i a les operacions de Defender for Cloud sobre Storage.

Les funcions «gratis» que arrosseguen un recurs de pagament. Aquest és el més traïdor, perquè el servei anuncia cost zero i ho compleix:

Servei «gratuït» El que sí que es paga
Azure Policy Res per la directiva, però un efecte DeployIfNotExists crea recursos de pagament
Configuracions de diagnòstic La configuració és gratis; la ingesta a log-contoso-pro no
Microsoft Entra ID (nivell base) L'accés condicional i Identity Protection exigeixen nivells de pagament
Defender for Cloud (CSPM bàsic) Els plans per càrrega de treball, sí (mòdul 4)
Azure Advisor Gratuït de debò, sense lletra petita (08-04)
Alertes d'Azure Monitor Les d'estat del recurs són gratis; les de mètrica i de registre es facturen per regla i per sèrie
Grups de recursos, etiquetes, ARM Realment gratis
Compte d'Automation El compte no costa; els minuts d'execució per damunt de la franja, sí

La regla que cal gravar-se: quan activis alguna cosa gratuïta, pregunta't sempre quin consum genera aigües avall. Les configuracions de diagnòstic del mòdul 7 són gratis i van produir la tercera partida més cara de la plataforma.

  1. La calculadora de preus d'Azure, pas a pas

La calculadora de preus d'Azure (azure.microsoft.com/pricing/calculator) és una eina pública, sense necessitat de compte, que permet muntar una estimació completa. És enganyosament simple, i fer-la servir bé té mètode.

flowchart LR
  A["Buscar i afegir<br/>els serveis"] --> B["Configurar cadascun:<br/>regio, nivell, quantitat,<br/>hores i unitats"]
  B --> C["Agrupar per<br/>component o entorn"]
  C --> D["Aplicar moneda,<br/>oferta i descomptes"]
  D --> E["Desar, compartir<br/>i exportar a Excel"]
  E --> F["Revisar amb l equip<br/>i amb la Nuria"]
  F -->|"falten supostos"| B

El procediment que segueix la Marta:

  1. Buscar el servei i afegir-lo. La calculadora té un catàleg per categories i un cercador. Afegeix cada servei de l'arquitectura, inclosos els que «no costen» —per deixar constància que s'han considerat—.
  2. Configurar regió, nivell i quantitat. Aquí hi ha el 90 % de la feina. Per a una VM: regió, sistema operatiu, tipus d'instància, nombre d'instàncies, hores al mes (730 si és 24x7, unes 176 si només és horari laborable), tipus de disc i nombre de discos, i l'opció d'estalvi (pagament per ús, reserva d'1 o 3 anys, pla d'estalvi, spot). Aquest selector és el que connecta aquesta lliçó amb la 08-03.
  3. Agrupar per component. La calculadora permet crear grups i reanomenar-los. Contoso fa servir un grup per bloc de l'arquitectura: Frontal web, API de Disponibilitat, Dades, Xarxa i seguretat, Observabilitat, Integració i IA, Desenvolupament. Sense grups, una estimació de quaranta línies és il·legible i ningú no la revisa.
  4. Fixar moneda, regió de facturació i programa de llicències. La calculadora aplica el tipus d'oferta (pagament per ús, Enterprise, CSP) i permet indicar un percentatge de descompte negociat.
  5. Desar i compartir. Amb un compte Microsoft, l'estimació es desa i s'obté un enllaç. És el que s'adjunta a la revisió d'arquitectura.
  6. Exportar a full de càlcul. El botó d'exportació genera un .xlsx amb una fila per línia, que és el format amb el qual la Nuria pot treballar i comparar mesos.

Dos advertiments d'ús. El primer: la calculadora no coneix la teva càrrega; només multiplica el que li diguis. Si hi poses 730 hores per a una màquina que en realitat estarà encesa 200, la culpa no és de l'eina. El segon: hi ha serveis el cost dels quals no es pot estimar sense dades prèvies —sortida de dades, transaccions, tokens, GB ingerits—; per a aquests, la calculadora t'obliga a introduir una quantitat, i aquesta quantitat és un supòsit que cal documentar (apartat 9).

  1. L'estimació completa de Contoso Airlines

La Marta va refer l'estimació de la plataforma tal com és avui. El resultat, en euros mensuals orientatius i ficticis:

Grup Línia Configuració suposada € / mes
Frontal web plan-contoso-reservas-pro + plan-contoso-api-pro Premium v3, 3 i 2 instàncies, redundància de zona, 730 h 1.930
API disponibilitat vmss-api-disponibilidad-pro Mitjana de 6 instàncies de les 2-20 de l'escalat automàtic 1.320
API disponibilitat cae-contoso-pro + ca-motor-disponibilidad Entorn + 1 rèplica mínima sempre activa 240
Contenidors aks-contoso-operaciones Nodes sistema (3) + aplicaciones (4) + lotes en spot 1.980
Contenidors acrcontosopro Premium amb replicació geogràfica 90
Desenvolupament Plans i VM de desenvolupament App Service dev + vm-motor-disponibilidad-dev apagada de nit 285
Emmagatzematge sttarjetascontosopro GZRS, 4 TB, cicle de vida a Cool als 30 dies, transaccions 420
Emmagatzematge stlagocontosopro Data Lake, 12 TB, nivell mixt 280
Emmagatzematge stoperacionescontosopro + sttarjetascontosodev ZRS 1 TB + LRS 300 GB 75
Dades db-reservas (primària) vCore De propòsit general, 8 vCore, redundància de zona, 500 GB 1.480
Dades Rèplica fg-contoso-reservas a North Europe Secundària llegible del grup de commutació 1.180
Dades sql-contoso-reservas-dev + cosmos-contoso-tarifas-pro Sense servidor amb pausa + escalat automàtic, mitjana 1.400 RU/s 255
Dades mysql-contoso-portal-pro + psql-contoso-tripulaciones-pro Flexible, 2 vCores cadascun 345
Dades syn-contoso-analitica-pro SQL sense servidor per TB llegits + sqlpool-contoso puntual 400
Xarxa i seguretat fw-contoso-hub-pro Azure Firewall: hores + GB processats 1.010
Xarxa i seguretat fd-contoso-global + wafcontosoglobal Front Door Premium + regles de WAF 385
Xarxa i seguretat bastion-contoso-pro Nivell estàndard, 730 h 205
Xarxa i seguretat vgw-contoso-pro + punts de connexió privats VPN + 14 punts privats 235
Xarxa i seguretat Sortida de dades ~4,5 TB/mes a internet + replicació entre regions 700
Observabilitat log-contoso-pro + ai-insights-contoso-pro ~42 GB/dia ingerits + retenció per taula 1.500
Observabilitat Defender for Cloud Plans de SQL, Storage i Key Vault 310
Observabilitat rsv-contoso-pro + bv-contoso-pro Instàncies protegides + GB, 30 dies, GRS 465
Integració sb-contoso-pro + evhns-contoso-telemetria-pro + evgt-contoso-reservas-pro Service Bus Premium 1 unitat, Event Hubs 2 TU 780
Integració func-contoso-tarjetas-pro + logic-contoso-retrasos-pro Pla Premium EP1 + accions de Logic Apps 335
IA oai-contoso-pro + ai-contoso-pro Cost per token + serveis d'IA 730
Transversal kv-contoso-pro, aa-contoso-operaciones, Azure DevOps i altres de menors Operacions, minuts, llicències, contoso-paquetes, IP, DNS 515
Total estimat 17.450 €/mes

D'on surt cada bloc mereix comentari, perquè l'aprenentatge és aquí:

  • Les cinc línies que sorprenen són, per aquest ordre: log-contoso-pro (1.500 €, més que la meitat de la plataforma web), fw-contoso-hub-pro (1.010 €, que factura per hora i per gigabyte processat tant si hi passa trànsit com si no), el clúster aks-contoso-operaciones (1.980 €, perquè els nodes són màquines virtuals que es paguen senceres), bastion-contoso-pro (205 € per un servei que es fa servir quinze minuts al dia) i fd-contoso-global (385 € pel nivell Premium que exigeix el WAF).
  • La rèplica de db-reservas costa 1.180 €, un 80 % de la principal. És el preu explícit de la decisió de recuperació del mòdul 7, i ara es veu en euros: exactament la mena de dada que permet una conversa honesta amb el negoci.
  • La sortida de dades (700 €) no correspon a cap recurs. Ningú no l'hauria estimada sense la taula de l'apartat 2.
  • Tot l'entorn de desenvolupament són 285 € gràcies al runbook Detener-IniciarEntornosDev i al nivell sense servidor amb pausa automàtica. Sense aquestes dues decisions rondaria els 1.100 €.

Comparat amb els 8.500 € de la diapositiva original, la diferència s'explica gairebé sencera amb cinc línies: AKS, Log Analytics, tallafoc, la rèplica de base de dades i la sortida de dades. Cap d'elles no és un recurs que l'equip hagués «demanat»; totes són conseqüències de decisions d'arquitectura correctes que ningú no va traduir a diners.

  1. La calculadora de cost total de propietat

La Nuria va fer la pregunta inevitable: «no era més barat el centre de dades de Barcelona?». Per respondre-la existeix la calculadora de cost total de propietat (TCO), una eina diferent de la de preus: es descriu la infraestructura local —servidors, nuclis, memòria, emmagatzematge, amplada de banda, llicències— i retorna una comparació a diversos anys davant de l'equivalent a Azure.

El valor de l'eina no és el número que produeix, sinó que obliga a incloure els costos que la comptabilitat local mai no imputa al projecte:

Cost local Se sol incloure? Comentari
Maquinari (servidors, cabina, xarxa) Sí L'única cosa que gairebé tothom compta
Llicències de virtualització i de SO De vegades I el seu manteniment anual
Electricitat i refrigeració Rarament Sol ser un 10-20 % del cost del maquinari a l'any
Espai, terra tècnic i SAI Gairebé mai Encara que l'edifici sigui propi, té cost d'oportunitat
Personal d'operació Gairebé mai Guàrdies, apedaçament, substitució de discos
Renovació cada 4-5 anys i sobrecapacitat Malament Es compra per al pic i es paga tot l'any, cada cicle
Cost de la indisponibilitat Mai Sense redundància geogràfica, el risc és un cost diferit

Amb la calculadora de TCO i aquests ajustos, la comparació de Contoso va quedar així (xifres orientatives i fictícies, anuals):

Escenari Cost anual Comentari
Centre de dades de Barcelona, cost visible 190.000 € El que apareixia al pressupost de TI
Centre de dades de Barcelona, cost real ajustat 340.000 € Amb energia, personal, espai, renovació i sobrecapacitat
Azure, plataforma actual sense optimitzar 209.400 € 17.450 € × 12
Azure, després de l'optimització del mòdul 8 ~150.600 € Bestreta de 08-05

La conclusió que Contoso va escriure, i que convé copiar literalment en qualsevol informe: la comparació no és «Azure és més barat», sinó «Azure és més barat que un centre de dades honestament comptabilitzat, i a més converteix inversió en despesa operativa, elimina la sobrecapacitat i aporta capacitats —redundància geogràfica, escalat en minuts, serveis administrats— que el centre de dades no tenia a cap preu». Comparar només maquinari contra factures d'Azure és la manera més habitual d'enganyar-se un mateix.

  1. Preus per regió: la mateixa VM a dos preus

La mateixa mida d'instància costa diferent a West Europe, a North Europe, a Suècia Central o als Estats Units. Les causes són reals: cost de l'energia i del terreny, impostos, maduresa del centre de dades, tipus de canvi i demanda local.

Índex orientatiu i fictici prenent West Europe com a 100 per a una mateixa VM:

Regió Índex de preu Comentari
West Europe 100 Regió principal de Contoso
North Europe 96 Regió secundària del parell
Sweden Central 89 Més barata, energia abundant
East US 87 Habitualment de les més econòmiques
Brazil South 128 Fiscalitat i infraestructura

La temptació és òbvia: moure càrregues a la regió més barata. Abans de fer-ho, quatre frens que Contoso va aplicar:

  • Latència. El web de reserves serveix passatgers europeus. Un 13 % d'estalvi en còmput no compensa 120 ms addicionals a cada compra.
  • Residència de la dada. Les dades personals de passatgers i tripulacions no surten de la UE. És una restricció legal, no una preferència, i la imposa la directiva de regions permeses del mòdul 4.
  • Sortida entre regions. Repartir components que es parlen molt entre dues regions converteix trànsit intern gratuït en trànsit entre regions facturat.
  • Disponibilitat del servei. No tots els serveis ni totes les mides existeixen a totes les regions, i les zones de disponibilitat tampoc.

La regla pràctica: la regió es tria per latència, residència de la dada i disponibilitat de serveis, i només es fa servir el preu com a criteri de desempat, o per a càrregues que no tenen cap d'aquestes lligadures —per exemple, un processament per lots nocturn sense dades personals—.

  1. L'API de preus minoristes

Per automatitzar estimacions —o per comparar regions sense obrir la calculadora quaranta vegades— Azure publica l'API de preus minoristes (Retail Prices), pública, sense autenticació i sense cost. Retorna els preus de tarifa oficial, sense els teus descomptes negociats.

# Preu per hora d una mida de VM a West Europe, en euros
curl -s "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&\$filter=\
serviceName eq 'Virtual Machines' and armRegionName eq 'westeurope' and \
armSkuName eq 'Standard_D4s_v5' and priceType eq 'Consumption'" \
  | jq -r '.Items[] | select(.productName | contains("Windows") | not)
           | "\(.armRegionName)\t\(.meterName)\t\(.retailPrice) \(.currencyCode)"'

El paràmetre $filter fa servir sintaxi OData i admet serviceName, armRegionName, armSkuName, meterName, priceType (Consumption, Reservation, DevTestConsumption) i reservationTerm. La clàusula select de jq descarta les variants amb llicència de Windows, que apareixen barrejades amb les de Linux i són l'error de lectura més comú.

Bucle equivalent sobre diverses regions —l'ús que més rendiment dona— substituint armRegionName eq '$REGION' dins d'un for REGION in westeurope northeurope swedencentral eastus, prenent [.Items[].retailPrice] | min i multiplicant per 730 hores per obtenir el mes mitjà. La resposta ve paginada mitjançant el camp NextPageLink, així que per a consultes àmplies cal iterar. Un ús molt pràctic: mantenir a contoso-infra un script que, a cada sol·licitud d'incorporació de canvis que modifiqui un .bicep, consulti els preus de les SKU declarades i publiqui l'estimació com a comentari automàtic a la mateixa sol·licitud (apartat 10).

{
  "currencyCode": "EUR",
  "retailPrice": 0.2048,
  "unitOfMeasure": "1 Hour",
  "armRegionName": "westeurope",
  "armSkuName": "Standard_D4s_v5",
  "serviceName": "Virtual Machines",
  "priceType": "Consumption",
  "meterName": "D4s v5"
}

Cada element retornat té aquesta forma. Fixa't en unitOfMeasure: és la clau per no equivocar-se de tres ordres de magnitud. Hi ha mesuradors expressats en «1 Hour», d'altres en «1 GB/Month», d'altres en «10K» operacions i d'altres en «1M» tokens. Multiplicar sense llegir aquesta columna és l'error clàssic de qui automatitza estimacions per primera vegada.

  1. El marge d'error i els supòsits escrits

Una estimació és un model, i tot model té error. La diferència entre una estimació professional i una xifra improvisada és que la primera declara el seu error i els seus supòsits.

Els components de l'estimació de Contoso es classifiquen per previsibilitat:

Tipus de cost Exemples Previsibilitat Marge recomanat
Fix Plans d'App Service, tallafoc, bastió, passarel·la Molt alta ±5 %
Semifix Nodes base d'AKS, base de dades aprovisionada Alta ±10 %
Variable acotat VMSS amb escalat automàtic 2-20, Cosmos amb escalat automàtic Mitjana ±25 %
Variable obert Sortida de dades, transaccions, GB ingerits, tokens Baixa ±50 %

I així s'estima el que és variable, que és on tothom es rendeix:

  • Escalat automàtic: no s'estima el màxim ni el mínim, sinó el perfil horari esperat. Contoso va documentar: 2 instàncies de 00:00 a 07:00, 6 de 07:00 a 22:00, i un perfil apertura-temporada-verano amb mitjana de 14 durant tres setmanes. La mitjana ponderada mensual va sortir 6, i per això la línia diu 6 i no 20.
  • Transaccions i sortida: s'estimen des del negoci, no des de la infraestructura. «92.000 reserves al mes × 1,4 targetes per reserva × 180 KB» dona els gigabytes de sortida de targetes; la resta s'acota amb un factor.
  • Tokens: consum per interacció × interaccions esperades, amb un límit dur configurat al servei perquè l'error no sigui il·limitat.

El coixí de Contoso: sobre els 17.450 € base, un 15 % de contingència dona 20.070 €/mes, i aquesta és la xifra que es va portar al comitè. És deliberadament conservadora, i respon a una asimetria real: quedar-se curt en una estimació costa credibilitat davant de finances; passar-se una mica produeix una bona notícia. La regla escrita va ser: «es pressuposta l'estimació amb coixí; es persegueix l'estimació base».

Els supòsits van al document, no al cap:

{
  "estimacion": "contoso-plataforma-2026-08",
  "moneda": "EUR",
  "region_principal": "westeurope",
  "vigencia_precios": "2026-08-01",
  "total_base_mensual": 17450,
  "colchon_pct": 15,
  "total_presupuestado": 20070,
  "supuestos": [
    "Reserves mensuals: 92.000, amb pic de 148.000 a l agost",
    "vmss-api-disponibilidad-pro: mitjana de 6 instancies (perfil horari documentat)",
    "Sortida a internet: 4,5 TB/mes, inclosa la replicacio entre regions",
    "log-contoso-pro: 42 GB/dia ingerits, retencio per taula vigent",
    "oai-contoso-pro: 40 milions de tokens/mes, limit dur configurat",
    "Sense reserves ni plans d estalvi contractats (veure 08-03)",
    "Preus de tarifa oficial, sense descompte d acord comercial"
  ],
  "riesgos": ["L estiu pot duplicar l egress i el VMSS", "sqlpool-contoso sense pausar"]
}

Aquest fitxer viu al costat de les plantilles a contoso-infra. El seu valor apareix tres mesos després, quan la factura no quadra: es compara el supòsit amb la realitat i se sap què va fallar, no només quant.

  1. L'estimació com a part del disseny

Que el cost deixi de ser una sorpresa exigeix integrar-lo en dos moments del procés, no en una revisió anual.

A la revisió d'arquitectura. Cap proposta no s'aprova a Contoso sense una estimació adjunta amb els seus supòsits i, quan hi ha alternatives, sense una taula comparativa. Exemple real del disseny de l'API de Disponibilitat:

Alternativa € / mes orientatius Latència Operació Decisió
VMSS amb escalat automàtic 1.320 Baixa i estable Mitjana: pedaços, imatges Triada: càrrega sostinguda i previsible
Container Apps 890 Baixa, amb arrencada en fred ocasional Baixa Descartada per l'arrencada en fred a l'obertura de temporada
Functions en pla de consum 410 Variable Molt baixa Descartada: l'API és sostinguda, no esporàdica

Fixa't que no va guanyar l'opció més barata, i aquest és el punt: l'estimació no decideix, informa. El que sí que és inacceptable és decidir sense ella.

A la sol·licitud d'incorporació de canvis d'infraestructura. Tota modificació d'un .bicep a contoso-infra (05-06) passa per una comprovació automatitzada que compara les SKU declarades contra la branca principal i comenta l'impacte:

# Simplificat: extreure SKU de les plantilles i demanar preu a l API minorista
grep -rhoP "(?<=sku:\s')[A-Za-z0-9_]+" ./infra/*.bicep | sort -u | while read -r SKU; do
  P=$(curl -s "https://prices.azure.com/api/retail/prices?currencyCode='EUR'&\$filter=\
armSkuName eq '$SKU' and armRegionName eq 'westeurope' and priceType eq 'Consumption'" \
    | jq -r '[.Items[].retailPrice] | min // empty')
  [ -n "$P" ] && echo "| \`$SKU\` | $P €/h | $(echo "$P * 730" | bc) €/mes |"
done

La sortida es publica com a comentari a la sol·licitud, amb el format de taula markdown ja muntat. L'efecte cultural és més gran que el tècnic: qui proposa un canvi en veu el preu abans que ningú no l'hi pregunti, i la conversa sobre cost passa en el moment en què corregir-lo és gratis.

Errors Comuns i Consells

  • Estimar només el còmput i les bases de dades. És exactament l'error que va duplicar la factura de Contoso. Recorre la taula d'unitats de l'apartat 2 servei per servei.
  • Oblidar la sortida de dades. No té recurs propi, no apareix al portal com a objecte i sol ser una de les deu primeres partides.
  • Confondre el recurs amb la unitat facturada. Es paga el pla, no l'aplicació; els nodes, no el clúster; el vCore-hora, no la base de dades.
  • Posar 730 hores a tot, o estimar el màxim de l'escalat automàtic. El primer infla els entorns apagats de nit; el segon produeix xifres que ningú no es creu i desprestigien l'estimació sencera. Estima el perfil, i declara el màxim com a risc.
  • Llegir malament unitOfMeasure a l'API. «1M tokens» i «1K operacions» conviuen a la mateixa resposta.
  • Activar alguna cosa gratuïta sense mirar aigües avall. Les configuracions de diagnòstic són gratis; la ingesta que provoquen, no.
  • Consell: agrupa l'estimació per component d'arquitectura, no per servei d'Azure. Ningú no discuteix «Storage»; tothom discuteix «quant costa l'API de Disponibilitat».
  • Consell: desa l'estimació amb enllaç i exporta-la a full de càlcul el dia que la facis, i revisa-la quan canviï l'arquitectura, no quan arribi la factura.

Exercicis

Exercici 1. Estima amb la calculadora oficial —fes servir la teva regió i la teva moneda— un entorn de desenvolupament equivalent al de Contoso: un pla d'App Service bàsic, una base de dades SQL sense servidor amb pausa automàtica, un compte d'emmagatzematge LRS de 200 GB i una VM de 2 vCPU encesa només en horari laborable. Agrupa per component, exporta i anota quins tres supòsits t'has hagut d'inventar.

Exercici 2. Contoso Millas (centro-coste=CC-2077) està a punt de llançar-se: web a App Service, PostgreSQL flexible, blobs de justificants, una Function que calcula punts, un Event Grid i un tauler a Log Analytics. Construeix la llista de totes les unitats de mesura que caldrà estimar, marcant quines són fixes, variables acotades i variables obertes, i quin marge aplicaries a cada grup.

Exercici 3. Un company proposa moure vmss-api-disponibilidad-pro de West Europe a East US perquè «costa un 13 % menys». Escriu la resposta tècnica i econòmica: quins costos nous apareixen, quines restriccions ho impedeixen i quines càrregues de Contoso sí que serien candidates legítimes a aquesta mudança.

Solucions

Solució 1: l'exercici importa pels supòsits, no pel total. Els tres que inevitablement cal inventar-se són: (1) hores de la VM —176 h al mes amb el patró laborable de 8 h × 22 dies, davant de les 730 que la calculadora proposa per defecte—; (2) segons de còmput de la base sense servidor, que depenen de quantes hores al dia treballa l'equip i de la finestra de pausa automàtica configurada, i que en desenvolupament sol quedar en un 15-25 % del mes; i (3) transaccions de l'emmagatzematge, que la calculadora demana en operacions d'escriptura, lectura i llistat i que en desenvolupament ningú no ha mesurat mai. A més hi ha dos costos que gairebé segur que s'han omès i cal afegir: el disc gestionat de la VM, que es factura encara que la màquina estigui desassignada, i la seva IP pública si en té. Comprovació de sensatesa: en un entorn així, el disc i la base de dades solen pesar més que el còmput, precisament perquè el còmput s'apaga i l'emmagatzematge no.

Solució 2: unitats per servei i la seva classificació. Fixes (±5 %): hora del pla d'App Service; vCore-hora i GB-mes de PostgreSQL flexible si està aprovisionat; rèplica d'alta disponibilitat si s'activa. Variables acotades (±25 %): execucions i GB-segon de la Function si està en pla de consum —acotada perquè el nombre de bescanvis té un sostre conegut—; operacions d'Event Grid; GB-mes dels blobs, que creixen de manera previsible al ritme de bescanvis. Variables obertes (±50 %): transaccions de l'emmagatzematge, que en justificants petits poden superar el GB-mes; GB ingerits a log-contoso-pro per les configuracions de diagnòstic del projecte, que és la partida que més se subestima; i sortida de dades per la descàrrega de justificants. Costos gratuïts amb consum aigües avall que cal declarar encara que valguin zero: Event Grid té una franja gratuïta generosa, les etiquetes i directives no costen, però l'assignació diagnostico-app-service heretada de la iniciativa «Base de governança de Contoso» generarà ingesta des del primer dia. Marge global recomanat: 15 % sobre el total, amb els supòsits de bescanvis mensuals i mida mitjana de justificant escrits al document.

Solució 3: l'estalvi del 13 % s'aplica només a la línia de còmput (1.320 € → uns 1.150 €, uns 170 € al mes), i contra això apareixen costos nous: sortida entre regions per cada consulta de disponibilitat que el VMSS faci a db-reservas i a cosmos-contoso-tarifas-pro, que continuen a West Europe —trànsit avui intern i gratuït que passaria a facturar-se i que, amb el volum de l'API, es menja l'estalvi amb escreix—; latència d'anada i tornada transatlàntica a cada petició, que degrada la disponibilitat mostrada al passatger; i doble operació, perquè caldria replicar xarxa, NSG, punts privats, bastion, regles de fw-contoso-hub-pro i configuracions de diagnòstic en una segona regió. La restricció que ho tanca sense discussió és de compliment: les dades de passatgers no surten de la UE, i la directiva de regions permeses del mòdul 4 denegarà el desplegament. Càrregues que sí que serien candidates legítimes: processos per lots nocturns sobre dades ja anonimitzades, agents de compilació autoallotjats de contoso-reservas-ci —que a més poden anar en instàncies d'accés puntual (08-03)—, i entrenaments o proves de càrrega puntuals sense dades personals. Regla general: es mou per preu allò que no té latència crítica, ni dades regulades, ni conversa intensa amb recursos d'una altra regió.

Conclusió

Ja saps per què l'estimació és l'única palanca que actua quan corregir encara és gratis, i per què l'error de Contoso —duplicar la previsió— no va ser de càlcul sinó de model mental: Azure no és un catàleg de màquines amb preu mensual, sinó un conjunt d'unitats de consum. Tens la taula d'aquestes unitats per família de servei —hora d'instància, hora de pla, GB-mes, transacció, unitat de sol·licitud, TB llegit, GB ingerit, GB de sortida, execució, token, instància protegida—, l'advertiment que gairebé tot té una segona unitat que ningú no estima, i els tres costos que s'obliden sempre: la sortida de dades, que no té recurs a què mirar; les transaccions, que en objectes petits superen l'emmagatzematge; i les funcions «gratuïtes» que arrosseguen consum aigües avall, amb les configuracions de diagnòstic com a exemple perfecte.

Manegues la calculadora de preus amb mètode —buscar, configurar regió, nivell, quantitat i hores, agrupar per component, fixar moneda i oferta, desar, compartir i exportar— i has vist l'estimació completa de Contoso: 17.450 €/mes orientatius, amb les cinc línies que sorprenen identificades —Log Analytics, el tallafoc, els nodes d'AKS, el bastió i Front Door— més la rèplica de db-reservas, que costa el 80 % de la principal i posa preu explícit a la decisió de recuperació del mòdul 7. Saps fer servir la calculadora de cost total de propietat i quins costos ocults del centre de dades cal sumar perquè la comparació sigui honesta: energia, personal, espai, renovació, sobrecapacitat i risc. Entens per què la mateixa VM costa diferent a cada regió i per què la regió es tria per latència, residència de la dada i disponibilitat, amb el preu només com a desempat; i pots automatitzar-ho amb l'API de preus minoristes, vigilant sempre unitOfMeasure. Per damunt de l'eina t'endus el que converteix una xifra en una estimació: el marge d'error declarat, la manera d'estimar el que és variable a partir del perfil horari i del negoci en lloc del màxim teòric, el coixí del 15 % que va portar els 17.450 € als 20.070 € pressupostats, i el fitxer de supòsits i riscos versionat al costat de les plantilles.

Però una estimació, per bona que sigui, continua sent una hipòtesi. La pregunta de la Nuria —«per què puja la factura cada mes?»— només es respon amb dades reals: què s'ha gastat, en quin recurs, de quin equip, quin dia i per què. Això és Azure Cost Management, i és la lliçó següent: la jerarquia de facturació i la seva diferència amb la de recursos, l'anàlisi de costos agrupada per servei, ubicació, grup de recursos i etiqueta —on per fi es cobra la disciplina de centro-coste=CC-1042 sembrada al mòdul 1 i forçada per la política hereda-centro-coste del mòdul 4—, els pressupostos amb les seves alertes automatitzades, el repartiment entre equips, les exportacions a stlagocontosopro i la detecció d'anomalies. D'estimar el cost passem a mesurar-lo.

Curs d'Azure

Mòdul 1: Introducció a Azure

Mòdul 2: Serveis principals d'Azure

Mòdul 3: Bases de dades d'Azure

Mòdul 4: Seguretat a Azure

Mòdul 5: Azure DevOps

Mòdul 6: Serveis avançats d'Azure

Mòdul 7: Monitoratge i gestió

Mòdul 8: Gestió i optimització de costos

Mòdul 9: Estudis de cas i millors pràctiques

© Copyright 2026. Tots els drets reservats