People often talk about resilience in software as if backup and DR are enough. What the Broadcom acquisition of VMware made me understand is that it isn’t.
Software survivability depends on three things working together: portability, physical ownership, and backup. Without all three, you are trapped. And once you are trapped, you are vulnerable.
Software is just text. Like human culture, it is inert without a physical substrate to store, execute, and restore it. That means survivability is not just a question of whether your code exists somewhere. It is a question of whether you can actually bring it back to life under adverse conditions.
To understand this, it helps to break any software system into two parts:
- Infrastructure
- Application or business logic
An application cannot run without infrastructure. But infrastructure is itself software, with its own dependencies, constraints, and failure modes. So survivability must be evaluated across the entire stack, not just at the application layer.
1. Backup Only Matters If You Can Restore It Yourself
A backup is only real if it can be restored without relying on the original vendor.
If recovery depends on the original authors of the code, the original cloud provider, or the original platform vendor, then you do not truly control your backup. You are renting recoverability, not owning it.
This matters most in precisely the situations where recovery is most important. If the vendor cannot or will not support you, then your backup is functionally useless. If the vendor’s recovery capacity is constrained, you should assume you are a low priority. During a black swan event, many customers may need restoration simultaneously. That is exactly when centralized recovery support breaks down.
If your restore plan assumes the vendor will be available, willing, and sufficiently staffed under crisis conditions, then it is not a restore plan. It is hope.
Furthermore, if your plan assumes that any relationship you have with a vendor cannot be disrupted because of events in the world, that is not a plan; that is a hope.
2. You Need Ownership of Physical Infrastructure
Even if you can restore independently, you still need somewhere to restore to.
If you do not own physical infrastructure, you have no guarantee there will be a place to run your system when you need it most. And this is not just about owning some hardware in the abstract. You need the right infrastructure, with the right capacity, available on the right timeline.
A recovery plan that depends on finding infrastructure during a crisis is not much of a recovery plan, either.
But ownership and restoration still are not enough.
Physical infrastructure can be destroyed. It can be denied. It can become unreachable. That can happen through deliberate action, geopolitical conflict, sabotage, or natural disaster. If the physical substrate disappears, your software, however well-designed, becomes unusable.
This is why survivability cannot stop at backup and infrastructure alone. There has to be another layer of freedom.
3. Portability Is What Prevents Lock-In From Becoming Captivity
Every software system contains two layers: infrastructure and business logic. Application portability is the ability to move that business logic across infrastructures.
This does not mean portability is free. It is not transparent, and it is never without cost. But it must be possible.
That distinction matters. A system does not need to move instantly or effortlessly. It does need to be capable of moving.
Without portability, your application is fused to a specific infrastructure stack. And once that happens, your bargaining power disappears. Pricing changes, policy changes, licensing changes, geopolitical shifts, or vendor instability all become existential problems rather than procurement problems.
Portability is what turns dependence into choice.
It does not happen accidentally. It requires discipline, architectural restraint, and a willingness to forgo some short-term convenience to preserve long-term freedom.
A Case Study in the Cost of Missing Portability
As the vCenter architect from 2015 to 2023, I believed VMware had a sacred trust with its customers. VMware’s attitude was that we did not lose customers. We worked hard to keep them.
That mindset led many customers to assume they did not need portability. They had backups. They had physical infrastructure. What they lacked was a portable application layer.
The hidden assumption was that the business relationship itself was fixed.
It was not.
The relationship existed only as long as capital markets agreed with it. Once the markets decided that the existing customer relationship no longer aligned with their interests, the relationship changed. And when that happened, the absence of portability became painfully visible.
Customers suddenly found themselves with no real negotiating leverage. Prices rose, and many had little choice but to pay. Porting away was either prohibitively difficult or practically impossible.
Why?
Because portability had never been built. No portable layer existed. And portability does not emerge by accident. If you do not explicitly design for it, it will not be there when you need it.
The Real Test of Survivability
A survivable software system is not one that merely runs well under normal conditions. It is one that can survive broken relationships, failed vendors, destroyed infrastructure, and changed incentives.
That requires three things:
- Backup you can restore yourself
- Ownership of physical infrastructure sufficient to restore onto
- Portability of the application layer across infrastructures
Remove any one of these, and your resilience is incomplete.
Backup without self-service restore is dependency.
Infrastructure without portability is entrapment.
Portability without infrastructure is theory.
Survivability begins when all three are present at once.








