VPS vs Hyperscalers

There is a lot of HYPE around hyperscaler platforms. I remember a time (yes I'm old), when people jumped on AWS because you had so much ability for "scale". The tech influencer genre wasn't in its heyday yet but you would see this kind of advice thrown around on Redit or HackerNews. Fast forward to today, with the "day in the life", and "launch your startup in 24hrs" kind of content people don't even recommend AWS anymore. They recommend other platforms that run on the "EDGE" and other buzzwords. So you see videos promoting these products that have "generous" free tiers and it "won't cost you anything until you are making so much money that you can pay someone to..." basically fix your mistakes.

However, I'm not a fan of this advice in general. The reason I'm not a fan of this advice is that it is given without nuance. Don't get me wrong, I plan to use some of these hyperscaler products in the very near future. But I feel so bad for all the people I see on HackerNews or X that say "I just got a $XXXXX bill from...INSERT NAME HERE". Back in the day, you saw this about AWS. Now the problem is even worse because these new platforms are build ON AWS and they need to pass the price (plus their new cut) on top. It is SOOO easy for a newbie to slap up their own blog with random assets that eventually give them an OUTRAGEOUS bill because they didn't architect their site in a way to prevent bad actors from running up their costs. Often, because they simply didn't know better.

Choose your hard

One solution I've considered is not recommending these hypersalers to newbie devs. I recommend a $5 linode or digital ocean droplet. Granted, you can get into trouble here as well, but you can link a newbie to the really good articles on Digital Ocean or Linode's site about how to secure their server, how to put Cloudflare in front of their domain to prevent ddos, and how to set up your UFW rules and protect them from most problems. Also, just by the fact that these VPS services charge by the TERABYTES of transfer and not gigabytes, it is much more difficult to find yourself in one of these terrible situations where you owe thousands of dollars to these companies. I did a quick Google search for an issue like this on Linode and didn't see a single post. Maybe it has happened, but anecdotally I've never heard of it happening.

Why don't we recommend VPS more in this space? Why is it always the "one click" deployment that we recommend? Well, because hosting is hard. Setting up CI/CD can be hard. There are a lot of things to know. How to set up firewall rules, how to protect yourself from ddos, ssh access to your server, ssl certificates, Jenkins (oof), etc etc. These hurdles make you not want to recommend this solution because it is hard. It is hard. That is not really debateable. You CAN debate whether this hard is better or worse than the hard you experience with a hyperscaler platform.

Because it is is easy to set up, we discount the very real amount of knowledge you SHOULD have when using these products.

If you want to use a hyperscaler, GREAT! But you should know that ddos is a thing and what it could mean for your site. You should know that you may or may not want to use a service, depending on if they offer a way to set up alerts or even turn off the service if a dollar limit is reached. Most people are hosting their side hustles on these services. Do you really want to spend even $500 on a project that is generating $0 revenue, or that was just a "see if it works" project?

I know that a lot of people use these products to build fast, or try something so they understand the tech and can plug it at work where they want to use it. That is great! But don't forget the junior devs that are hanging on your every word and who possibly don't understand when you should, or shouldn't use these products. Maybe spend two minutes explaining some of the why or why nots. Even if you believe they ALWAYS should use a hyperscaler platform you should take second and help the newbie understand how to keep themselves out of trouble. We need a signpost before the cliff and guardrails, not a "skill issue" comment after the fact.

What do you actually need?

This a question I think we need to teach people to think about. What is the potential scale of the product you are trying to make? Not everyone needs to scale a unicorn. Maybe you just want to sell products from local artists in your area. What is you scale? These artists aren't going to produce hundreds of thousands of pieces of art for you to sell. Maybe you are creating a site to be used by your local kids sports teams to organize events in your state. Do you need scale for 100,000 simultaneous requests? Will you EVER need that? Probably not.

Potential reasons to use a hyperscaler:

  • You need global availability
  • You need zero downtime deployments
  • You have a product that will increase in revenue in proportion to the scale that your service may achieve

Potential reasons to use a VPS:

  • You don't need global availability
  • You have a limited user base
  • Keeping costs as cheap as possible is a firm requirement

CI/CD

You may be yelling "but CI/CD though!" Yeah, I feel you on this one. However, this still has nuance. Are you managing one site? Half a dozen? You can probably just ssh in and redeploy it manually in 5mins. No kubernetes cluster required. HOT TAKE: Not everything needs zero downtime. Depending on your stack you might decide that learning Jenkins or Deployer is warranted and the time saved is meaningful. Guess what? You now have a shiny new tool in your toolbelt. :)

Conclusion

So, should you hyperscale? The answer, of course, is "it depends."

Published: Sun Mar 24 2024