Why I Don’t Use Managed Service Providers Like Heroku or Firebase for My Personal Projects.
As a budding web developer and software engineer one of the most rewarding things you can do is have your app live on the internet. Services like Heroku and Netlify help make the process of deploying apps easy and mostly maintenance free once they are live. However it can pretty expensive when you want to start to get certain functionality out of these apps. In this article I will tell you why I chose to use a VPS and deploy my apps through there. Then I will lead you into my next article which details the steps to get started with experimenting yourself. This will be more how-to in nature and will layout the steps and commands you will need to run, to be your own service provider using a Linux Virtual Private Server (VPS).
As a disclaimer none of my apps are business essential, they are my personal pet projects. If I was going to deploy production ready code for business purposes there would be a lot more considerations to account for than just price and control. Please don’t take this article as a reason to move your business apps from a managed service provider that provides many other benefits besides just easy deployments. With that said, being in charge of your own server is an empowering and fun way to learn some great skills around linux and the CLI. Its a great way to learn to about Linux administration and to start learning the basics of how services like Heroku work.
The main benefit I get of a VPS over Heroku on my projects is that I can have zero downtime deploys with Apache and Passenger. There is also no sleeping on your VPS so your app doesn’t take 30 seconds to spin up if it hasn’t been used in a while. For these features with Heroku you’re already paying well over $20 bucks a month and that’s just for one of your apps. Imagine if you had 10, 15 or 100. When you control the server, you can bring up another instance of your web app behind Apache or through another server, then when you’re ready you can cut that traffic on the existing instance and move it over and use a load balancer.
Another benefit and one of my personal favorites is that you can run multiple apps using completely different stacks under one domains using reverse proxies. A great use case for this is when you have portfolio site and you want to display all your apps under your personal domain. For example if you want to host 3 apps one using Rails, another Using Express and another Using Django. You can have them all running and accessible under yourdomain.com/app1, yourdomain.com/app2 and yourdomain.com/app3.
You can also host multiple apps and give them all their very own domain name, using virtual hosts. Even more wild is the fact that you can do a combination of the two. The opportunities are truly endless when you are in charge of the server.
Hopefully I’ve convinced you that not all projects need to be deployed through a managed service provider. In my next article I will detail the steps that you can take to set up your own cheap VPS. Install all the software required for the apps you want to deploy and how to do a reverse proxy so that you can host these apps all under one domain name. Then fire up your server of choice and get all your apps live on the internet.
If you’re interested in learning more check out part 2 of this series