Scaling your product to meet demand....
(TLDR - It's ok to start small with a VPS)
This is a problem faced by every growing tech company. These days of course, there is a simple solution to this problem. Just stick it in the cloud!
Job done. Or is it?
Well, kind of. Assuming your software has been implemented with scale in mind:
Then you need to consider your production infrastructure:
These are just some of the questions that I am sure you have considered during your development. As someone who has worked on large enterprise systems, It's only natural to consider how well your software copes under heavy load.
So, let's do all of the above for our indie projects to ensure they scale when the customers come flooding in, right?
Some of you may disagree with me here. But, I'm gonna say no.
Doing all of the above takes lots of time to plan and implement. Further more, the cost, particularly on the infrastructure side, can ramp up VERY quickly.
I get it. You are worried that you or your product will look bad if it suddenly faulters under increasing load. You are worried that customers will turn away. Don't worry. You can even use this to your advantage. Tell visitors to your site that you cannot take on further customers due to popular demand.
So what am I proposing?
Simple really, go with a VPS and host everything on it.
Ok, I can hear some of you cringing at the thought of this. But some of the most successful products out there started life on a single server. There is no shame in this. Sure, if your product is a success, then you will need to look at upgrading your infrastructure/code. But if not, then you have just saved yourself lots of time/energy/money.
Successful founders of IH, please tell others what your production environment looked like on day one. I'm sure I can't be the only who thinks this.
Thank you for reading - I would be grateful if you could follow me on here and https://twitter.com/kinorouk - come say hi! :-)
For start go with some small VPS.
If you checkout Hetzner Cloud you will see that they have very affordable servers.
The best part is that their instances outperform AWS and GCP.
I am running over 50 instances with them and never had a single issue.
In some cases projects grow and they need a bigger instance. With Hetzner you can do 1-click upgrade and it'll take <20 seconds.
Exactly!
The world has gone crazy for horizontal scaling, but sometimes I'm left wondering if it's really necessary.
Scaling vertically was and is still a good way to go for most businesses.
Sometimes I feel these big corporations (amazon, google, ms) have brainwashed companies into thinking they NEED to be able to scale horizontally.
And now its filtered all the way down to small startups, who may take years to reach the point where vertical scaling no longer suites.
I recommend all startup to use Azure. You can do a ton with the free tier.
I would go even smaller than this. I learned php in 2017 and built an entire Project Management SaaS that 30+ companies currently use, and I am STILL hosting it on a SHARED HOSTING server on namecheap. I use Cpanel to administer things. I sometimes get bored and dont even FTP in to upload files, I just use the Cpanel file uploader.
I look at VPS options from namecheap every now and then just in case I grow even more soon, and get scared away by the actual server management everytime.
My users have uploaded thousands of files. Monday morning there are over 100+ simultaneous users on site at the same time, yet it still runs faster that 90% of websites on the internet. And thats on a $5 a month namecheap server. I used to run it on the $2 a month server, but upgraded to get one feature set I needed that was only on the $5 plan.
Thanks for your comment. This is really insightful and perfectly backs up the point I was making 🙂
If it helps just one other founder then I'll be happy!
Its hard to answer this question without knowing exactly -- what kind of demand are we talking about?
I'm a big believer in using dedicated servers. Even if you grow adding more dedicated servers is rather cheap. It's a solid approach that has been shown to scale. Every major site you used in 2010 would have been hosted on dedicated servers. They scaled and so can you.
Cloud Hosting is pretty much the most expensive option. The whole "I can get another instance in minutes" is rather moot when you can get another dedicated server in minutes.
The autoscale is also moot when you can have overpowered dedicated servers sitting idle during downtimes for cheaper than autoscaled cloud servers.
The whole treat your servers like cattle and not pets is rather moot too. With the provisioning tools we have today, it doesn't matter if you're provisioning a cloud instance or a dedicated server instance. Does the server have hardware failure? Get the dedicated server provider to fix it while you're using another server and then reprovision it when it comes back.
Want to use k8? Use k8 on dedicated servers.
I can't upvote this enough! :-)
Hey, if you need a VPS, you can take a look at https://serverspace.io/services/cloud-servers/. There's a flexible server calculator, you can create a server with any configuration from 512 MB RAM and 1 Core vCPU to 320 GB RAM and 64 Core vCPU. You can change the specification at any time as your project evolves.
Thanks for the great post!
My pleasure - just hope it helps some people :)