It's been a long time since maintaining your own servers was the best way to deploy a service. GCP and AWS are clear winners in the space. But like all good things, don't go overboard. There are many services you should steer clear of. You want to prevent vendor lock in so you can migrate to a competitor if need be. More importantly, there's often higher quality cheaper solutions if you can roll it on your own. This article gives a few examples of the tradeoffs.
There are a few virtualization choices out there, and for most startups this choice is necessary. Buying a server is all but completely impractical in this day and age. So it comes down to a few top companies. I have a clear bias toward GCP, and I hope to make the case for it here, but there are reasons to go with other choices in certain circumstances.