My startup is just getting off the ground, and at the moment we’re happily prototyping on Heroku. I’ll admit I’m more of a product developer and not the best DevOps, so I was wondering if HN had some advice...
We’re starting to have some basic needs (very basic!) such as registering testing domains and configuring DNS, which Heroku doesn’t offer.
I was thinking now might be the time to set us up on a cloud infra provider with hopes that whatever I set up today will last us a while. I’d prefer to use the smallest number of vendors (and the least user access management) possible.
AWS is the default I’ve used in the past, but it’s always felt over complicated to me and I don’t really like the way user management works.
I thought about GCP because we’re already on Google Workspace, but I have no experience with it. How good is GCP?
Obviously Azure and Azure DevOps are also a big, popular choice. But no experience there either.
And I’m aware of smaller players like DO and Linode etc. How far can you get using just one of them?
Thanks for any suggestions or shared experiences, really appreciate it!
Then rent a dedicated server when you outgrow it.
Whatever you design will be platform agnostic. You’ll be able to decide for yourself when you get big enough what’s the right path for hosting. You won’t be locked in to any particular platform.
Install something like dokku. Use Docker containers.
My startup scaled to $2M ARR on a single dedicated server for our core infrastructure. (Yes, that’s a bit extreme)
Now we have over 30 dedicated servers servicing our core infra, many of which live in a colo rack in Dallas.
Everyone is all about ‘the cloud’ - however IMHO it’s overly complicated and a distraction to start, and overly expensive as you scale. (AWS would be 16x more expensive for us than our colo setup)
Vultr, DigitalOcean, Linode... are all fine for getting started. Many even have programs where startups can get free credits: https://www.digitalocean.com/hatch/
When you grow checkout some Dedicated Hosting providers like Hivelocity, or checkout webhostingtalk’a dedicated offers forum.
Put cloudflare infront of your service for some protection and lots of options/flexibility. Backup offsite. S3 is fine to start. Can get expensive. Look to back blaze B2, or c14 from scaleway.
Source: 20 years of hosting, many startups.
I'm currently using all 3 (for different companies), and they are all fairly the same at this point, but some shine on particular things (e.g. Azure generally has been easier to do user management in than AWS or GCP). They all have startup programs with credits which you should take advantage of.
Do you think you will hire someone at some point to take over managing this stuff? If so, you might want to look at the candidate pool you would hire out of and see if you can equally easily find someone across these.
Either way, it would be good to create a list of the top problems you are solving and test out trying to solve those in all 3. It will take a little extra time but you'll feel better about your choice from having tried it first in each place.
Cloud choices are also "stickier" than most people expect. Migrating a successful service is often much harder than the initial cloud build.
The Heroku -> AWS path is a pretty natural one to take. You could stay in Heroku, create an AWS account and start managing your DNS configuration with an IAC tool (e.g. terraform) in AWS. That then opens up a bunch of options later down the line, like S3 integrations, peering an AWS VPC with Heroku, wiring up various AWS managed services, CDN, cert issuance and so on, all using the same basic tech. You could keep your current workflow but a pretty smooth migration path available to move off Heroku and into AWS on your own time. If you need to. I don't "love" AWS, but I know most of the rough edges now and I think that's how a lot of people feel about it.
I think Heroku also has pretty strong GCP integration so that's also a natural option.
You could also avoid making a cloud choice now and just use any DNS provider with a decent API.
P.S: I think you could be successful with any of the services you listed, but would not recommend Linode, Hetzner, OVH etc due to the lack of managed service options. If you're using Heroku now, I predict you'll want managed service options in future. Apart from the services you listed, you might also be interested in fly.io (I'm not affiliated).