Image from Pexels

Keptn — simplifying cloud-native app delivery & operations — a review on our journey so far

Jürgen Etzlstorfer
keptn
Published in
10 min readFeb 26, 2021

--

TL;DR

The Keptn project started as an initiative to help organizations adopt cloud-native concepts for either their cutting-edge microservice applications or their monoliths that have matured over years. Focusing on robust continuous-delivery with automated testing, quality gates, and auto-remediation capabilities, the Keptn ecosystem has been growing since its inception. Today it consists of more than 50 contributors and 20+ tool integrations.

What others are saying (a.k.a. Why you should continue reading)

Keptn feels like a reference implementation of Google’s “Site Reliability Engineering” and “The Site Reliability Workbook” books”. — Taras Tsugrii, Software Development Engineer at Facebook

Keptn Quality Gates integrated into our CD helped us improve speed of delivery b 75 % and reduce manual work to evaluate results by 80 %.” — Wim Verhaeghe, KBI-Connect DevOps team lead at Inetum — RealDolmen

I hope you are now intrigued by how we got to this place today, where we are heading and how you can become part of our community as well.

How it all started

Back in early 2019, the project was born (see first commit on Github) under the name Keptn, with the ambition to help organizations adopting cloud-native concepts by providing a ready-to-use platform for continuous delivery including automated testing, quality gates, and operations automation by orchestrating automation and remediation tools. The foundation of the project was a well-established methodology that was already used successfully in practice at Dynatrace and provided as a full-week workshop to partners and customers. However, we felt the urge to go one step further and provide an out-of-the-box solution that helps others getting started frictionlessly and embracing cloud-native concepts.

In January 2019, we open-sourced this initiative under the name Keptn. To provide value quickly, the first release of Keptn used Jenkins and custom pipelines, was configured with smart defaults, and included a demo application ready to be explored and played with. This “battery-included” approach has been a main driver ever since the beginning of the project. However, the project quickly migrated from an interactive demo to a ready-to-use platform built on Kubernetes. External dependencies such as Jenkins or Knative have been removed and Keptn matured as a cloud-native control-plane that automates delivery and operational processes by connecting to your DevOps tools of choice for your target platform.

Contributing to CNCF

Already one year after we started the project, Keptn has been successfully contributed and accepted to the CNCF as a Sandbox project in the Continuous Integration & Delivery category. This was a major step for the project and its community, as it opened up several new opportunities for us.

Keptn being part of the CNCF landscape

Increased visibility

The contribution of Keptn resulted in increased visibility around the time when we proposed Keptn to the CNCF and once it got accepted it gained a lot of interest manifested by stars on our Github repo with now more than 700+ stargazers and around 100 forks of the Keptn core project. This is quite impressive as extending Keptn does not require changes to the Keptn core, but instead, we have built our framework of integrations based on the CNCF project Cloud-Events, an open specification for describing event data in a common way. We will dig into the Keptn ecosystem and its growth in a minute.

Official Keptn Github stargazer statistics visualized by https://seladb.github.io/StarTrack-js/#/

Being part of CNCF community

Being part of CNCF is not only to increase visibility, but also about being part of an ecosystem & community, and it opened up several more opportunities for us. One of those opportunities was to host a project pavilion at virtual KubeCon + CloudNativeCon NORAM 2020.

Keptn virtual booth at KubeCon NORAM 2020

The Keptn core team + maintainers hosted two office hours, and the team was available via Livechat during the event. In total, around 600 participants joined our sessions and office hours! This was a huge success and would not have been possible without the membership status in the CNCF — and for this we say thank you!

Collaboration between CNCF projects

This flagship conference fostered communication and collaboration between other CNCF projects and Keptn, and right after KubeCon, Keptn and LitmusChaos teamed-up to build an integration between the two projects. This integration was built in a joint effort, and the outcome helps developers and SREs to evaluate the resilience of their applications by executing chaos experiments with LitmusChaos and having them evaluated by Keptn, all integrated in a continuous delivery workflow and based on Service-Level Objectives (SLOs). This collaboration was nurtured by the CNCF memberships of both projects and our common interest in providing additional value by bridging the gaps between separate CNCF projects.

While this integration was initiated during KubeCon 2020, other tools integrations with CNCF projects have been part of Keptn early on: Helm, CloudEvents, Istio, ArgoCD, and Argo Rollouts just to name a few.

Keptn ecosystem integrations

Mentorship

We are actively working with community members helping them on their journey to become successful open-source contributors. One initiative we are actively involved in is the LFX mentorship (previously called CommunityBridge). In the last quarter of 2020, Keptn has been a first-timer in providing mentorship. After around three months of mentoring, we had our first successfully graduated mentee, who contributed improvements to our CLI, by allowing it to support different contexts and a way to switch between those. Great job and thank you, Ankit!

After the first successful mentorship, the team has decided to continue the efforts in supporting the community and providing mentorships. In the current period, Keptn has successfully submitted two projects to the LFX program.

Driving innovation in the open-source community

Another important aspect of our efforts in the open-source community is to shape the future of software delivery and operations. Therefore, we are working closely with other leaders in the community as part of the Continuous Delivery Foundation (CDF). Andreas Grimmer, one of our project maintainers and architects, is an active member of the Interoperability Special Interest Group (SIG) of the CDF, working on interoperability standards in CI/CD ecosystems, together with other experts from Netflix, Google, RedHat, and more.

We are also honored that for the latest European edition of the industry flagship conference on cloud-native technologies KubeCon 2021 one of our project maintainers, Jürgen Etzlstorfer, got selected as co-track chair for the CI/CD track of the conference. This track covers the latest and uprising trends and technologies in CI/CD and is recognized as a main hub for knowledge exchange between practitioners.

Both opportunities would probably not have been possible without our engagement in the open-source ecosystem.

Engaging with the community

Regular communication: community meetings & Slack

When we started Keptn as an open-source project, we already knew it would be vital to include the community. Therefore, we hosted (bi-)weekly community meetings almost from the very beginning. With this, we are bridging the gap between the Keptn core maintainers that work on Keptn daily, the Keptn contributors and the wider community that contribute to Keptn on a more infrequent basis. The contents of our community & developer meetings have been very technical, therefore providing the most value for contributors who are interested in starting with contributions. Plus, it has been the central platform for cherishing community contributions: each new contributor gets the opportunity to present their contributions to the Keptn community. Thanks to everyone that already took this chance and we are looking forward to meeting even more of you in our developer meetings!

Although regular meetings between developers are great, they are not sufficient for frictionless communication between maintainers as well as new contributors. For this reason, we also provide a dedicated Keptn slack workspace as a public support forum, information hub around the project, and communication platform for everyone in the community. Our community has grown to over 500 members in the Keptn Slack workspace, having around 100 of them engaging with the community on a weekly basis (green line). As you can see, this is not only a platform for Keptn developers (we will take a look at contribution statistics in a minute), but indeed a platform for everyone interested in learning or discussing modern continuous delivery, automated operations, SRE topics such as Service-Level Objectives (SLOs) and much more. It is a vivid hub for generating new ideas and eventually learning how to employ them with Keptn. Most recently, experts from Unleash, Citrix, Mayadata, and more have started their working-group on auto-remediation in the Keptn slack — join them if you want to shape the future of self-healing applications.

Keptn slack workspace activities (green = weekly interactions, blue = members that are actively posting)

User groups: Celebrating successful users

As the project is growing and more and more organizations are adopting Keptn, we felt the urge to celebrate successful adoption stories with our community members. Therefore, we have installed monthly Keptn user groups, to deep dive into how organizations are adopting Keptn and sharing these stories with the community. This should give insights on different approaches that are taken to successfully adopt Keptn and to foster knowledge exchange among community members. So far, we have had great success and, thus, we are also making our Keptn User groups available on YouTube.

We already had Keptn adopters sharing their lessons learned on automating and scaling performance test execution & scaling, integrating Keptn Quality Gates with Argo and Jenkins for distributed load testing, and on how to continuously evaluate application resilience with LitmusChaos, Locust, and Keptn to name a few.

Building an ecosystem

Building a platform for modern continuous delivery and automated operations implies that it has to be open for new tool integrations on top of this platform. Due to the data-driven nature of Keptn, rich tool integrations can be built, including deployment tools, testing tools, and automation tools that are triggered and orchestrated by Keptn.

Since the start of the Keptn project, the ecosystem has grown to having more than 20+ tool integrations either contributed by Keptn maintainers or the community. For example, one of our most asked integrations, an integration of Keptn quality gates into Azure DevOps, has been contributed by Bert van der Heyden, one of our community rockstars.

The balancing act between providing a low entrance barrier to submit new integrations and keeping them updated to new versions of Keptn core is established by providing two dedicated spaces for them: new contributions are added to Keptn-Sandbox, allowing them to already be visible to the broader community, but still indicating their sandbox status, while the Keptn-Contrib repository holds “graduated” Keptn services that have been proven and used by Keptn adopters.

Having a solid foundation: Keptn core project

Building an ecosystem would not have been possible without a solid foundation, which is the Keptn core project on Github. Although tool integrations do not require changes to the Keptn core project, we are proud that we have almost 50 individuals contributing to this project with close to 5,000 commits, which averages to around 6 commits each day since the start of the project (which is an upward trend)! Fun fact: we see the least amount of commits on Saturdays — so if you are up for the challenge, make a Keptn contribution your weekend project and get started with some good first issues.

Lessons learned

Be open and inclusive: open-sourcing Keptn was an important step for the project, as now a bigger team is contributing to the project, with a growing number of individual contributors. The project itself is not a company product, instead it is an open and inclusive platform driven by the maintainers and the community, following a governance that is open and transparent for everyone. It has shown that being open has improved the project in several ways, either by having contributions such as Bert’s AzureDevops integration added to the project or having bugs fixed that have been discovered & fixed by the community.

Be responsive: This openness obligates us to be responsive to every new contributor, Slack member, or Twitter follower. If someone from the community takes their time to take a look at Keptn, read through the documentation and code, installs it, and eventually contributes to the project, we owe them a quick response! If you are running an open-source project, please do the same.

Why you should join the open-source community!

We hope that our journey inspires you to join the open-source movement and community! It is a great way to learn from others (not only on the level of source code but also get inspired by ideas). Having peers that share the same interests and vision enables you and your project to grow and solve problems that are identified and brought up by the community. Personally, I’ve made friends from around the world across all different timezones thanks to our open-source project! I encourage you to join the open-source movement, either by joining the Keptn community or any other community that shares your interest! If you do so, let me know how it turns out for you.

--

--