One of the most common things you’ll see as a web developer, especially in the WordPress space, is a variation of this statement:
Don’t pay $X/month on hosting when you could pay $5/month for a small server with Y and run WordPress yourself.
There’s also a serverless variation of this statement, which sounds like this:
Don’t pay a fortune for Lambda when you could get a server cheaper with Y or even EC2.
Now, sometimes you’re forced to think that way because of your clients or boss. They don’t feel that paying $30/month for hosting is worth it. Or they hear you can just pay $5/month for a server and want you to do that.
This is really a bad idea. And it’s something I’ve written about before. You should push back on that as much as you can.
That said, this isn’t the conversation I want to have today. The one I want to have is with people who genuinely believe that it’s better you become an amateur system administrator than to pay someone else to do it. The reality is the cost calculation around that is completely flawed and out of touch with reality.
I am a sysadmin
First, it’s worth pointing out that I’m writing this article more as Carl, the sysadmin, than Carl, creator of Ymir. I’ve been managing servers (both Windows and Linux) in some capacity for over 20 years. (Coming close to 2/3 of my life.) Most of my consulting work includes sysadmin work or is only sysadmin work.
I love being a sysadmin. I’ve written about sysadmin topics, given talks, built an open source project. Even Ymir, as a product, is something sysadmin related.
There’s also never been a better time to become a sysadmin. For a lot of topics, there are tons of resources available. You’re not stuck searching through newsgroups for answers (although there’s still a decent amount of that lol) if there are even any.
Why learn sysadmin?
So before I go ahead and talk about why you shouldn’t be a sysadmin. Let’s talk about why people like it. The common reasons are:
- You can install what you want
- You get full access to the server
- You can tune it to have amazing performance with very little resource usage
All these reasons revolve around one concept: agency. Most developers who manage their servers love it because it gives them agency over how their code will run and perform. You don’t feel at the mercy of your hosting provider.
If there’s a problem, you can go in and fix it. And that’s a powerful and intoxicating feeling. Especially when you start being good at it!
And that’s often where these comments about managing your server come from. They come from someone who learned and saw how powerful it is. They just want you to feel that power as well! It’s a comment that comes from this good intention.
The true costs of managing your servers
The problem with this good intention is that it completely ignores one important thing: your time. It takes time to learn sysadmin, but it also takes time to manage servers. And we, as developers, are awful at valuing our time. I especially love this xkcd comic on it:
So how much is your time worth? Now, think about how much money you’re saving not paying a host each month. Are you spending more of your time than the money you’re saving each month?
Now, let’s push this further. Imagine it’s been four years and you have to do a server upgrade. You’ve been paying $5/month for a server instead of $30/month with a WordPress host. You’re saving $25/month managing that server. This means you saved $1,200. ($25x12x4)
How much would you charge for that server upgrade? I can tell you I’d charge more than $1,200. Server upgrades aren’t things you do casually. Things often break because a lot of services on your server will change. You need to (or should!) test with another server beforehand or be ready for potential downtime as you repair things.
This is just one example. The point is that there are a lot of variable costs related to your time with servers. You shouldn’t ignore them. This is something my friend Brian talks a lot in his book.
Things will go wrong
Now, the above scenario isn’t that realistic either. The reality is that it’s unlikely that you’ll set up a server and not touch it for four years. When you’re the sysadmin, you’re the one responsible when things go wrong.
And things will go wrong. It’s inevitable. Especially if you’re just starting to learn to be a sysadmin. But it still happens to me because there’s always a new curve ball I might not have planned for or didn’t know about.
This will eat up into the time and money you’re saving. It’ll also add stress to your life when it happens. Because server problems always happen at the wrong time! That said, there’s also never a great time to answer a call from your client or boss because something is going wrong with their WordPress site.
No one discusses the fact that you’ll be on call when they suggest you become a sysadmin. But it’s an important part of the job. And it’s usually not what people sign up for when they decide to do it.
You should use a server management tool
Ok, let’s say I haven’t convinced you to put away your sysadmin dreams! You want to learn it even if you end up losing money in the end. I’d suggest you look at server management tools.
Server management tools like Gridpane and SpinupWP help you configure servers with a solid foundation. You still have the agency to go tinker with things, but at least they help prevent you from making some common new sysadmin mistakes. The only issue is that they’re not free. So if you’re really looking to cut costs, they don’t help with that.
In the free category, there’s Sail which has a free tier, but only supports DigitalOcean. It’s also a command-line tool which isn’t something everyone is comfortable with. That said, you should get comfortable with command-line if you want to become a sysadmin!
Ymir itself is more akin to Sail except it’s for serverless infrastructure. (It also doesn’t have a free tier!) The idea with serverless WordPress infrastructure is to remove even more of the stressful responsibility around servers that I mentioned. You can read more about it here.
Don’t become a sysadmin to save money
Some people buy cars so they can work on them. They love being a hobbyist mechanic. But you rarely hear someone say, “You’re paying too much for your car repairs! Buy the part, watch a YouTube video, and change it yourself.”
I feel the same applies to being a sysadmin. If you feel like learning about servers, then please do it! Like others (including myself) have said, you’ll love the feeling of agency it gives you.
However, being your own sysadmin to save money is an illusion. The reality is you’re going to end up on the losing side of that proposition. So, if that’s your reason to learn to be sysadmin, I’d say you’re better off paying a WordPress host instead.