Cloud vendors are not all lock-ins. Kubernetes is an open API. If you've got your project working in Amazon, you can migrate it to GKE, Digital Ocean or just bare metal.
Yes, cloud vendors love to lock you in, but right now it's possible to use clouds in a vendor-neutral way. Managed postgres is just a postgres. Managed Kubernetes is just a Kubernetes. S3 have plenty of alternative implementations.
S3 is just a protocol. Minio is one example of software which implements this protocol. You're programming against S3, using amazon SDK, but you change endpoint to another provider and it just works.
I guess it wouldn't work for all the intricacies, but for commonly used stuff it works.
> so far it seems impossible to switch once you started with any one of them
Do you think cloud vendors (FAANG companies) are fools who have accidentally created this situation? And do you think they will stand idly by while you try to abstract away the differences between them?
Indeed the cloud vendors are all lock-ins, something needs to be designed to mitigate the switching cost among cloud providers.
Each one has its own SDK and own complicated infrastructures, so far it seems impossible to switch once you started with any one of them.