Architecture changes fast. Contracts do not. That gap is where infrastructure money goes to die, and it has looked identical for twenty-five years.
The story is always the same. Someone sizes a purchase against the system as it exists today. The system then does what systems do – it changes. The purchase cannot. And for the rest of the contract you pay for a shape that no longer exists.
Every era, the same trade
The rack. You bought servers for peak load in three years’ time, because procurement took six months and you only got one shot. So you ran at fifteen percent utilisation and called the headroom “growth”. Half those boxes never met the load they were bought for. The application was rewritten before the depreciation ended.
Virtualisation. We fixed the utilisation problem and immediately invented a new one: sprawl. Provisioning got so cheap that nobody said no, and every VM was permanent because deleting one required knowing what it did. Consolidation savings, quietly eaten by the fact that the cost of creating had collapsed while the cost of removing had not.
Reserved instances. The cloud promised to end all of this – pay for what you use – and then sold us a discount for promising not to change. One year. Three years. Reserved against instance families that got superseded twelve months in. The saving is real. The lock is also real, and the lock is measured against an architecture with a shelf life shorter than the term.
Committed spend. The current form, and the purest. You commit to a volume of consumption in exchange for a discount. Now the accounting is completely detached from the engineering: you are not buying servers, or capacity, or even usage. You are buying a promise about your own future behaviour.
What I found in an audit this year
An environment with a large annual credit commitment. Serious money – roughly eighteen thousand a year, renewing automatically.
Consumption against those credits: zero. Not low. Zero SKUs, zero regions, nothing.
The infrastructure was very much alive and generating real usage. But that usage was billing against a different account – pay-as-you-go – while the committed credits sat in their own account, being invoiced, consumed by nothing. Both invoices were paid. For roughly eight months, the organisation paid twice: once for the capacity it used, once for the promise it had made.
Nobody was negligent. Finance saw an invoice matching a contract and paid it. Engineering saw infrastructure that worked and moved on. The commitment and the consumption were never in the same room, so the fact that they had come unlinked was nobody’s alert.
That is what makes this the expensive class of problem. It does not look like waste. It looks like two correct things.
Why buying always outlives building
The clock speeds are wrong. An architecture can be materially different in six months. A contract is twelve or thirty-six. The term is the bet, and you are betting against your own engineers doing their jobs well.
The discount is priced against your flexibility, not your usage. That is what a vendor is actually selling. Fine when the estate is stable. Expensive when it is not – and “we will not change much this year” has been false every year I have worked.
Nobody’s job spans it. Engineering is measured on delivery, finance on the invoice matching the contract. The question “does what we committed to still resemble what we do?” belongs to neither. It gets asked at renewal, by whoever happens to be in the room, if anyone is.
Auto-renewal is the default. Which means the decision is not made again – it is inherited, silently, by people who were not there when it was made and cannot reconstruct the reasoning.
The habits that survive every cycle
- Never let a term outrun your architectural half-life. If you cannot say what the estate looks like in three years, do not buy three years. The discount is not worth the bet.
- Reconcile commitment against consumption, on a calendar. Not at renewal – quarterly, deliberately. Two numbers: what we committed, what actually burned against it. If they have drifted, you found it early instead of at year eight.
- Kill auto-renew as a policy. Not because renewing is wrong – because a decision nobody re-makes is a decision nobody owns.
- Price the exit before you sign. Ask what leaving costs and how much notice it takes. If the answer is vague, that vagueness is the actual product.
- Make one person hold both halves. Somebody has to be responsible for the sentence “what we buy still matches what we run”. If nobody is, the drift is guaranteed – not likely, guaranteed.
The test
Open your largest infrastructure commitment. Now, without opening the vendor’s billing page, answer: what did we consume against it last month?
If you cannot answer, the reconciliation is not happening. And an unreconciled commitment does not fail loudly – it just quietly bills, every month, for a system you stopped running a long time ago.