Five weeks ago I moved my virtual private servers (VPS) from DigitalOcean to Linode. Linode celebrated their 13th birthday by generously increasing the amount of RAM provided with all of their plans without increasing the prices. Suddenly, I could double my available RAM and pay the same price I paid to DigitalOcean. Who could say no to such a deal?
This will partially be a review of Linode’s base offering, and partially a comparison between Linode and my former hosting provider, DigitalOcean. I moved over from a local provider to DigitalOcean some 15 months ago, and I’ve been very satisfied. Lately, however, as this website has started seeing more and more traffic the server started to slow down. The main performance bottleneck was the low amount of RAM I’d available at DigitalOcean. Linode supplying 2x the RAM for the same price had me convinced to try them out in no time.
These are the main topics I’ll cover in this review:
The $10 Plan
I signed up for Linode 2 GB, which includes 2 GB RAM, 2 TB transfer per month, and 24 GB storage for $10 USD per month. DigitalOcean’s offering is identical except they offer 30 GB storage and only 1 GB of RAM. Both providers double every metric if you double the monthly payment.
For an additional $2,50 USD per month, Linode will create automatic backup snapshots every day for a week and then weekly backups for a month’s worth of data. In addition to the automated backups, you can also manually trigger and store one additional backup slot. DigitalOcean only charges $2 USD extra for backups, but they only store weekly backups for one month (a total of four, which is less than Linode has per week.)
As I’ve much more need for RAM than storage, loosing 6 GB of storage that I don’t use for 1 extra GB of RAM was a no-brainer.
Unified Linux Kernel
Update (): The following section is no longer relevant as Linode no longer disables Security-Enhanced Linux (SELinux) nor replaces Fedora Linux’s Kernel for new VPS instances as of Fedora Linux 27.
I’ve become somewhat of a Fedora Linux fanboy over the last six months. I appreciate its technical merits and where it has diverged from other popular Linux distributions. I was greatly annoyed, however, when I discovered what Linode labeled as “Fedora Linux 23” wasn’t Fedora Linux.
Linode uses the same custom Linux kernel across all Linux distributions. Unfortunately, this means that for example, Fedora Linux is no longer Fedora Linux. Fedora Linux ships with Security Enhanced Linux (SELinux) enabled by default in the kernel. Linode hasn’t turned SELinux off in the system settings, but they’ve removed it from the kernel so that it’s no longer in effect and might confuse the SELinux state.
I’m sure having everybody running the same custom kernel somehow makes the VPSes of everyone run just a little faster, or that it somehow harmonizes how they all work together on the shared host. Frankly, I don’t give a damn about the reasons. Replacing the default distribution kernel with a custom kernel where security features are disabled by default isn’t inspiring trust.
It’s possible to run any custom kernel or distribution on Linode, but it does require some extra setup and complexity. I wish that Linode could have given users the option of having ‘Fedora Linux‘ as well as ‘Almost-Fedora Linux’. I initially got such a bad sense for the service after discovering all of this that I considered leaving them after just the first few hours.
Linode also deploys a network helper process by default that’s taking care of network configuration. This process if, of course, entirely SELinux unaware, so if you do choose to restore the original Fedora Linux kernel were SELinux is enforced, you may accidentally knock your VPS off the net. This is where LISH comes in.
What is the purpose of a server, but to be available to the internet community? Preferably at a favorable speed regardless of the visitor’s geographical location.
At Linode, you get one IPv4 and one IPv6 address per server instance. You can pay an extra monthly fee for additional IPv4 addresses, or get a pool of a minimum of /56 additional IPv6 addresses for free. DigitalOcean had the same arrangement, but gave each server instance 16 IPv6 address by default – because why not? I would have preferred if Linode had handed out some extra IPv6 addresses. Otherwise, I’ve to depend on the Server Name Indication extension to TLS for my websites, but I haven’t bothered contacting them to ask for more addresses. It would seem it’s not all that important for me since this requires such a minimal amount of effort.
Linode has on average a 20 ms faster DNS response time than both DigitalOcean and my current domain registrar, according to data from SolveDNS on DigitalOcean, Linode, and Uniregistry. I kept using my registrar’s DNS service when I was with Digital Ocean, as there didn’t appear to be any reason for changing it. As Linode is offering both increased speeds and reliability, I decided to make the move to using Linode for DNS services as well. Linode doesn’t offer DNSSEC, but none of the other two had that either and I guess I can’t expect everything.
The global average network response time for my websites dropped after moving my websites to Linode’s datacenter in Frankfurt, Germany from DigitalOcean’s datacenter in Amsterdam, The Netherlands. When measured from 12 different locations around the globe for a duration of eight days, the average time to first byte fell from 1,98 seconds to 1,17 seconds.
I considered choosing to host my server in London, United Kingdom, but decided against it as this was just one week before the United Kingdom decided to leave the European Union. Germany felt like a more stable and reliable location, but came at the cost of a slightly reduced potential for further gains in global network response improvements.
We live in a world were everyone insist on telling everyone else that it’s always “mobile-first”. This conviction isn’t shared by the web team at Linode, though their mobile app effort is better than DigitalOcean.
All product information pages, sign up form, and payment at both Linode and DigitalOcean are done on mobile-friendly webpages. Beyond the initial sale, however, the courtesy to mobile customers come to an abrupt stop.
The management interfaces aren’t at all optimized for small screens, and you’ll be doing a lot of panning around, pinching, and zooming if you expect to get any work done.
The less than optimal mobile browsing experience at DigitalOcean lead me to crave for an official app for minimal management and monitoring of my server. While Linode has the same problem with the web management interface, they’ve made an Android and an iOS app.
The Linode Mobile app offers detailed CPU, disk, and network usage graphs for each instance as well as a reboot button and secure shell (SSH) access through other apps or through the Linode Shell in the mobile browser (not optimized for mobile.) I don’t open the app often, but it’s reassuring and an increase of quality of life to have the app in your pocket; if something goes wrong and you need to attend to your server.
I was initially quite upset with Linode over their custom Linux kernel without SELinux in my distribution of choice. It wasn’t made very clear when I first started setting up the machine, that I wasn’t dealing with the environment I thought I was. After restoring the default kernel and combing through the environment for other unwanted changes, I became more okay with it. If the Linode service offering hadn’t been better than DigitalOcean’s, I would probably have canceled my account.
Moving past that, the experience with Linode has been positive. Their management interface is showing it’s age when compared to DigitalOcean, especially when it comes to layout and the terminology they focus on. However, it’s all manageable and it stays out of the way.
I didn’t do any real performance tests. There are more than enough blogs out there on the web who have done that in the past, and even some websites that continuously track the processing and storage and memory I/O differences between the two and I didn’t think I could add much insight to this area. However, I’ve gotten a faster website with less downtime since I made the move.
Just two weeks after moving to Linode, I saw a record-breaking traffic spike triggered by a mention on Twitter by Scott Hanselman to this website. The amount of traffic would most definitely have crashed the server at DigitalOcean, but with double the RAM it handled it well. I was quite lucky with the timing there.
I did consider 12 other hosting providers before settling on Linode, but they all fell short on some of the basic features like manual snapshots, IPv6 support, and so on. A few of the cheaper ones had what I can only describe as abusive Terms of Service contracts. Linode’s ToS are short and sweet and their service includes everything I wanted and met all my technical requirements.
All things considered, I do recommend hosting your stuff at Linode. They’ve got 13 years of experience and good service, and all this at one of the cheapest prices in the global market for what you get. You should consider it when deciding on a host for your next web project.
If you found this review helpful and have decided to sign-up for Linode please use this referral link.
A little bird told me that new customers get a $20 USD service credit if they apply the coupon code LINODE20 at sign-up. That is two months of free hosting to try out Linode for yourself for a minimum of $5 USD purchase.