Every company wants you to be loyal, be a customer for a long time and buy more, and cloud vendors are not an exception and do their best to tie you to their products and services. But compared to other industries, changing a cloud may not be so easy as, let’s say, switch from Ford to Mercedes-Benz.
A Similar approach to IaaS but when it comes to details and non-VM workloads, their internal algorithms, API and strategies to problem solving are different.
All clouds started with launching VMs in a virtualized environment and evolved into Anything-as-a-Service model, running managed databases, Big Data and ML, containers, audio and video streams analysis etc.
When it comes to running VMs you are more or less on a safe side, with a help of lift-and-shift software or by recreating VMs manually, you can run those workloads on practically any cloud. But when you start to use other cloud services, this is there the trap (or vendor lock-in) is. You may ask: What’s the trap? AWS or Azure give me great prices and I don’t plan to use other clouds. You are right. Now. But things tend to change and what if in a few years you would grow to a size of Walmart and Amazon would become your competitor or you are a medium-size company and you get a nice discount from another cloud vendor but have nothing to do with that as it’s already impossible to escape from the trap. There is no easy way to migrate between cloud native database, ML, container services, etc. Definitely, you can recreate the database by copying all the transactions or moving containers one by one, but can you do that in a production environment without risking data integrity?
The only option to get partially out of the trap is to migrate VM workloads and to create new resources on a new cloud. But this is another level of complexity as you will deal with a multi-cloud environment and need to be prepared for that as it brings management and billing overhead.
When you start to use a cloud you need to answer the question: what’s your advantage vs. risk to stay in this cloud forever? If you don’t see any risk and you are ok with the prices (they are higher than running on your own from an infrastructure perspective) for cloud native services, go ahead and use them as they are awesome for startups in terms of simplifying and boosting development. But if you see any potential risks, think of using stateless applications or, at least, running all the workloads in VMs which can be later migrated to another cloud, if necessary.
It’s easy to forget about the vendor lock-in when you are a small company and have lots of more critical things to focus on but when you grow it may be a real pain. So better to think about that in advance and be prepared.