26 Nov

All the Gritty Details of our new Server Platform

Disclaimer

This post has been a work in progress since mid January of 2019.  Sometimes these things take some time to hammer out, and sometimes, you’re still constantly improving and refining a thing, and keep telling yourself “I’ll just wait until the post is 100% accurate and complete, and then I’ll publish it”.  And eventually, sometimes you need to just acknowledge you’re trying to describe a moving target, and really just let things go and ship the post.

Overview

2019 has been a big year for us, and it all started with the rollout of a new ‘baseline server platform’ for the technology that powers our Shared Linux Hosting Servers.  Now, to be fair quite a bit of it isn’t exactly new technology, but rather, new to us.  One of the simple facts of running a stable hosting platform is, well, that key word.. “stable”.  We don’t get to play with the latest and greatest technological advances (at-least not on our production platforms), because above everything else, we need our platform to be stable, and frequently in tech, “new shiny” tends to mean the opposite of “stable”.  Often stability comes with usage, refinement, and generally, age of the technology in question.

But we’re geeks at heart, and we love to play with the new shiny.   New beta release of RHEL?  We’ll be there poking at the first chance we get, but when it comes to production systems, we tend to be a little gun shy of brand new releases. In fact, we generally won’t run a new OS anywhere in production until after the .1 , or sometimes .2 release comes out.  It’s just something we’ve learned over time is the best thing for everyone’s sanity.  But still, we keep tabs on all the latest shiny, and when it reaches the point that we’re comfortable rolling it out into production, we always enjoy doing so.

A Year of Enhancements

Man sitting at a retro looking computer command center

What our moms think we do

Earlier this year, as part of our big server migration, we established a new ‘baseline’ for how all of our shared linux web hosting servers are setup and run.  Included in that new baseline are a number of new (for us, in production) technologies, and we want to take a moment to acknowledge some of them and what they’re going to mean for everyone.

CloudLinux

We moved from CentOS over to CloudLinux as our basic underlying operating system.  I would best describe CloudLinux to someone as “CentOS, but with added features to improve the security, stability, and performance for web hosting”.

Some of the new CloudLinux features are strictly back-end, things to make our lives easier, like the KernelCare feature, which allows us to patch the running Linux Kernel for security vulnerabilities, in real time, without having to reboot the server.

Other CloudLinux features however, have a direct and easily recognizable benefit to our clients:

  • LVE Management and CageFS – Cloudlinux provides what they refer to as a “Lightweight Virtualization Environment”.  Basically, it allows us to track/limit the amount of CPU, RAM, and other server resources down to the user account level.  This means we can not only prevent a single user from monopolizing an entire server, or even crashing it, but it also allows us to expand the types of workloads we can safely allow clients to run under the ‘LVE wrapper’ of their account.  At the same time, CageFS allows each user to have their own ‘containerized file system’, similar to a chroot jail of old, but, securely.   The introduction of LVE and CageFS and the performance/safety they brought to the table cleared the way for a number of new features we were able to roll out in 2019:
  • PHP Selector and HardenedPHP – Cloudlinux not only provides a way, via the PHP Selector, for us to offer multiple versions of PHP for client use, but they also continue to back-port critical security fixes into some older versions of PHP that are no longer officially updated by the PHP community.  This has allowed us to continue to offer a secure version of PHP 5.6 past its official end of life date, for those clients who are not yet ready to jump onto the PHP7 bandwagon.
  • Python Selector – The Python selector, in combination with LVE, allows us to offer up (as of today) six different versions of Python for client use.  This allowed us to offer Python Hosting without having to choose a side in the great “Python2 versus Python3” debate that seems to consume everyone.  We offer both, and at this point would suggest Python3, but both are there for your use.

Apache Worker MPM, FPM-PHP, and LSAPI

So, the short version is that we got some really nice performance and security improvements in what amounts to the most basic and central service to our hosting platform, the act of actually serving up web pages.  This was such a big improvement that we did an entire blog post back in June just to talk about how awesome it is.  If you want the full story, by all means, go enjoy that one. 😉

The Path Forward From Here

Right now we have the basic tech stack of our hosting platform about where we want it to be in terms of features and capabilities, so I suspect things will be  a little more quiet in that area for a little while at least, but we’re always off tinkering with new ideas and new technology.  So as those technologies firm up, get baked a little firmer and start to turn into things we can build a business offering on top of, expect to see additional new and exciting features/options coming from us in the months ahead.