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 that 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 hundred 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.