Why We're Running PHP 5.6 [in 2018]
2024 Update: Welcome! We're not running PHP 5.6 at WonderProxy anymore, but keep reading to get our take on running "old" versions of things.
Every few months (or weeks), someone throws out a tweet deriding people not running PHP 7.2 (or MongoDB 3.6, MySQL 5.7, or whatever.newest). As someone who has actively made the decision to not upgrade yet, I thought it would be worth providing some context for those decisions.
WonderProxy is a business; we do things to make money.
I’ve yet to find a software package that adds 3% on top of all of our sales, so when looking at investing engineering time in an upgrade I ask myself: How will this either help us make money or avoid losing money? The answer could be “this gets us features that will make the development we’re doing faster”, great, easy to schedule. Or it could be “this gets us a security fix” – also easy to schedule. Most often, the answer is “It doesn’t actually”, so that upgrade is welcome to live in our backlog for a while.
Performance upgrades aren’t an instant sales boost.
Yes, faster loading websites convert better, but our website isn’t just one thing: it’s a stack of technologies (Bind, Apache, PHP, MySQL, MongoDB, our Virtualizer, etc.). Upgrading one piece may not have any effect on the end user because the piece that was upgraded wasn’t the bottleneck. If we do want to improve page load, it may be that there’s much lower hanging fruit than upgrading and testing multiple websites for a back end version bump.
Upgrading isn’t as simple as apt-get install <package>
We have multiple websites we’ll need to examine, test, and manage any backwards compatibility breaks. Plus there’s the underlying libraries – will the version of PHPLIB + mongodb we’re using work on the new version? What about the driver? Will upgrading the driver mean we need to upgrade our client class? What backwards compatibility breaks are there? This is manageable work, but a non-trivial amount of it.
Fundamentally the thing we sell isn't PHP, or MySQL, or MongoDB.
We sell access to Squid proxies. The vast majority of our clients don't even go to our website on a regular basis. If we were a hosting provider, there would be different motivations in play (which, ultimately, would come back to making money), but that's not what we're doing.
Will we upgrade?
Absolutely… when it makes business sense to make that switch. We've got the first few steps of the roadmap laid out: definining new puppet recipes based on PHP7 and building VMs to host them. Until then, we're concentrating on the things that are right for our business.