The CNCF open-source project Keptn is currently helping hundreds of performance, DevOps, SRE, and automation engineers with flexible automation around performance & resiliency engineering as well as delivery (DevOps) and operational (SRE) automation. By providing automation with 90% less automation code, Keptn enables users to bring more automation into more projects.
Keptn has helped many engineers to scale DevOps & SRE automation to more apps and projects
But, Keptn wouldn’t be where it is today without the PAC (Performance Advisory Council).
Over the past 2 years, the PAC was instrumental in shaping Keptn – especially the capabilities around automated performance & resilience testing and automated SLO-based (Service Level Objective) result analysis. I was glad to deliver the following PAC sessions …
- Performance as Code – Lets make it a standard (Winter 2019)
- SLO Validation as a Self-Service with Keptn Quality Gates (Spring 2020)
- Automated Test Analysis with a custom Keptn SLI Provider (Fall 2020)
… which triggered great discussions among the global performance engineering community.
I was very honored to come back for the PAC Hero event in Spring 2021 to give an update about the latest Keptn 0.8 release which included many of the enhancements that were suggested during the previous PACs:
- Improved SLO Visualization
- Flexible Automation via Shipyard 0.2.0
- New Automation Sequence Visualization
- Multi-Cluster support and better task tracking
For a full overview of all features in Keptn 0.8.x check out the release overview on GitHub.
I encourage you to watch my full talk, where I hope you will see the benefit of Keptn and how it allows you to automate performance, resiliency, delivery, auto-remediation and other use cases at ease. The best way to get started is to visit our website, try one of our tutorials, join our conversation on slack or contribute on Git.
Now – if you prefer reading to watching a video, then continue scrolling as I give you a quick summary of what I presented at PAC Hero 2021!
Why Keptn for Performance Automation?
For many seasoned performance and automation engineers, automating test execution, analysis, sending notifications to Slack, or integrating chaos engineering is not impossible. We have great tools such as Jenkins, GitLab, Azure DevOps, Harness, Tekton, ArgoCD, … that all provide options to build that level of automation.
It’s a fair and obvious question: Why you would use Keptn if you can code all this automation in your existing tool of choice?
The challenge is that building this type of automation potentially end us up in very complex and hard to maintain automation code. And ideally, your automation code shouldn’t be more complex and longer than the code it is actually testing. But this happens more often than not, as reported by Christian who is responsible for keeping almost 1000 automation pipelines from not breaking:
DIY is great – but it tends to become very hard to maintain, extend, and fix in case things break
Within our organization, Dynatrace, we ran an analysis across many of our pipelines to see how complex they are. We learned that a key problem is code duplication in our Jenkins pipeline code. So – our automation is victim to the same challenge software engineers have when building their apps: Technical Debt!
Automation code falls victim to the same challenges business code does: Technical Debt leading to errors and manual work!
Keptn addresses this problem through an opinionated, yet flexible approach to automation. Instead of having an automation script that is > 1000 lines which includes logic, tool integration and configuration, Keptn separates process from tooling. Keptn puts the configuration into Git and uses an event and data-driven approach to orchestrate automation sequences leading to about 90% less automation code – which means less complex code to maintain.
Keptn’s opinionated approach follows cloud native principles and reduces your automation complexity
If you want to learn more about the internal workings of Keptn, how to define automation sequences, how to connect your tools then check out the recorded PAC conference talk.
Integrate with your existing automation
Our goal with Keptn is not to replace your existing automation. Keptn helps you to increase your level of automation by making your existing automation less complex and error prone. We provide a rich automation API to easily integrate it into your tool ecosystem, which also protects your existing investment into your current automation.
Keptn brings performance & resiliency automation to your existing automation.
For more use cases, make sure to watch the full PAC talk and check out additional resources on https://keptn.sh/resources/
Extending Keptn to integrate with ALL your tools
As explained earlier, the core architectural feature of Keptn is the separation of process and tooling. Keptn uses an event driven orchestration that sends CloudEvents to notify tools such as testing, monitoring, delivery … tools that execute specific tasks.
Many tool integrations – so called Keptn Services – have already been built by the community and can be found in the Keptn Contrib or Keptn Sandbox GitHub organization. New tools can easily be integrated as well – simply clone the keptn-service-template-go and follow the instructions.
Keptn makes it easy to let new tools participate in a Keptn orchestrated automation sequence
If you want to learn more, also check out the previously mentioned PAC presentation “Automated Test Analysis with a custom Keptn SLI Provider”.
Thank you PAC!
A big Thank You to Neotys who has been hosting PAC for the last couple of years. Thanks for allowing us to use the PAC platform and community to shape Keptn in a way that it truly helps the larger global performance community.
To you – the reader – hope to see you on our Keptn Slack. We want to hear your feedback! Feel free to contribute any custom Keptn service to our Keptn Sandbox repos.
If you want to know more about Andreas’s presentation, the recording is already available here.