Opinions range from "why would I need one?" to "how can we not have one?" with a heavy impact on our cloud strategy and how we do things in the cloud.
When talking about exit scenarios it is worth to distinguish between a forced and a voluntary exit. A forced exit happens due to external factors that don't leave you any choice when to go. A voluntary exit happens at your own choice, both when and how.
Why would one be force to have an exit strategy? Simple because running a business on cloud services carries other types of risks compared to running a business in your own data center:
- Cloud accounts can be disabled for alleged violation of terms
- Cloud accounts can be terminated
- There are no guaranteed prices. Running costs can explode as a result of a new pricing model
- The cloud vendor can discontinue a service that you are based on
- Lost cloud credentials combined with weak security can be desastrous (learn from Codespaces)
- If the cloud vendor is down you can either hope and wait or start your website somewhere else, if you where prepared. In the data center you can try all sorts of workarounds and fixes - but you must do that all yourself.
- ... fill in your own fear and bias against the cloud ...
Another cloud vendor is cheaper, better or solves problems that your current vendor doesn’t care about
- You are bought by another company and they run everything in another cloud, forcing you to migrate
- ... who knows what the future will bring?
- Use only IaaS (e.g. servers, storage, network) or PaaS (fancy services) from the cloud so that it is easy to migrate to another cloud vendor or to a private cloud. The big disadvantage is that you won't be able to benefit from all the cool managed services that make the cloud an interesting place to be.
- Use many cloud providers or accounts (e.g. matching your larger organisational units) to reduce the "blast radius" and keep the communication between them vendor independant. If something happens to one of them the damage is limited in scope and everything else keeps working. The disadvantage is that you add complexity and other troubles by dealing with a widely distributed platform.
I prefer the second option because it lays the ground for a voluntary exit while still keeping most of the advantages of the cloud as an environment and ecosystem. In case of a forced exit there is a big problem, but that could be solved with lots of resources. A forced exit for a single account can be handled without harming the other accounts and their products. As another benefit there is not much premature optimization for the exit case.
Whatever you do - I believe that having some plan is better than not having any plan.