DigitalOcean vs Vultr vs UpCloud vs Linode Shootout: Part 2

DigitalOcean vs Vultr vs UpCloud vs Linode Shootout: Part 2

In Part 1 I looked at the single instance performance of DigitalOcean, Vultr, UpCloud and Linode.

In Part 2 I will take a look at the more subjective measures of what I'm looking for in a developer-focused cloud product.

Overall Features

My decision will be based on some intangibles and things that are important to me. My choice will be biased towards my preferences and whether I think I can be successful with a specific stack, as well as a little bit of guessing to predict my future needs, and future plans of the cloud provider.

Developer vs Techie

Too many people confuse the needs of developers from those of general tech-types. The developer is not just looking for hosting, they are looking for a platform to build on. The developer is not interested in hand-tuned configuration or heavy UI involvement.

The target market of hosting providers becomes clear when browsing their product offerings. You can infer a lot about a company and its strategy simply by watching what it works on.

I will lean heavily towards developer-centered offerings. Some providers focus more heavily on operations, sysadmins, and IT folks. I think there is good to be found in the balance between developer-centered and hardware/IT centered approaches.

Rating Scale

I will use the following three point scale for my ratings.

Points Rating Description
3 Excellent Best.
2 Good Satisfactory.
1 OK Needs Improvement.

Breadth of Features

The more tools a provider brings makes development and operations simpler, and should be reflected in a faster time-to-market and improved quality. These measures will contribute to my scoring, unfortunately the measures themselves are biased towards my needs. For example, Windows support does not affect my rating one way or another, because that feature is just not important to me.

Spec DigitalOcean Vultr UpCloud Linode
API Yes Yes Yes Yes
Terraform Provider Yes Yes Yes Yes
DDoS Protection No 10Gbps +$10 No Yes
Automated Backups Yes +$5 Yes +$5 Yes +$5 Yes +$5
Managed DB Yes No No No
Managed K8s Yes No No Yes
Block Storage Yes Yes Yes Yes
Object Storage Yes Yes Yes Limited Availability
Load Balancer Yes +$10 Yes +$10 No Yes +$10
Private Network / VPC Yes Yes Yes +$5 No

Feature Comparison Results

DigitalOcean Vultr UpCloud Linode
Rating Excellent Good OK Good

DigitalOcean is no surprise here, their product catalog is much larger than the others, and they have a much more mature developer offering, including managed databases which really will help keep data safe. Their only failing is a lack of any suitable DDoS protection, which is easily mitigated using a CDN/Edge proxy like Cloudflare.

Vultr is in the middle of the pack here. They lack a managed database offering, but do provide object storage, load balancing and private networks. For mid-size companies who need connectivity into existing environments, Vultr offers great options for direct connect, which is a differentiator.

I just had to ding UpCloud for a lack of load balancing. Sure we could setup our own software load balancer, but that just takes time and energy from other things. On the positives, I really do like UpCloud's laser focus on performance and high quality core infrastructure. I think the product feature fit for me is just not as good as the others.

Linode almost got an OK here but I upgraded to a Good because of their managed Kubernetes offering. I think they are (finally) coming around to becoming a place for developers, not just a VPS hosting provider. Their public roadmap includes several interesting offerings including private layer 2 networks (VLAN), and a Cloud Firewall.

Region Availability

At the time of writing, these are the available regions for the providers. I've grouped data centers within similar metropolitan areas.

Region City DigitalOcean Vultr UpCloud Linode
N. West 🇺🇸 Silicon Valley (SFO, SJO, FRE) ✅ ✅ ✅
N. America West 🇺🇸 Los Angeles, CA
N. America West 🇺🇸 Seattle, WA
N. America Central 🇺🇸 Chicago, IL
N. America Central 🇺🇸 Dallas, TX
N. America East 🇺🇸 New York (NY/NJ) ✅ ✅ ✅
N. America East 🇺🇸 Atlanta, GA
N. America East 🇺🇸 Miami, FL
N. America East 🇨🇦 Toronto, ON
Europe 🇫🇷 Paris, France
Europe 🇩🇪 Frankfurt, Germany
Europe 🇬🇧 London, UK
Europe 🇪🇸 Madrid, Spain
Europe 🇫🇮 Helsinki, Finland ✅ ✅
Europe 🇱🇺 Amsterdam, Netherlands ✅ ✅ ✅
Europe 🇮🇩 Warsaw, Poland
Asia Pacific 🇯🇵 Tokyo, Japan
Asia Pacific 🇰🇷 Seoul, South Korea
Asia Pacific 🇸🇬 Singapore
Asia Pacific 🇦🇺 Sydney, Australia
Asia Pacific 🇮🇳 Bangalore, India
Asia Pacific 🇮🇳 Mumbai, India

Global Availability Rating

DigitalOcean Vultr UpCloud Linode
Rating OK Excellent OK Good

Vultr is the clear leader when it comes to general global availability. They don't have perfect global coverage compared to large public clouds, but excellent US coverage which allows compute to be pushed closer to the edges. Or in my case, putting development machines closer to home.

You can tell DigitalOcean does not emphasize global availability, opting to focus on a few locations. Great if you live on the US coasts but basically anywhere else is not well covered.

UpCloud has better US coverage than DigitalOcean, but it is primarily an EU-focused offering. If there were more US locations or broad global coverage I'd increase the score.

I put Linode in the middle because it certainly doesn't have the breadth of options of Vultr, but it has good US coverage, and a footprint in all major regions.

Kubernetes Capability

An important part of my infrastructure strategy involves Kubernetes. I want my apps to be relatively portable across infrastructures, and I prefer the Kubernetes control plane over cloud providers for interacting with my environment.

Kubernetes Support Rating

DigitalOcean Vultr UpCloud Linode
Rating Excellent OK OK Good

I'm a little generous here to Vultr and UpCloud by saying OK. They do not provide any managed k8s offering, so I would be on my own in running Kubernetes. I'd probably use k3s or microk8s, or maybe try eks-d, but I'd be at a severe disadvantage having to self-manage this.

DigitalOcean has the more mature Kubernetes offering, I've been using it for a couple years now, and it has been flawless for my modest needs. Linode is the newcomer here that I will be taking for a test drive soon.

Both DigitalOcean and Linode offer block storage, load balancer, and DNS integration in their Kubernetes offerings. And both provide a free control plane, so I only have to pay for worker nodes. For EKS and GKE it's $75/mo per cluster, which destroys my shoestring budget right off the bat.

Standings

So where do we stand in the shootout? Here's a summary of results, mapped onto a simple 3 point scale.

DigitalOcean Vultr UpCloud Linode
Price-to-Performance Ratio 1.0 1.66 1.82 3
Feature Comparison 3 2 1 2
Region Availability 1 3 1 2
Kubernetes Support 3 1 1 2

Elimination Time

I don't have enough time to spend evaluating all four options completely. I've learned enough to know that Vultr and UpCloud just aren't ready for me and my development style yet.

I really have nothing but good things to say about their products though. The whole process of signing up to creating instances was everything that I would expect from a modern cloud. There were also other factors that I could have included in my analysis but they just weren't relevant to my needs.

The decisive issue was really that I'd have to run my own Kubernetes control plane. And that is just something I'm not prepared to take on, and Kubernetes is just too central to my flow to eliminate. Even keeping my own home lab k8s running is a challenge enough, there's no way I could take that to production.

There are no goodbyes, only see you laters. I hope the future brings even more developer tools to these clouds including Kubernetes support.

Next Steps: Infrastructure as Code

Next up I will be standing up a Kubernetes cluster in Linode with Terraform.

Show Comments