If you're already running container workloads, DigitalOcean has a managed Kubernetes offering that's quite decent. If you're only using VMs so far, I don't think you'll gain anything by introducing the complexity of the bigger cloud providers (managing VPC, subnets, firewalling).
Of course you can use a cloud provider and just stick with a common stack that can be easily moved to different providers or hosted on metal/on-prem once the need arises.
In order to provide a more useful answer, I'd like to know your current tech stack and a rough estimate of traffic/users.
I've done consulting for various clients who wanted to move from on-prem to cloud and vice versa and as long as you stay clear of the proprietary products you shouldn't worry that much about cloud lock-in. Stick with Postgres/MySQL, redis, containers/VMs and try to have as much of your infra in code, if possible.