The PivotNine Blog

DigitalOcean Adds Load Balancers

21 February 2017
Justin Warren

DigitalOcean has added another feature to its cloud-hosting offerings: load balancers.
Supporting HTTP, HTTPS, and bare TCP streams at launch, the load balancer option makes it even easier for developers to build quick, scaleable applications.

Trying Them Out

I recently moved some of my own systems into DigitalOcean, coming from Rackspace. I pay for these services myself at full commercial rates, motivated partly by curiosity and partly by cost: DigitalOcean is much, much cheaper than Rackspace.

Part of the reason for the difference in price is that I don't have nearly the same set of services as I did on Rackspace. Automatic backups are once a week, not once per day. There doesn't appear to be a way to schedule automatic snapshots, and there's no free monitoring of service state. I do get a VM with double the SSD, meaning I don't need to add block storage, but for a lot of the other tasks you're left pretty much on your own.

It is possible to set up automated snapshots (or trigger backups) using the DigitalOcean API, which I've done, and it was pretty easy, given the prerequisite that you need to be able to write simple scripts. This fits well with DigitalOcean's mantra of being “Cloud computing designed for developers.” There's just no GUI option in the interface that I've found.

The DigitalOcean documentation is top-notch.

Simple Load Balancers

The interface for adding load balancers is as simple and straightforward as all the other elements of the DigitalOcean service.

I've already been using the “floating IP” service, which is a kind of load balancing, but it's not at all smart. I suspect it's just a round-robin DNS entry in the back-end, which is perfectly fine for a lot of use-cases. You'll want a more featured load balancer when you want to do something more sophisticated, such as session state affinity.

You can configure a load balancer to be a simple round-robin, single-port type, but that's not really much better than having a simple floating IP (though floating IPs are IPv4 only, no IPv6 alas). You do get some additional monitoring of the service state for the load balancer, but I'm not sure that's worth an extra $20 a month. You probably want to be using sticky sessions (cookie based is the only type supported) or the “least connections” load balancing algorithm at the very least to get your money's worth.

But ultimately, why would you use this over the more featured offerings available from Azure, AWS, Google or even Rackspace?

For a start, DigitalOcean is far less intimidating to being with than AWS or even Rackspace. The relative lack of options is quite freeing. You don't get that “I think I want cereal, but which of these 8 million types and variants do I want? What if I make the wrong choice? Oh god!” feeling.

If you're a developer who's just trying to get something done and doesn't want to set up a bunch of scaffolding first, that's pretty appealing.

Developers Hate Infrastructure

DigitalOcean is aimed squarely at developers, and developers hate infrastructure. I've been spending a lot of time in developer-land over the past couple of years and it's surprised me how much developers don't want to deal with infrastructure. Despite all the hype about DevOps, there are two distinct factions: developers and infrastructure people.

The load balancers, and everything else at DigitalOcean, is designed to look like application constructs for the most part. There's a certain amount of infrastructury-ness that can't be escaped, but unlike, say AWS, DigitalOcean really tries to hide it all. That's why you end up with something that doesn't have as many nerd knobs to twiddle, but it gets the job done for what a lot of developers want.

If you find yourself hitting the edge of what the DigitalOcean load balancers can do, you could always spin up a few new Droplets (or containers on those Droplets) and run nginx yourself. But if you're just testing a bunch of things to see what you can get working for your Minimum Viable Product, the low complexity, low-cost options from DigitalOcean can look appealing. Adding in load balancers, and block storage not so long ago, means people can leave their apps running on DigitalOcean a lot longer into the production phase before they start hitting limits of the platform.

The lines blur when you start getting into more serious scale and need more features because of the specific corner cases of your apps. Again, you could start doing it yourself in your application, which developers like because they get to stay in control of what's going on. If there's a business riding on this, then you might need some specialized Site Reliability Engineering folk to look more closely at what the devs have been cobbling together to see what scary messes need refactoring.

I expect to see DigitalOcean expand its portfolio of features to match the needs of the developers who are pushing the boundaries of the platform and want to stay.

This post was updated to clarify that weekly automatic backups are available. I originally said that “periodic snapshots aren't automatic” which isn't accurate. I was trying to compare what I had set up at Rackspace with what I have now on DigitalOcean. Thanks to @jonleibowitz for drawing this to my attention.

This article first appeared in Forbes.com here.