Last month the Linux Foundation announced the 2018 Open Container Initiative (OCI) election results of the Technical Oversight Board (TOB). Members of the TOB then voted to elect our very own Michael Crosby as the new Chairman. The result of the election should not come as a surprise to anyone in the community given Michael’s extensive contributions to the container ecosystem.
Back in February 2014, Michael led the development of libcontainer, a Go library that was developed to access the kernel’s container APIs directly, without any other dependencies. If you look at this first commit of libcontainer, you’ll see that the JSONspec is very similar to the latest version of the 1.0 runtime specification.
In the interview below, we take a closer look at Michael’s contributions to OCI, his vision for the future and how this benefits all Docker users.
Why are you excited about your new role as chairman of OCI’s TOB ?
I think that it is important to be part of the TOB to ensure that the specifications that have been created are generally useful and not specific to any one use case. I also feel it is important to ensure that the specifications are stable so that new projects can be built while continuing to innovate around new container technology so that users can push the limits. It’s great to see how things have already evolved from the work we did years ago with libcontainer and now with the OCI specifications.
What has been your main contributions to the OCI ?
I started out at Docker around the .2 release. We were having some issues with LXC at the time and wanted to have more control over the containerization aspects within Docker so I started libcontainer to address some of these issues. When Docker donated libcontainer to the OCI in 2015, one of the dev tools in the project was “nsinit”, which later became runc, a runtime for spawning and running containers in alignment with the Open Container Initiative (OCI) runtime specification that was being built at the same time.
What are the main areas of focus for the OCI Foundation over the coming months ?
The group is primarily focused on the Distribution Specification project to standardize container image distribution based on the specification for the Docker Registry HTTP API V2 protocol, which supports the pushing and pulling of container images. We are also working on the runc 1.0 release and will hopefully have that finalized soon. Conformance testing for the runtime and image specification is also something you can expect to be available this year.
How does this OCI work benefit Docker users ?
The starting point for most of the OCI spec work has been donations from Docker on the runtime, image, and distribution specifications. By donating code and the starting point for these specifications it allows new implementations to be created without fragmenting the container space with various APIs. There are new VM based runtimes that offer different features and when they implement the OCI specifications it is effortless for Docker to take advantage of these new runtimes being developed in addition to container based runtimes. Docker also has key contributors working with the community on the specifications and it has helped us build flexible products that provide a wide array of features for users.
What other projects are you working on and what are the implications for OCI ?
For the past year, I have worked on containerd, an industry-standard runtime for building container solutions. containerd has already been deployed in millions of systems in production today, making it the most widely adopted runtime and an essential upstream component of the Docker platform. It was originally built as an integration point for OCI runtimes like runc but over the course of the last year, we’ve made enhancements around filesystems, performance and the implementation of OCI specifications for runtime and image to bring it up to par with the needs of modern container platforms like Docker and orchestration systems like Kubernetes. There is also strong alignment with other CNCF projects: containerd exposes an API using gRPC and metrics in the Prometheus format. In December of 2017, containerd reached its 1.0 milestone.
How do you think user can best contribute to OCI ?
When working on open source you don’t need to be on a board or a maintainer to make an impact. Individual contributors have a massive impact and to be honest, I’ve felt more fulfilled contributing than maintaining. It’s a very hard job. If you are interested in contributing to OCI or other open source projects in the container ecosystem but don’t really know where to start, the Contribute and Collaborate track at DockerCon is a great opportunity to meet project maintainers and other contributors and learn about the process.
Useful OCI Links:
- Visit the OCI website
- Learn more about OCI and containerd at DockerCon 2018
- Join the #containerd slack channel on the Docker Community Slack