How Keptn standardizes access to observability data for Kubernetes deployments
Introduction to Keptn
Keptn implements observability for deployments. It seamlessly integrates with deployment tools such as ArgoCD, Flux, and Gitlab to bring application awareness to your Kubernetes cluster.
These standard deployment tools do an excellent job at deploying applications but do not handle all issues that are required to ensure that your deployment is usable. Keptn “wraps” a standard Kubernetes deployment with the capability to automatically handle issues before and after the actual deployment.
Keptn includes multiple features that can be implemented independently or together. It targets three main use cases: Custom metrics, Observability, and Release lifecycle management.
The Custom Keptn metrics feature extends the functionality of Kubernetes metrics:
Allows you to define metrics from multiple data sources in your Kubernetes cluster.
Supports deployment tools like Argo, Flux, KEDA, HPA, or Keptn for automated decision-making based on observability data.
Handles observability data from multiple instances of multiple observability solutions – Prometheus, Dynatrace, Datadog and others – as well as data that comes directly from your cloud provider such as AWS, Google, or Azure.
The Keptn metrics server unifies and standardizes access to data from various sources, simplifying configuration and integration into a single set of metrics.
Keptn ensures observability for Kubernetes deployments by creating a comprehensive trace of all Kubernetes activities within a deployment. Keptn observability makes it easy to understand deployment durations and failures across multiple deployment strategies.
Provides observability data for standard Kubernetes workload resources as well as KeptnApp resources (which connect logically related workloads) using different deployment strategies.
Captures DORA metrics and exposes them as OpenTelemetry metrics out of the box.
Reports traces and custom Keptn metrics from configured data providers using OpenTelemetry.
Enables monitoring of new logs from log monitoring solutions.
Information can be displayed on standard dashboard tools like Grafana.
Keptn is tool- and vendor neutral and does not depend on particular tooling. Keptn emits signals at every stage (Kubernetes events, CloudEvents, and OpenTelemetry metrics and traces) to ensure that your deployments are observable.
Release lifecycle management
The Release lifecycle management tools run in conjunction with the standard Kubernetes deployment tools to make deployments more robust.
These tools run checks and tasks before or after deployment initiation.
Pre-deployment tasks such as checking for dependent services, image scanning, and setting the cluster to be ready for the deployment.
Pre-deployment evaluations such as checking whether the cluster has enough resources for the deployment.
Post-deployment tasks such as triggering tests, triggering a deployment to another cluster, or sending notifications that the deployment succeeded or failed.
Post-deployment evaluations to evaluate the deployment, evaluate test results, or confirm software health against SLOs like performance and user experience.
KeptnTask resources that are defined by
at the same level (either pre-deployment or post-deployment) run in parallel.
Task sequences that are not part of the lifecycle workflow
should be handled by the pipeline engine tools rather than Keptn.
KeptnTask resource can be defined to run multiple executables
(functions, programs, and scripts)
that are part of the lifecycle workflow.
The executables within a
run in sequential order.
Keptn tasks and evaluations can be run for either a Kubernetes workload (single service) resource or a KeptnApp resource, which is a single, cohesive unit that groups multiple workloads.
For information about the history of the Keptn project, see the Keptn Lifecycle Toolkit is now Keptn!. blog.
How Keptn orchestrates pre- and post-deployment evaluations and tasks
Enhance your deployment with custom Keptn metrics