I'm breaking up with DigitalOcean
Tags: cloud, support, digitalocean
Published: 2022-03-03 17:47:16

I have used DigitalOcean as my primary cloud provider for the past seven years. Part of that decision was ideological: I don't want to support Amazon because of its abhorrent exploitative practices, nor Microsoft because of its contracts with ICE. Part was economical: Google Cloud, also not the nicest company but with a greener datacenter footprint, is simply far more expensive. And part was pure laziness: DigitalOcean is just really easy to use compared to other, more complex cloud offerings, and has suited my needs as a freelance web developer. Frankly, I was a big fan. Until now.

About a year ago — right around the time they started offering MySQL — I switched from using a third-party database hosting platform to DigitalOcean's managed database service. I set myself up a small cluster in just a few minutes, migrated over my databases, and ever since then, I haven't really had any complaints about its performance. But then yesterday at around 4PM ET, the roughly dozen websites on my droplets (DigitalOcean's cutesy name for VMs) lost database connectivity. I could still connect to the database directly from my local machine and if I SSHed into the droplets. But for some inexplicable reason, none of my websites could reach them. 

I immediately opened a trouble ticket, linking to different sites erroring on different droplets and selecting "Something is broken," which supposedly escalates the issue for faster triage. Then I waited for a response. And waited. And waited. 

Three hours later, I received:

> Hi there,
> Thanks for the follow-up
> I  understand you are having some connection issues between your site and the managed database
> In other to better assist here, please can you share with us the screenshot of the error message you are seeing and the time of the connection error

Three hours waiting only to be asked, "Can you send screenshots of the erroring websites to which you provided links I could have just clicked?"

I patiently responded with the requested error messages. And waited again. And waited. Another three hours passed. Then my patience wore thin and I fired off another email, expressing my annoyance. Thirty minutes after that, I finally received a reply from someone on the database team. They told me that beyond a handful of CPU spikes, nothing looked particularly out of the ordinary, and suggested I temporarily disable the IP access restrictions on my database — to no avail.

I decided to go ahead and clone my database cluster and swap it in place of the other to see if the problem would persist. And it did. When I explained to the agent that I am able to connect to the new and old clusters locally and from the droplets, but still my sites would not connect, they declared that there is nothing wrong with the database cluster and passed me off to droplet support.

> Hi there,
> Thanks for the additional information.
> As you are able to connect the managed database cluster, this implies there is no issue with the cluster. 
> For further investigation, I have forwarded this to our droplet team for further review.

An hour later (now eight hours of downtime), droplet support reached out with a boilerplate message about WordPress database connectivity, RAM usage, and tuning locally installed MySQL databases. Because that's just what I need for my managed MySQL database service — to tune the non-existent MySQL server on my droplet! 

At this point, it's 12AM ET and I've had enough. I responded simply:

> oh my god read a ticket before you respond for the love of god

And you know what this joker did? They sent me back almost the same exact boilerplate message about tuning a local MySQL database installation. 

It took *17 hours* for the database connectivity issue to *self-correct*. It just randomly started working again on its own. DigitalOcean had no follow-up, no explanation, no nothing. My best guess is something happened with the CA certificate (DO's managed databases require SSL even if you're connecting internally via VPC to a server open to only your IP, but okay) but I wouldn't even know how to begin to debug that and shouldn't have to! That's why I paid for managed database services! Because, as DigitalOcean claims, it's supposed to be "Worry free!"

Well, you should worry. Because if your DigitalOcean "managed" database cluster suddenly becomes unreachable by your web applications, you're apparently on your own, SLAs and customer loyalty be damned. Thus, after seven years of paying a not-insignificant sum of money to DigitalOcean, I examined their competitors, selected one, and have started migrating my clients' websites away from their platform.

Look, I have a lot of empathy for tech workers and I know from my own past experience that working in technical support can be unpleasant when dealing with frustrated customers. And I know that the burden on tech support agents has increased because fewer people want to work in such an underpaid and undervalued role and therefore their workload has grown in some cases to an unmanageable degree. But I can't allow my clients' websites to be down for 17 hours because your company isn't adequately staffed and your workers are too busy to read a ticket beyond scanning for keywords let alone to provide an answer that isn't cut-and-pasted from a knowledge base. I can't afford to spend literally thousands of dollars a year only to have to troubleshoot by myself the issues I thought I was paying your company to solve. 

It's time to get your shit together, DigitalOcean. Only then can we rekindle what was once a great love.