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.