Will Serverless End the Dominance of Linux in the Cloud?
In this paper, we will be discussing the paper “Will Serverless End the Dominance of Linux in the Cloud?”, which is done by Ricardo Koller and Dan Williams from IBM T.J. Watson Research Center.
Problem
In the previous implementation, the industry has been relying on using Linux kernels as the operating system platform. However, there are several observations indicating that Linux isn’t the most suitable operating system for serverless architecture. The reasons include:
- The complexity of the kernel continues to grow
- Units of cloud execution continue to shrink
Purposed Solution
In this paper, the authors proposed 3 different solutions for building a suitable operating system for serverless architecture:
- Fix Linux: Despite the incompetence of Linux, we could continue on building an abstraction (e.g. containers) for running serverless architecture workload.
- Bypassing Linux kernel: Another approach that is favored by the developers is bypassing Linux kernel. With bypassing, we could avoid the complex and expensive data passing between user and kernel space.
- Replacing Linux: Since Linux kernel, including the kernel design and the instruction sets, are not designed for such serverless architecture, replacing Linux kernel would be a rather reasonable decision for future improvements.
Experiment Setup and Results
The author performed experiments on: (1) Latency (2) Throughput.
- Container: Reducing the complexity of the containers into microcontainers
- Bypassing kernel: Using ukvm
- Replacing kernel: Running a raw Linux process, echo
We discuss the experiment results for latency and throughput, respectively.
- Latency: A raw Linux process echo and ukvm have similar latency, while container shows to have a larger latency.
- Throughput: echo has significant better throughput than both ukvm and the reduced container.
Takeaway
The author discussed the pros and cons of each option
- Fix Linux
- Pros: This is the most favored method by the industry since it is easier to implement for now.
- Cons: The complexity of Linux continues to grow, which will lead to more difficulties on developing and debugging for such complicated kernel.
- Bypassing Linux kernel
- Pros: This is a compromise for using container and rebuilding a host OS, which is an easy way to speed up.
- Cons: Linux kernel isn’t designed for bypassing. Bypassing Linux kernel will lead to less security.
- Replacing Linux kernel
- Pros: The new operating system will be more suitable for the serverless architecture.
- Cons: The development cycle would be longer since this step requires replacing Linux kernel as a whole.