The overall goal of Keptn is to make continuous delivery and operations automation a commodity for modern cloud-native applications.
Keptn was started by Dynatrace because we saw that continuous delivery — as it’s currently practiced — is broken. We are on a mission to solve the biggest problems of continuous delivery that exist today.
Today most companies build their continuous delivery and operations pipelines by hand. Often these pipelines vary from application to application. This can lead to a lot of manual work in building the required delivery mechanisms for cloud-native applications.
The solution - Automate the plumbing
Keptn uses a simple, declarative approach that allows you to specify what you want your continuous delivery pipelines to look like, using so-called shipyard files. These files are used to automatically generate all the required plumbing that underlies your delivery pipeline. A multi-stage pipeline can be set up from scratch in ten minutes or less. Keptn is like Kubernetes, but for your continuous delivery pipeline.
Delivery pipelines and operations automation are often built ad-hoc. Code is spread across numerous tools and, afterall, there is no continuous delivery process for continuous delivery pipelines (did someone say “Inception”?). For these reasons, DevOps automation code is likely to become the next big legacy code.
The solution - Separate the control plane from the actual tool plumbing
Keptn uses well-defined Cloud Events for pretty much everything that can happen during continuous delivery and operations automation. Keptn services register these events and then translate them into API calls for specific tools. Keptn acts as a central control plane for continuous delivery, putting all your automation code in one place as well as separating tool integrations from the definition of continuous delivery applications.
As most tool integrations today are done on a 1:1 basis based on proprietary APIs, many companies face vendor lock-in when it comes to their continuous delivery pipelines and operations automation. It can be nearly impossible to replace these tools in many instances. Even if you can replace a tool, a massive amount of work is required and you risk taking your delivery automation offline for a period of time.
The solution - Provide standards for building continuous delivery
Keptn integrations are merely translations of well-defined Cloud Events into proprietary vendor APIs. This makes exchanging tools much easier from a continuous delivery perspective. Keptn, for example, uses a new-artifact event instead of requiring a direct integration to container registries, and it issues deployment events rather than directly calling deployment tools. All tool integrations are defined in uniform files which allow for the building of integrations-as-code.
There are a lot of operations management and workflow solutions out there that provide auditing. However, most of this auditing visibility breaks once you move towards customized tool integrations. Suddenly, understanding the cause and effect of actions taken by your platform becomes a mystery.
The solution - Keptn provides tracing for continuous delivery and operations automation
Keptn stores the configuration of your environment and applications in Git following the GitOps approach. Based on that, it is easy to trace the configuration changes that were made. Besides, the Git repository is setup in a way to separate the configuration for each stage defined in the shipyard file.
Keptn was created by Dynatrace, the inventor of distributed transaction tracing. So it should be no surprise that we have embedded tracing capabilities into Keptn. All Cloud Events in Keptn use the W3C trace context headers. This enables the stitching together of individual actions into traces. This represents a new level of visibility into your continuous delivery pipeline that was not previously possible.