Yesterday on HN I saw a discussion on “how do you manage infrastructure as a solo founder?”. The question is about how to ensure that you have maximum uptime and ensure that issues are quickly resolved.
This is a good question, as a solo founder you want to spend your time building new value, not fighting fires. Because of this, managed offerings are almost always the right move. They are more expensive, but the sanity benefits you’ll gain are well worth the cost.
What are some good options?
There are usually several pieces to your application, so you ideally won’t have them all living on one machine. This is because you want to minimize your risk, should one piece go down, the whole tower doesn’t need to fall.
Main application – use a PaaS
There are many good options out there, but for your main application it will make the most sense to use a platform-as-a-service (PaaS) offering.
Heroku is a very popular PaaS which can be fairly inexpensive to get started with. When I don’t want to manage the infrastructure, this is what I usually use. It will build your application and manage everything for you. It can also host your databases and it can manage integrations with a bunch of other tools.
If there is one piece of the application stack that you need to have hosted, it is your database. Losing all of your production data would be a business killer. There is no point in taking that risk just to save a little bit of money.
All of the cloud providers have a Database-as-a-Service offering, and they are all perfectly acceptable. If you use Heroku, you can have a managed database from there. If you are opting to self-manage a server on DigitalOcean, they now have a managed database offering which starts pretty cheap.
Marketing sites (e.g. homepage, blog, etc.) – go static
If you never want to have an outage on your marketing sites, the easiest and best option is to go static. You can use a static site generator, edit html directly, or use WordPress and generate static files from there.
However you go about generating your static site, you will never have to worry about your site going down. Use Netlify or GitHub Pages (personally I would go with Netlify) and you will have great hosting without even thinking. Just store the static files in a git repo and either option will automatically update your site when the files update.
Other services that will make your life easier like monitoring, metrics, logging, error reporting, messaging, etc. are all best left to hosted solutions if you are going to rely on them. If you are a solo founder, managing all of these separate tools would be challenging and possibly time poorly spent.
But what if I do want to self-manage my services to save costs?
If you are already a DevOps expert, you should be capable of the task. Though if you are a DevOps expert, you probably know all the pain and suffering you would encounter and might still opt for managed solutions.
But for those who still want to go self-managed, I will cover the easiest path to get there in the next post.