This year has been very happening for the container world. While it looked as if the last month of the year will be relatively dull, seems Docker Inc had other plans . Recently Docker Inc announced spinning of ‘containerd’ from docker-engine as a separate project. For those who are not aware, ‘containerd’ is the core container runtime in docker-engine. It was introduced in release 1.11 of docker-engine. You can read more on containerd architecture in the following link.
I think this is an extremely important announcement for the container world. Effectively Docker Inc relinquished control of the core container runtime by placing it as a separate project under open governance. Further it’s backed by all the major cloud providers with container services – AWS, Azure, Google, IBM among others.
In my opinion, making ‘containerd’ a separate project serves two primary purposes:
- Creates a ‘truly’ open and commoditised core runtime which just works while leaving the differentiation to higher level abstraction.
- Absolves Docker Inc from the criticism that they had received fairly or unfairly, while charting the course of the overall docker-engine code.
While #2 may be more of how Docker Inc wants others to perceive itself, the key aspect is the ‘open’ core runtime. This provides the foundation needed to innovate at higher layers.
What I’m not sure of is whether ‘containerd’ will be the only core container runtime used by everyone or we’ll see diverse approaches? What happens to Kubernetes Container Runtime Interface ? Well we might have to just wait and watch.
Lastly, Phil’s blog on the ‘containerd’ announcement is a very good read to get a ‘maintainer’s’ perspective. He is one of the maintainers of ‘containerd’ and here is the link to his blog: