Four months ago I had an idea for a one-click, read-only burner email service that could be used for application testing, privacy, anti-spam, etc, etc. The Beta service is live at Slippery Email and you can read more about the thought process behind it here.
Update 9th October 2014: An interesting wave of feedback to this blog post so far. On the DigitalOcean side I had a single, “thanks for sharing your experiences,” note. Friendly, perfect.
From GoDaddy, I’ve had a total of six emails so far including: a request to see my source code; a request to go directly into the server to look at my code (received at 11.20pm last night, when I was asleep); before I had a chance to respond, a further note that they’d gone in, accessed my code and modified my database, adding an index without my approval (received just before midnight, around 25 mins after the initial request which I hadn’t agreed to); a further, slightly grumpy email asking for a retraction of this blog post; and a final email retracting the request for a retraction. Exhausting!
Certainly comprehensive, but perhaps an odd way to provide unsolicited customer service.
In the interests of completeness, my GoDaddy service is now faster. With those improvements in place, a quick third-party benchmark – webpagetest.org – suggests that my GoDaddy service is now only 300% slower than the same site on DigitalOcean, for the same monthly cost… nice!
Again a disclaimer: not a scientific test, just a quick, independent benchmark that happens to square with my real-world experience.
Once I had a basic test site built I needed somewhere to host it. It needed to be cheap (while it was in early Beta) and I needed a service that would give me the ability to process all incoming mail via a server script in real-time, as opposed to periodically checking a POP/IMAP box.
Because of those restrictions I started out on GoDaddy, specifically on a “Deluxe Linux Hosting with cPanel” account at around $5 (£3) per month. The GoDaddy web interface worked well, the telephone support was great (I needed it once when the automatic software set the wrong MX details for my domain) and the overall setup was painless.
But the performance was terrible.
Static HTML pages worked fine, but as soon as even a lightweight MySQL request was made, server response times increased from around one second to around 15 seconds, making it completely unusable.
As a test, I set up a really lightweight PHP test script, involving just a couple of MySQL lookups and single row responses. I then pointed Pingdom at that test page. Here’s the response time graph over a typical week.
As you’ll see from the graph above, even with this simple, lightweight PHP/MySQL page, average server response times were 21 seconds. Even the best response time was an unacceptable 12 seconds, and almost half of the time the server exceeded the 30 second timeout so failed to record a result. That led to a reported downtime of more than 3 days out of the last 7… the very definition of useless.
I was keen to keep costs manageable, but I was also keen to dramatically improve performance for users, so I looked into other options. A friend recommended DigitalOcean who offer “droplets” – effectively complete VPS machines – from as little as $5 per month.
At the $5 a month level the server resources are quite modest – just 0.5GB RAM, a single-core processor and 20GB of storage – but it has all of the basics right: the storage is on SSDs and the network connectivity is blazingly fast. I bought a $5 droplet, ported over my code and database and switched the DNS. Here’s the performance graph on DigitalOcean:
Two things to note: zero downtime, and response times of just 367 ms – i.e. DigitalOcean is over 60x faster than GoDaddy for exactly the same monthly cost.
In short, there is no comparison. GoDaddy “deluxe” hosting is unusable for anything other than static HTML pages, and even for those it’s pretty poor. Yes, the control panel is nice and yes, the telephone support is amazingly good – knowledgeable, friendly, US-based tech support staff available on a local call rate from the UK – but all of that is irrelevant if the service is so slow it’s unusable.
In comparison, DigitalOcean has clearly invested in hardware and infrastructure rather than hands-on support services and is the better for it. The service is fast, rock-solid and is actually pretty easy to configure following the docs in their massive online knowledge base.
There may be some odd cases where a different budget hosting platform suits – for example MediaTemple offers an excellent $20/mo shared hosting plan that, while offering overall lower performance than a DigitalOcean droplet, does offer auto-scaling across their “grid” infrastructure which has helped me out in the past when dealing with unexpected traffic spikes. But for the most part, in most imaginable use cases, DigitalOcean wins.