We started Dienstenplanner.com in 2012. We had a single group of dentists using our tool, and lots of time to support both the development of the tool as well as the onboarding of our users. We decide to host our application on a VM that we managed ourselves. We resized a few times over the next years as load grew and other applications were added. We carefully fixed issues as we discovered them. Life was good.
However, running your own IT infra is not without challenges. I remember a weekend where we decided to move from Ubuntu 12.04 LTS to Ubuntu 14.04 LTS, and the VM failed to reboot after the upgrade. As about 10 SaaS applications and websites went down, we discovered that our VM provider had a support desk for these issues that was only reachable during business hours. We had a backup of the database and the applications, but it still took us the better part of the night to be online by the next morning.
These days we run all our workloads on Heroku. For running a single container at Heroku I’m paying the equivalent of a small VM that could probably handle half our application load. Our combined cost is over $500 annually and one can argue that we could run at a fraction of the cost ($30 on a small Hetzner VM) if we went back to a self-hosted solution. The question then is, why use a PaaS platform at such a premium vs rolling your own?
1. Operating our own infrastructure is not critical to our success as a business
We are not in the business of managing VMs and databases. And unless you are, your time is probably better used for sales and product development. In hindsight, every hour we spent nurturing our infrastructure in the early years is an hour we didn’t spend talking to customers, developing leads or implementing new functionality.
And when it comes to managing our databases, we now have automated backups and a provider that manages our PostgreSQL installation.
2. PaaS innovates for you
Another advantage of a service like Heroku is that the platform keeps improving even if you’re not working on it. e.g. Heroku introduced letsencrypt certificates around the end of 2016, which means we’re no longer paying for certificates and now have effortless, automated, SSL encryption across our entire site for free. Saves me another hour vs having to generate signing requests and buying a certificate online.
Yes, we could have used e.g. Caddy to automatically get certificates setup in a self-hosted situation. It would work great for a few years but then it becomes just another piece of the machinery that needs regular updates, security fixes, reinstallation on a new sever, etc. etc.
3. At our scale we don’t want to spend our sunday night recovering from downtime
The planner almost classifies as passive income today. Both I and my co-founder have full-time commitments outside of the planner. Our service provides contact details and rostering for urgent dental care. We are much better of with someone else making sure our website is available. The small amount of time we do invest in the planner is for user support and minor new feature development. And, with a product that has been stable for years the time taken by this in minimal.