Contabo vs. DigitalOcean | Which to choose? | Honest Review

I did some research and testing around the performance of servers on both of these service providers. The reason for this article is the huge price gap between them and the fact that I wanted to know what you actually get for your money. Below are all my findings, thoughts, and benchmark tests for comparison thrown on “paper”.


We have been running DigitalOcean (DO) servers for quite some time, love the service and the whole brand. But then I heard of the Contabo server provider with their extremely cheap VPS options. We’re talking 5€/month for an 8gb 4 CPU server, WTF.

At spaceinvoices.com we went on the mission of putting all our infrastructure on Kubernetes to ensure good throughput and reliability for our growing customer base and to achieve zero downtime and the goal of a stable system that could support up to 25 million requests per month. But the paradigm with Kubernetes, to my understanding, is to have a larger amount of smaller-ish servers to distribute the potential for failure to a fraction and ensure a theoretical zero failure rate. This comes with a price at doing as anything usable in based on minimum node requirements comes at 15€ to 20€ / month compared to Contabo 5€ / month.

I was skeptical at first since the difference seems insane so I conducted some testing on both platforms, firstly some benchmark tests and secondly some actual field tests with Kubernetes clusters.

Benchmarks

I used sysbench to test CPU, RAM, IO, and Network.
In both cases the servers had Ubuntu 16.04 installed.
These are just the main points, full statistics at the end.

Contabo 8GB VPS (5€ / month):

CPU: events per second: 755.75

RAM:
- Total operations: 31599064 (3158787.42 per second)
- 30858.46 MiB transferred (3084.75 MiB/sec)

IO:
- reads/s: 0.00
- writes/s: 5908.41
- fsyncs/s: 7560.71

Network:
Download: 199.45 Mbit/s
Upload: 190.97 Mbit/s

DigitalOcean 4GB VPS (20€ / month)

CPU: events per second: 971.69

RAM:
Total operations: 33387969 (3338092.40 per second)
32605.44 MiB transferred (3259.86 MiB/sec)

IO:
- reads/s: 0.00
- writes/s: 5104.53
- fsyncs/s: 6524.46

Network:
Hosted by fdcservers.net (Frankfurt) [0.53 km]: 1.545 ms
Download: 1605.30 Mbit/s
Upload: 1970.01 Mbit/s

Comparing both it’s clear at many points DO wins if you take into consideration the halved server spec compared to Contabo, but surprisingly Contabo still does well even tho the spec is oversold. Especially surprising is the disk speed since this is the point I was expecting them to lose on.

Kubernetes cluster testing

The basic setup on DO is much simpler, one-click with preinstalled correct drivers, OS, Docker, etc. making the process super simple and fast to test and play with, it’s a good point to start at when figuring out the system. Everything just works out of the box.

Trying with Contabo was a bit more painful in the beginning, some failed clusters and not clear problems until I figured out the exact formula for which Linux to use and what version, some system tweaks to do, and so on. At one point I was even doubting if Rancher, that we are using to orchestrate Kubernetes, was even production-ready due to all the problems. Conclusion, it is :)




Pros and Cons

Contabo

Their whole system is very legacy, just look at the website :D
The server setup costs around 4€ to get started on top of the base price.
The minimum order is one month, so not much flexibility in quick deploy and shutdown.
The server is usually set up in between 10 minutes and up to two hours.
As seen on the benchmarks the network is very capped but in our case, with a lot of servers the total sum comes out ok. The is no upgrade option for just the network, you have to go for the whole VPS tier upgrade.

On the positive side price is low so no problem keeping servers for a longer period.
They also have an ok dashboard in terms of self-management like system reinstall, backups, snapshots, etc, and some standard Linux distros and version options.

Digitalocean

Amazing interface,
Simple API and CLI tool, many one-click apps, and services to choose from.
Fast spin-up times and charged by the minute.
Works out of the box with Rancher and Kubernetes.

Unfortunately, a tad too expensive compared to what else is on the market and if you have some time to devote to DevOps, not everyone does or wants to for that matter.

My conclusion?

The thing I ended up doing is setting up the base server setup using Contabo cheap servers and a lot of them to mitigate any potential problems on their end, note that for now no strange behavior was detected. Secondly, I added DO to the mix as a quick backup solution if something goes wrong and there aren’t two hours to spare waiting for Contabo to spin up the server for you.
I also wrote some shell scripts to kind of mimic the DO setup of Contabo servers to the cluster but still, some manual work is involved including their setup delay.

Feel free to chime in with your experience, I’d like to know if there’s any other good VPS providers out there and if anyone has done a calculation of price-performance for AWS services running Kubernetes?

Full benchmark

Contabo

CPU:
- events per second: 755.75

General statistics:
- total time: 10.0007s
- total number of events: 7561

Latency (ms):
- min: 1.09
- avg: 1.32
- max: 1.91
- 95th percentile: 1.61
- sum: 9985.42

Threads fairness:
- events (avg/stddev): 7561.0000/0.00
- execution time (avg/stddev): 9.9854/0.00

RAM:
- Total operations: 31599064 (3158787.42 per second)
- 30858.46 MiB transferred (3084.75 MiB/sec)

General statistics:
- total time: 10.0004s
- total number of events: 31599064

Latency (ms):
- min: 0.00
- avg: 0.00
- max: 8.16
- 95th percentile: 0.00
- sum: 4517.21

Threads fairness:
- events (avg/stddev): 31599064.0000/0.00
- execution time (avg/stddev): 4.5172/0.00

IO:

File operations:
- reads/s: 0.00
- writes/s: 5908.41
- fsyncs/s: 7560.71

Throughput:
- read, MiB/s: 0.00
- written, MiB/s: 92.32

General statistics:
- total time: 10.0001s
- total number of events: 134764

Latency (ms):
- min: 0.01
- avg: 0.07
- max: 198.34
- 95th percentile: 0.14
- sum: 9887.00

Threads fairness:
- events (avg/stddev): 134764.0000/0.00
- execution time (avg/stddev): 9.8870/0.00

Network:

Hosted by Contabo GmbH (Nuremberg) [7.56 km]: 0.924 ms
Download: 199.45 Mbit/s
Upload: 190.97 Mbit/s

DigitalOcean

CPU: events per second: 971.69

General statistics:
- total time: 10.0003s
- total number of events: 9719

Latency (ms):
- min: 0.94
- avg: 1.03
- max: 1.74
- 95th percentile: 1.30
- sum: 9989.39

Threads fairness:
- events (avg/stddev): 9719.0000/0.00
- execution time (avg/stddev): 9.9894/0.00

RAM:
Total operations: 33387969 (3338092.40 per second)
32605.44 MiB transferred (3259.86 MiB/sec)

General statistics:
- total time: 10.0002s
- total number of events: 33387969

Latency (ms):
- min: 0.00
- avg: 0.00
- max: 0.14
- 95th percentile: 0.00
- sum: 4357.27

Threads fairness:
- events (avg/stddev): 33387969.0000/0.00
- execution time (avg/stddev): 4.3573/0.00

IO:

File operations:
- reads/s: 0.00
- writes/s: 5104.53
- fsyncs/s: 6524.46

Throughput:
- read, MiB/s: 0.00
- written, MiB/s: 79.76

General statistics:
- total time: 10.0032s
- total number of events: 116353

Latency (ms):
- min: 0.00
- avg: 0.09
- max: 601.97
- 95th percentile: 0.04
- sum: 9934.03

Threads fairness:
- events (avg/stddev): 116353.0000/0.00
- execution time (avg/stddev): 9.9340/0.00

Network:

Hosted by fdcservers.net (Frankfurt) [0.53 km]: 1.545 ms
Download: 1605.30 Mbit/s
Upload: 1970.01 Mbit/s

Check out Contabo VPS options here.

Check out DigitalOcean VPS options here.



Written by


Mohammad Riyaduzzaman Riyad

Email System & Marketing Pro

(Contact for unlimited email sending SMTP and 2 Billion Email Database)

*Unlimited Email Sending SMTP+ Mautic Setup Gig: https://www.fiverr.com/share/jeZbZo
*2 Billion Email Database Gig: https://www.fiverr.com/share/pwZ9gE


Comments