A Drupal 7 site had been mutilated by a variety of unaffiliated developers until it included so many modules and bugs that it could barely run. The site was actually two sites, via the abysmal domain module. In a desperate move to stave off a plague of gateway errors the site was migrated to Pantheon, where it ran worse. I was brought in to help with the "un-funking" process.
“All software needs hardware to run; bad software doubly so.”
Running the site on my local machine revealed extraordinarily high CPU usage by php. I installed the site on a two core Digitalocean droplet to compare performance to Pantheon, and was surprised to find that the time for admin to login decreased from 13 to 8 seconds.
As Digitalocean does not provide the same services offered by Pantheon, I had to manually re-create some of the functionality, establishing a developer workflow, and automating backups and updates wherever possible.
This setup required four droplets:
- Primary LAMP server, 4-8 cores (resized depending on traffic)
- Sibling site LAMP server, 1 core
- Gitlab server, 2 cores
- Staging server, 2 cores
Total monthly cost: ~$130-$180
Pantheon monthly cost: $400
Performance increase: ~30%
In this case, the savings offered by switching were only enough to cover the cost of migration, and the value proposition had more to do with the raw CPU performance that this particular site required. In practice I found the Pantheon CPU performance to be noticeably sub-par, and it appears to suffer from the combined CPU consumption of other sites, as in a VPS configuration.
“Many have come to take the modularity of Drupal 7 for granted”
To be sure, the problem with this site was not Pantheon - the problem was that any well built Drupal site should use no more than a dozen non-core modules, and this one had over 200. But the situation is hardly unique, as many have come to take the modularity of Drupal 7 for granted, and found themselves with slow sites that just keep getting slower.
The lesson is that all software needs hardware to run; bad software doubly so. If you want to get the most performance for your dollar in a hosting solution, you need to know: Does this site need CPU? Or memory? Should you move the database to its own server? What about load balancing? Caching? Pantheon offered pretty much everything except what this site needed: raw processing power.
If we had a bit more of a budget I would recommend moving to a dedicated server from LiquidWeb, where I see you can currently get 4 cores at 4 ghz for $199/month (DO's Xeon processors are 2.0-2.4ghz at present). The site would run at practically twice the speed, if not faster.
“Bare metal gets me pretty excited.”
There are many improvements that I could make at DigitalOcean if the need arose. They have excellent tutorials on nearly everything, from How To Configure Varnish for Drupal with Apache on Debian and Ubuntu to a whole series on load balancing In this case however, the priority was to get the migration done quickly and sustainably.
In another post I will go through the exact steps showing how easy all this was to set up.