Things change rapidly in the WordPress world. The content in this post is more than a year old and may no longer represent best practices.
Stefan Didak gave a dizzying high-speed presentation explaining the secrets behind managed hosting and really fast WordPress sites, starting with an overview of the way caching works in WordPress and continuing on to cover
- OpCode Caching
- Apache vs. Nginx
- Varnish
- Memcached.
Note that these tools only work if you are managing your own server.
Greg Turner says
Thanks for the slides Stefan. Sorry I missed your presentation. I do take issue with your comment in slide #14 – the part about fraction of the cost. I dare say that if you take your hourly rate that you would charge someone for putting together a server for them and then managing it for them and then charge yourself that money for putting together and managing your own server, it’s going to be a significant amount of $$. In other words, I think it is a fallacy when people say, you can save a lot of money when you do it yourself. Hope you understand my point.
Stefan Didak says
Hi Greg! I definitely understand your point but let me address a few things since it seems there’s a few assumptions in there that might not be entirely correct. 🙂
If you have to hire someone to put together a server and manage it then it’s very likely you end up with a MUCH higher cost. But that wasn’t the point. The point was that (almost) everyone can learn to do it themselves, avoiding the cost. What you then still end up with is the time it takes and that cost factor differs from one person to the next depending on their experience and comfort level. There is always time involved in doing things, learning new things (how much does it cost someone to learn how to develop software, a new language, or anything else new?).
In my case it takes me less than 5-10 minutes a month to maintain a whole range of VM’s I’ve got running up “in the cloud” like this. Pure math says that with my hourly of $125, the actual time/money factor I incur is $10-20. But that’s not for one server but several. So most definitely, I find that running everything myself is more effective and at a fraction of the cost of managed hosting, especially if you consider managed hosting is per site, not per server. Managed hosting (which wouldn’t work for me anyway) would cost me at least $1000 a month for the various sites, dev sites, test deployments, etc.
Of course anyone who just starts out taking a path like this will spend time learning things, failing at things, and learning even more from messing things up in the beginning. There’s a definite cost factor involved in that. But for professional developers all this really isn’t much maintenance baggage. I don’t even spend more than 5 minutes to deploy another VM based on my preferred deployment configuration. I just clone the VM and change a configuration file which is read by a few of my custom scripts and within minutes I have another server running (some people might prefer to use things like Puppet, etc. for such automation tasks, though).
Managing and maintaining these things I have automated for a large part (there’s some more info on that on http://www.stefandidak.com/2013/07/wordpress-ignytion-ddt-and-the-home-office-aka-the-ignyter-network/) for both all the local and recently also the remote servers. Everything from monitoring the servers, upgrading, deploying, changing configuration details, etc. is done through a local portal I built (on top of WordPress even) that runs off a local server in my network. Which is part of the reason why I don’t have to spend a lot of time doing the “traditional” (and highly inefficient) maintenance tasks via only an SSH shell connection. All of which is not really all that difficult for software developers to do, especially once you have gotten over the little humps in the learning curve associated with these things (or any other things for that matter).
I never kept track of the time it took me to learn all this but it has only taken me the past year (since before that I didn’t do things like all this “web-stuff” and PHP, WordPress, Linux servers, etc.) because I didn’t get into any of this in a serious fashion until last year. I’m sure if I had kept track of the time the cost/time factor would show a large number. But then again, anything one learns takes some time, some learn faster than others, etc. but I think that on the overall my scalability, performance, etc. of running my own servers has already started to save me a lot of time and allows me to do things that are a key requirement for the new business I’m building over the next year (which does not involve selling hosting services, btw).
The upfront “investment” is definitely worth it and some people might go about it in a different way than I did. But I also believe running your own servers and really understanding things from both bottom-up and top-down are key requirements for serious WordPress developers who are pushing the limits of WordPress and need every ounce of performance they can get out of it. Without this route of cheap and efficient servers it would be impossible to learn and develop and test plugin level support for the various caching options offered by WordPress. And those, depending on what type of object caching you throw in there only take things so far. Implementing highly optimized plugins that perform their own specialized caching (be it through using APC or Memcached, etc.) only works if one is willing to spend some time and money on it. In the end, though, what you end up with and have learned will make you efficient enough to do this self-hosted-server stuff without really ending up having to spend a lot of money on others or a lot of time on your own end.
I think the real question should be; how much does it cost in both time and money to learn new things and really dig into all aspects and excel at what one does. I never even though of the cost of hosting my servers as a cost of hosting per-se but rather more so as a cost that for the most part is associated with learning, understanding, testing, and at the same time building a highly optimized development environment. It depends on the numbers and the individuals but my rough estimate is that I may have spent anywhere from $20K to $35K in “my time” but in the coming years it will save me at least $100K annually. That’s what I call a good investment and lowering the cost to a fraction of what it otherwise would have. 🙂