Kubernetes: An Efficient Engineering Pipeline with thorough documentation & thriving community
5 min read
Kubernetes is the top choice for managing containers in the cloud world. It powers big names like Spotify, Airbnb, and Netflix, driving some of the most critical systems in the world.
Kubernetes was first created by Google, but today, people from all over the world help keep it up to date.
The release process plays a crucial role in maintaining Kubernetes' stability and driving improvements. And, with over 3,691 contributors on its GitHub repository, it's a thriving and dynamic community that ensures the platform continues to grow and succeed.
Let’s see how this dynamic and important repository handles their releases so efficiently. I'll be diving into their Dora Metrics using Middleware OSS to break it down.
If you’re excited to explore these insights further and connect with fellow engineering leaders, come join us in The Middle Out Community and subscribe to the newsletter for exclusive case studies and more!
Kubernetes’ Sweet Spot - Deployments Done Right!
Kubernetes really shines when it comes to deployment rates. They knocked it out of the park in June and July 2024 with a whopping 149 and 183 deployments, respectively. Several PRs highlight this rapid deployment pace: #125826 by @Neolit123, #125797 by @SataQiu to name a few. But then things took a nosedive in August and September, dropping to just 64 and 41 releases.
We dug deeper to find the culprit…
Also read: Is Deployment Frequency The Goldilocks Zone For Software Delivery
Spoil Sports: First Response Time and Rework Time
First response time and rework time really threw a wrench in their development cycle.
In June: The team took 4.62 days to respond to a pull request
In July: The response time increased to 5.22 days
In August: It dropped to 3.28 days
Similarly,
Rework time
In June it was 1.54 days which increased to 4.83 days in July further declining to 2.14 days in August.
The rework and first response times are way above the benchmarks outlined in the 2023 State of DevOps Report. This resulted in longer cycle times that ultimately postponed the product's final release.
One reason for this could be the push to roll out a bunch of new features, like KEP-4639, which adds the OCI VolumeSource CRI API by @saschagrunert, the graduation of JobPodFailurePolicy to stable by @mimowo, and KEP-3619, which introduces the NodeStatus.Features.SupplementalGroupsPolicy API by @everpeace. These are some of the latest features in the pipeline.
On top of that, they also dedicate about 35% of their time and effort to fixing bugs. Overall, Team Kubernetes spent roughly 45% of their time on feature development and around 35% on bug fixes. This could lead to bottlenecks in first response and rework times as limited availability of maintainers and reviewers may affect prompt responses. Also, some contributions require in-depth reviews, which naturally take longer time.
Also check out: How Bootstrap does a great job with their cycle time
Kubernetes Repo: The King of Streamlining Work and Proper Documentation
Source: Medium
Kubernetes reigns supreme when it comes to streamlining tasks and assigning roles to everyone involved. They’ve set up Special Interest Groups (SIGs), where contributors collaborate on specific parts of the project, like networking, storage, and releases. Each SIG takes charge of its area, ensuring that the repository continues to evolve and improve.
The Kubernetes Release Team
The Kubernetes Release Team is divided into five sub-teams:
Enhancements
CI Signal & Bug Triage
Docs
Release Notes
Communications
Each sub-team has a specific focus that’s crucial to the overall release process. They provide handbooks detailing the responsibilities of both leads and shadows, which you can find here.
Mentoring Through the Shadow Program
Kubernetes also runs a shadow program designed to mentor new contributors, giving them hands-on experience while keeping the release process on track. Shadows work closely with their leads, gradually taking on more responsibilities as they gain confidence and expertise.
Also read: The Key Strengths of Electron That They Can Cash In On
Making the Most of Kubernetes' Strengths
Kubernetes should tap into their large community of around 4,000 contributors to improve efficiency.
Utilize the mentor program to onboard and support new contributors.
Encourage all contributors to thoroughly read through the handbook and documentation. Familiarizing themselves with these resources will enhance their understanding and ensure they are well-prepared to contribute effectively.
Focus on training contributors thoroughly so they can manage the review process independently.
Leverage its robust extensive continuous integration and continuous deployment (CI/CD) workflows.
Our Verdict - Kubernetes Has It All—It Just Needs to Tap into Its Potential
To truly enhance their performance cycle, the Kubernetes repository team must harness the full potential of its vibrant community. By fostering a culture of mentorship and empowering community members to take on more responsibility, the team can significantly streamline the development cycle. The community is already equipped with the skills and enthusiasm needed for success; they just require the right guidance and opportunities to shine. With a little encouragement and support, Kubernetes can unlock its vast potential and continue to thrive as a leading platform. After all, they have everything in place; it’s just a matter of tapping into that potential!
If you find these learnings interesting, we’d really encourage you to give a shot at Dora metrics using Middleware Open Source. You could follow this guide to analyze your team or write to our team at productivity@middlewarehq.com with your questions and we’ll be happy to generate a suggestion study for your repo — free!
Also, If you’re excited to explore these insights further and connect with fellow engineering leaders, come join us in The Middle Out Community and subscribe to the newsletter for exclusive case studies and more!
Fun Fact
The name “Kubernetes” is derived from the Greek word for "helmsman" or "pilot," emphasizing its role in managing containers like a captain steering a ship.