By Paul Stack
10/14/2025
"You don’t have drift. You have entropy. And Terraform refresh won’t save you."
For years, Infrastructure-as-Code has been gaslighting us.
We’ve been told drift is the problem: that sneaky monster that creeps in when someone (or something) changes something outside your sacred declarations. The cure?
Run terraform plan
. Spot the difference. Run terraform apply
. Order is restored.
Cute story. But it’s a fairy tale.
Drift is real.
The world is drifting out from under you — because it’s changing. Constantly. Without permission. Without waiting for your YAML.
That is drift. That is entropy.
And entropy doesn’t care about your state file.
Let’s be blunt: "drift" is a nice, marketable way to say "things happened out of band."
That’s drift, the world doing exactly what it’s supposed to do.
IaC tools slap the label "drift" on it because it makes the problem sound solvable. Like if you just reconcile the difference, you’re back in control. But you’re not. You never were.
Every refresh is stale the moment it finishes. Every plan is a guess based on half-truths. Every apply is a gamble. And the wheel just keeps spinning.
Terraform’s sacred ritual looks fine in a conference demo.
In production? It’s a Rube Goldberg machine made of duct tape and state files.
State file: A fragile ledger that pretends to be the truth but is always already a lie.
Plan: A best-effort hallucination of what might happen if nothing changes between now and apply. (Spoiler: something always changes.)
Apply: The moment of truth. Or the moment you nuke something important.
Locks, staging, workspaces: Band-aids on a system that’s terrified of itself.
Refactoring: Not improvement. Surgery. One wrong move and you’re in the morgue.
This isn’t managing infrastructure.
It’s paperwork with extra steps.
The cloud is alive.
It scales. It mutates. It heals. It races. Sometimes it just sets itself on fire. None of this is optional. It’s how complex systems behave.
But IaC doesn’t model reality. It models a wish. A wish that the universe will sit still long enough for your declarations to be current.
Guess what? The universe doesn’t sit still.
Drift detection and correction are lipstick on entropy. You have drift because your systems refuse to stop moving long enough for your YAML to matter.
And every time you run plan → apply
, you’re not restoring order. You’re just buying a few more minutes of denial.
Terraform. Pulumi. CloudFormation. They’re all playing the same tired game:
Meanwhile, the world keeps changing. Autoscaling groups rotate out instances before your plan even finishes. Providers quietly mutate things you don’t control. Humans intervene because they have to.
And through it all, IaC clings to its ritual like a religion: if you just keep reconciling files to reality, eventually the universe will behave.
It won’t.
This isn’t engineering anymore. It’s bureaucracy. And like all bureaucracy, it eventually collapses under the weight of its own paperwork.
System Initiative throws the whole illusion into the trash.
Instead of reconciling text files to a moving target, we build a data model — a digital twin of your infrastructure that actually tracks reality as it changes.
depends_on
spaghetti.You don’t reconcile YAML to the world. You work with the world directly. Relationships are reactive, bidirectional, and real-time. Secrets, policies, and governance aren’t bolted on later — they’re part of the model.
When you make a change, you’re not gambling against a stale plan. You’re operating on reality.
Because reality doesn’t drift, it just moves. And your tooling should be able to move with it.
Drift was never your enemy. Entropy is.
You can refresh
, plan
, and apply
until you wear the keys off your keyboard, but that’s not infrastructure management. That’s ritual.
Infrastructure doesn’t care about your declarations. It doesn’t wait for your plan. It doesn’t respect your state file. It mutates, heals, races, and burns on its own terms.
IaC is the old way: forever reconciling yesterday’s YAML with today’s reality. The new way is to model the living system, accept entropy, and build tools that work with it instead of pretending it doesn’t exist.
Because at the end of the day, no matter how much YAML you throw at it, reality always wins.
Paul is an engineer turned product manager who is passionate about the Continuous Delivery and DevOps movements and how they are critical in helping businesses deliver value to their customers.