You have already learned about the dangers of vendor lock-in when using products from cloud providers. Typically, each cloud provider will offer a different API and a different CLI to all the others. There are cases where smaller providers offer abstraction layers that allow accessing their products via an API similar to that of the well-known providers. This approach aims to help with migrating the application from one platform to another.
Such instances are rare, though, and in general, tools used to interact with services from one provider are incompatible with those from another provider. This is a problem not only when you consider migration from one platform to the next. It may also be problematic if you want to host your application on a variety of providers.
For this purpose, there's a new set of tools, collectively known as Infrastructure as Code (IaC) tools, that offer an abstraction layer on top of different providers....