I'd start with DO or Hetzner, https://www.hetzner.com/cloud
And then move to own hardware in a colo.
https://www.supermicro.com/en/products/aplus
At the same time, I'd probably keep each project as I went. From day-0 you should have some form of cloud presence in all the providers, at least a root of trust landing zone you can work from to build out infra should you need to.
is the quote I was replying to. The parent doesn't mention startups, they say the word company so of course I'd have taken it as all companies as a whole. There is no hard and fast rule that every company must have "half a rack of hardware in a colo" or otherwise they're not a "real company." This is basically the No True Scotsman fallacy in action.
If you're trying to scale, fast, into the global stage "half a rack of colo" isn't going to cut it. You're going to need presence everywhere and that can be impossible to deploy fast.
If you're targeting say a single market, say North America, with fewer larger clients you're likely to be able to manage it from two DCs and can realistically manage it yourself.
It's just "right solution for the right situation". Cloud is absolutely not always the right solution.
I didn't say only, and I did say you should have footprint in every cloud for when you need to scale or deploy in a region.
If there was an "App Template" for a company, I think have your own hardware in a place you control is super important. Cloud providers literally don't give a shit about you. It is about agency.
But more broadly, the value is IP, essentially know-how and lock-in with customers, relationships etc..
Things like 'egress data' can be a problem, but for the most part, even if AWS is more expensive than self hoste - the 'total cost of ownership' is much cheaper in the cloud - usually.
I will only address TC comments with supporting numbers. Just math, no boogeymen.
Not to mention that you need quite a lot of money and engineering resources to get it all up and running. And it's never one half rack because you also need to have a secondary site for disaster recovery and backup...
Running your own hardware makes sense once your cloud bill starts hitting five figures and your hardware needs have become predictable. Until you reach that point, you can save yourself a lot of headaches by just using managed cloud resources.
I am not saying to not use Cloud. Use Cloud. But have your own hardware.
Automated rollouts and rollbacks, Storage orchestration, Secret and configuration management, Service discovery and load balancing, Self-healing, Horizontal scaling, Automatic bin packing (on vms)
k8's gives you this if you want BUT you don't even have to use those things.
I've seen and experienced this too many times already. And AWS knows how to play that game better than startups. By the time credits run out the startup is so locked in to AWS there is no way out and then the big invoices start coming in.