Black Friday Sale Up to 70% OFF Web Hosting

The Mysterious Job of a Kernel Developer: An Interview with a SiteGrounder

There’s a lot of work involved in crafting a great hosting product. Part of our efforts to guarantee that our clients' websites perform better in all circumstances, is our unique hosting infrastructure built entirely on Linux containers. The specifics of this custom setup require a special kind of talent and skill set to maintain it - that of a Linux Kernel developer. Since there aren’t that many people programming on such level, their job description sounds almost mysterious. That’s why we’re very happy to have such rare talent on our team at SiteGround. We thought it would be interesting to tell you more about their work and how it helps your sites work better and safer- from our StartUp solutions to the Enterprise level. Meet Angel Shtilianov, our high-level specialist, responsible for Linux kernel development on our servers.

Angel, you occupy an interesting position here at SiteGround - a Linux Kernel Developer. Could you explain what is kernel programming, and how is it different than software development?

Angel: Generally, the kernel is the core of your operating system, whether it is Linux, Windows or another one. It handles various essential tasks like: managing your hardware, memory usage, pipelining your data to different storage devices and more. That’s where the mystery and importance of kernel development lies. It makes all these tasks work together and run simultaneously, with no complications.

Kernel developers live in a world that is difficult to be imagined by most people because it has no user interface to relate to. This is the world between all the apps we use daily, and the hardware (or as we call it - the bare metal). Everything there has its own purpose, ensuring a stable base for the smooth performance of all apps. On the other hand, there's the user space software which implements all the apps, serving the specific needs of the end-users.

Why did you decide to pursue a career in kernel engineering?

Angel: I started working with computers a long time ago when they still had a few hundreds KB memory and virtually no computing power (in today's terms of computer performance). The hard disks were the size of a laundry machine and there was no graphic user interface. In these days, there was nothing much a normal person could do with a computer other than typing text. There were no games, no Internet and most of all - nothing to distract you. Back then, the best time investment was to invest in yourself by trying to make a computer program. I was eager to learn how to use the limited resources for something a computer can do faster and better than a human.

I started using Linux in the late 1990s because it was a completely open source project. This meant that when you have a problem, you could scrub through all the code that your functionality depended on, trace the problem, and eventually optimize the code. You can learn a lot by just digging through the code. You can share, ask and improve your work and yourself in the moment, helping others as well. There are many people all around the world, using and writing open source technologies. Regardless of whether they are writing open-source code or using it - it all helps everything move forward.

What differentiates the kernel on SiteGround’s servers from a standard one?

Angel: Well, our kernel is not completely different as a code base. It is different in the way it evolves and the way it’s being maintained. It is not just customized for our customers' use cases. It is optimized for the best performance on our infrastructure. For SiteGround’s customers, this means high-level security and better resource management for their websites. It is the magic that makes it possible to meet all clients' requirements for server performance. Every single user unit encapsulates its resources within a “package” containing its memory, CPU, network, storage and other resources.

We also strive to identify possible security risks and we regularly improve safety features. In addition to providing the latest security patches on our servers, we also have a live patching system, which allows us to apply kernel security updates without even restarting the servers, maximizing the servers uptime and providing a highly-protected environment with no service interruption.  We often have discussions with the core Linux developers, we try to contribute whenever we can and so far our team has written more than 400 kernel patches, dozens of which are part of the mainline Linux kernel code.

At SiteGround, we use Linux containers as opposed to traditional virtualization. Could you explain what are the benefits of it?

Angel: Our Linux container technology is a complete ecosystem running on our servers. Its purpose is to guarantee clients' data and resource privacy. Also, depending on the client’s requirements, we can extend their resources and provide reliable services without interruption. It makes it possible to scale and protect our clients’ business growth by allowing more flexibility. Traditional virtualization, on the other hand, causes huge resource overhead by emulating each resource inside a virtual machine. By avoiding that, our technology practically has no overhead, which means the customer uses the full capacity of the resources they are paying for, and you can really tell the difference in performance.

Why is the job of kernel developers in web hosting companies not that widespread?

Angel: Due to the specifics of the work, many companies don’t have the need to have their own kernel. When a company builds a custom product which requires additional setups, somebody has to take care of that specifically. At SiteGround we create our own services and optimize the software on our whole hosting platform, starting with the Linux kernel.

At any moment, our system handles thousands of requests coming from the user software on our servers. We don’t want our clients to wait for the server to ‘give them their attention’. That’s why we create our in-house technologies. They require many modifications, optimizations and the need for someone to dig deeper into the Linux kernel dev code. That someone is yours truly, the kernel developer.

Is there something new and exciting that our customers can soon expect from our kernel team?

Angel: Well, that's quite a difficult question because of the nature of the kernel software. I can reveal that we’re currently testing Linux kernel 4.14 version. We also plan to deploy the latest security mechanisms which we discussed with the community during the Open Source Summit NA 2017. Meanwhile, we take care of our servers’ security, reliability, and performance. We are also improving our backend infrastructure to be ready to meet every single challenge. It's an out-of-the-box service our clients get all the time, it’s just part of our philosophy as craftsmen.

Product Development - Technical

Enthusiastic about all Open Source applications you can think of, but mostly about WordPress. Add a pinch of love for web design, new technologies, search engine optimisation and you are pretty much there!

10 Comments

  1. Reply November 8, 2017 / 10:20 MarlonSiteGround Team

    Great interview!

  2. Reply November 8, 2017 / 10:44 MargaretSiteGround Team

    Wow! While I don't understand all of this I really do appreciate that you do. Thanks

  3. Reply November 8, 2017 / 12:02 MarkSiteGround Team

    Thank you Hristo and Angel for this peek "inside the machine"! I'm no programmer but that doesn't mean I can't appreciate the kind of work you do. Knowing that SiteGround has a unique approach to web hosting is part of the reason I became a customer. I can now see that it's because of the dedication and expertise of some very talented people!

  4. Reply November 8, 2017 / 13:37 JasonSiteGround Team

    Great post, really informative & inspiring.

  5. Reply November 12, 2017 / 09:21 DTSiteGround Team

    Hristo & Angel --

    Thanks for the post, it helps me understand what you offer and what choices you've made to make your hosting work. It leads me to think about other cloud hosting infrastructures like AWS and want to know more about the differences between what you do and what they do.

    I'm working on another project which uses AWS and continuous integration tools (Travis-CI) with build and deploy cycles and numerous monitoring systems to make sure everything is working in the environment as expected. But, I don't think these tools allow you to change the kernel itself and are basically some version of virtualization (and if they do, I don't think we touch the kernel anyway).

    Can you comment on the differences between what SiteGround is and what AWS is? The above discussion makes it clear why you don't use virtualization, I'm curious about whether AWS is what I think it is.

    Thanks!

    • Reply November 16, 2017 / 01:24 Hristo PandjarovSiteGround Team

      There’s a difference between containers and virtual machines. We focus on containers which means sandboxed resources without virtualized CPU. For full virtualisation, with access to every aspect of the machine with let’s say custom built Kernel, AWS is the way to go 🙂

  6. Reply November 16, 2017 / 21:34 albertSiteGround Team

    love it. have enjoyed siteground hosting for more than 10 years with multiple domains.. thumbs up for superb customer support.. and of course now the LINUX kernel development portion you just written..something i believe that differentiates siteground from others..

  7. Reply November 16, 2017 / 23:54 Steve KobbSiteGround Team

    Fascinating. Thank you both for shedding light on this topic.

  8. Reply November 19, 2017 / 20:22 Faisal ZamirSiteGround Team

    WOW,
    Thanks you shear great experience

  9. Reply November 21, 2017 / 23:30 Morad HamdySiteGround Team

    It seems that there are huge efforts behind the user interface, and what you talked about is the most important part.

    Well done, and you are providing great service that makes users trust.

    Thanks a lot.

Reply to Mark Cancel

* (Required)