containerd is a container runtime with an emphasis on simplicity, robustness, and portability. Born at Docker, containerd’s initial role was to manage the OCI low-level execution environment on behalf of the Docker engine.
This lower layer came into being in 2015 with the adoption of Docker’s “libcontainer” as the OCI default runtime implementation, runc. Following acceptance into CNCF in March 2017, containerd’s scope included both providing core container runtime functionality as a CRI implementation for Kubernetes as well as container runtime capabilities to the Docker engine. Its widest usage and adoption occurs as the layer between the Docker engine and the Kubernetes OCI executer.
Additionally, the project graduated in February 2019. This report assesses the state of the containerd project and how CNCF has impacted its progress and growth. Without access to a multiverse to play out alternative scenarios, it is impossible to sort out correlation and causation. However, this report documents correlations. This report is also one of a series of project journey reports published by CNCF focused on graduated projects.
Project Snapshot
containerd’s first commit was made on November 5, 2015. Between joining CNCF on March 29, 2017 and today, containerd has added:
*Note: These statistics were collected with the DevStats tool, which CNCF built in collaboration with CNCF project communities. Contributor is defined as somebody who made a review, comment, commit, or created PR or issue.
CNCF Premise of Open Source Software Development
A basic premise behind CNCF conferences, (including KubeCon + CloudNativeCon and PromCon), and open source in general, is that most interactions are positive-sum. There is no fixed amount of investment, mindshare, or development contributions allocated to specific projects.
Just as open source development is based on the idea that, collectively, we are smarter together than any one of us alone, open source foundations work to make the entire community better. Equally important, a neutral home for a project and community fosters this type of positive-sum thinking, and drives growth and diversity that we believe are core elements of a successful open source project.
Code Diversity
From its roots at Docker, the containerd project has grown to incorporate meaningful code contributions from more than 155 organizations.
High-velocity open source projects like containerd garner wide adoption and contribution from both vendor and end-user communities. As such, containerd code contributions come from a wide range of companies, fostering user-driven innovation.
Contributors to containerd include many of the world’s largest tech companies, such as Google, Microsoft, IBM, Alibaba Cloud, Amazon, Red Hat and NTT, as well as fast-growing mid-size companies like Netflix, and Pivotal and respected long-time infrastructure companies like Ericsson. Contributions also come from dozens of small businesses and startups, such as Rancher Labs and China Unicom Cloud Labs.
The diversity of vendor contributors is also expanding; IBM has grown to become the third-largest contributor to containerd since project inception. Contributing organizations to containerd are well distributed between vendors and end users, demonstrating that end-user innovation can foster and sustain fast-growing, successful projects.
Diversity across company size and type – by the numbers
The top two contributing companies to containerd as of the end of the December 2019 reporting period were Docker and Google, with 50% and 15% of contributions, respectively. Docker and NTT provided the majority of initial code contributions to the project over the first two years, but the containerd project has diversified to include many additional companies.
The total number of companies contributing code has increased by 157% since containerd joined CNCF, from 53 to 136. As Docker’s percentage of all contributions has decreased, the company has continued to contribute a high volume of code even as Google and IBM have dramatically expanded their contributions. This indicates a healthy dynamic where the project originators continue to contribute high volumes of code but encourage other organizations to contribute a greater percentage of code over time, sharing stewardship and growing the community.
Another key project health indicator is the number of contributors. containerd has enjoyed a nearly 300% expansion of individual contributors over the two years since the project joined CNCF. During the year before joining CNCF, containerd accumulated 131 contributors. In the two years since, containerd has added 882 contributors.
Geographic diversity of contributors
Contributors to containerd have come from more than two dozen countries spread across five continents. The geographic diversity of contributions expanded quickly from less than seven countries in the first year of the project to nearly 30 during the second year.
The chart shows the percentage of contributors over time, broken down by country (based on self reported location on GitHub).
Percentage contributors to containerd by country
Development Velocity
Among the top projects in terms of velocity, containerd is thriving.
One way we track developer velocity is with the following formula: velocity = commits + PRs + issues + authors. We also look at the growth of PRs, code commits and issues filed as separate line charts.
A third way to examine velocity is by looking at the cumulative number of contributors over time.
These charts illustrate sharply rising velocity for containerd.
Eduction, Events and Sponsorship
Growth of community participation in education, events, and sponsorship are reliable proxies for the health of a project.
As a result, the containerd project actively participates in KubeCon + CloudNativeCon North America, China, and Europe. The project hosts Mini Summits along with a variety of presentations and talks from community leaders. In 2019, the project hosted nearly 20 presentations across all CNCF flagship events and one Mini-Summit.
Marketing, Growth and Programs
When containerd joined CNCF in March 2017, the foundation started promotional efforts to help sustain, nurture, and expand the containerd community. This included blog posts, email newsletter mentions, and social media support.
Thanks in part to these marketing efforts, public awareness of and interest in containerd has grown quickly. Google Analytics data for containerd shows an increase in pageviews since the project was contributed to CNCF in March 2017, totaling more than 350k to date.
The project has nearly 6k followers on Twitter and has increased its following 5x since joining CNCF.
Project Documentation
Continuous additions to and improvements of project documentation are essential for the growth of any open source project. Robust documentation is critical to educating new users, and to helping existing users resolve problems and understand a project’s capabilities. containerd documentation has rapidly expanded.
Since joining CNCF, the number of authors and companies committing documentation to containerd has grown by 146.6% and 129.4%, respectively. As of this report, over 74 authors have committed, and over 39 companies are involved in committing documentation. The number of documentation commits has increased by 313% since containerd joined CNCF through the end of December 2019.
Note: Documentation for containerd is collected in .md files. CNCF uses the DevStats tool to automatically collect and count statistics of all relevant .md files in the containerd repositories in GitHub.
Conclusion
CNCF is committed to fostering and sustaining an ecosystem of open source, vendor-neutral projects by democratizing state-of-the-art software development and deployment patterns to make technology accessible for everyone.
We hope this report provides a useful portrait of how CNCF is fostering and sustaining the growth of containerd.
“The Alibaba Cloud Container Service for Kubernetes (ACK) is one of the fastest growing cloud services on Alibaba Cloud. Today, ACK not only serves numerous customers, but it also supports Alibaba’s internal infrastructure and many other Alibaba cloud services. By adopting containerd as the container runtime of Kubernetes cluster, we can take advantage of its simplicity, robustness, extensibility and performance improvement. And it provides consistent behavior for both runC container and sandbox containers covering different scenarios.”
– Li Yi, Senior Staff Engineer at Alibaba Cloud
“Cross-vendor discussions dating back to 2016 raised the desire for a small core container runtime which would be stable and reliable for the needs of a vast array of cloud native-based platforms. I’m so excited to see what containerd has been able to do to meet those needs for embedding, consuming, and extending the core, stable API and capabilities we initially created in late 2016. To see the diversity of hundreds of contributors and companies who have made fixes, improvements, and extensions to containerd is so rewarding.”
— Phil Estes, distinguished engineer & CTO, Container and Linux OS Architecture Strategy at IBM
“containerd is a major piece of the cloud native platform, and Weaveworks is proud to build on it. We created Weave Firekube and Ignite to run Kubernetes on VMs as if they were containers that can natively access CNI networks and CSI storage. We were able to do this in a matter of months, because containerd truly supports rapid innovation and iteration. As one of the founding members of CNCF, we can say: this is what we joined for.”
– Alexis Richardson, Founder and CEO, Weaveworks
“As part of building Weave Ignite, a microVM runtime built on top of Firecracker to unify containers and VMs, we needed a lightweight and performant container runtime to build on top of. After trying out a couple of options, we settled on containerd. With containerd, we were able to integrate OCI containers and Firecracker microVMs in a very performant and efficient manner. containerd is the perfect option for anyone looking to build powerful container-based solutions”
– Lucas Käldström, Creator of Weave Ignite at Weaveworks, and CNCF Ambassador