SlideShare a Scribd company logo
Andreas Grabner
DevOps Activist @ Dynatrace
DevRel & Maintainer @ Keptn
@grabnerandi, https://linkedin.at/grabnerandi
@keptnProject, https://www.keptn.sh
“Don’t Deploy into the Dark: DORA Metrics for K8s” aka
Observability and Orchestration of your Deployments
Taming the operational complexity of GitOps with Keptn
What is DORA?
DORA: Measuring DevOps Efficiency
?
Deployment Frequency
How often an organization successfully releases to production
Lead Time for Changes
The amount of time it takes a commit to get into production
Change Failure Rate
The percentage of deployments causing a failure in production
Time to Restore Service
How long it takes an organization to recover from a failure in production
Read More: https://www.allstacks.com/blog/dora-metrics
Google’s 4 Keys BluePrint: 4 Challenges to address when providing a K8s native implementation
#1: Data Retrieval
PUSH: needs pipeline updates
Or PULL: needs access to API
Hard to achieve 100% coverage!
#3: Storage
Requires a Custom data store
#4: Analytics
Custom dashboarding.
Not using any open standards!
#2: App-Context
Manual mapping of pipeline,
ticket, PR … data to “an app”
https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance
KeptnV1: General Purpose Orchestration for Cloud and Non-Cloud-Native Tooling on K8s
2019 2023
2022
2021
2020
KeptnV1
Release
Keptn 1.x LTS
Releases
Strengthen core use cases
(Quality Gates)
Core Use Case: Quality Gates & WebHook Core Use Case: Delivery Orchestration Core Use Case: Auto Remediation
But in the recent past, Cloud Native GitOps has shifted complexity from Dev to Ops
Complex Dev & Continuous Integration (CI): Composition, Validation, Security
Feature A
Feature B
Backend
Svc
Authentication
Service
Frontend
Components
Service A (v1)
Service B (v2, v3)
Service C (v1)
Service D (v3,v4)
Infra & Cloud (vY)
Svc A (v1)
Svc B (v2)
Svc C (v1)
Svc D (v3)
Istio/Prom/
xxx X
Monolithic
World
Cloud
Native
World
Simpler Ops: Deploy, observe and operate a well-defined app
Simpler Dev: Service-based Continuous Delivery (CD) Complex Ops: Composition, Validation, Security, Observability, Orchestration
Svc A (v1)
Svc B (v3)
Svc C (v1)
Svc D (v3)
Istio/Prom/
xxx Y
Well-defined Infra, e.g: VMWare, EC2 …
with diff flavors (EKS, AKS, OpenShift …)
Test Security
Test, security, validation not part of GitOps
Validate
This shift also brought us a lot of feedback for KeptnV1
Single Pod-Ready != Application Ready
That’s why 90% Keptn Users adopted our SLO-based Validation
Zero Integration
It’s hard integrating new tools into EVERY pipeline. Especially in
organizations with > 800 Global Dev Teams. Need a zero-integration
approach
Configuration as CRDs
Many teams are adopting ArgoCD, Flux … non CRDs in external
repository doesn’t work in a “GitOps world”
OpenObservability
The CNCF community has agreed on OpenTelemetry and
Prometheus for observability data. Why store it in MongoDB?
Application Awareness
While we deploy individual workloads (=microservices) we need
visibility into applications that are made up of one or many services
Solution: A K8s Operator* to Observe and Orchestrate App-aware Workload Lifecycle
My-Application:2.0 **
Frontend-Svc:2.0
Backend-Svc:1.5
Storage-Svc:1.0
Post
Pre
Post
Pre
Post
Pre
Timespan & Result for each single deployment
Pre-App-Deployment
Post-App-Deployment
Timespan Time & Result for whole app deployment
Tasks: Dependency, Env Health,
Certificates, Approval, ...
Evaluations: SLOs, Error
Budgets ...
Timespan & result of
each task / evaluation
Tasks: Tests, Security Scans,
Cleanups, Promote ...
Evaluations: SLOs, User
Experience, Adoption ...
Timespan & result of
each task / evaluation
* K8s Operators can leverage K8s webhooks and extend K8s scheduler for pre- and post-deployment hooks
** K8s doesn’t yet have a standard application concept but Delivery SIG is working on it
Observe: Metrics (DORA) & Traces
Orchestrate: Pre-Deploy Orchestrate: Post-Deploy
Introducing Keptn Lifecycle Toolkit:
App-aware Workload Lifecycle Observability and Orchestration
kind: Deployment
name: simplenode
...
template:
metadata:
annotations:
keptn.sh/workload: simplenode
keptn.sh/version: 3.0.1
keptn.sh/pre-tasks: notify
keptn.sh/pre-eval: check-error-budget
keptn.sh/post-tasks: api-tests, notify
keptn.sh/post-eval: evaluate-slo
...
kind: KeptnApp
name: simplenode-app
spec:
workloads:
- name: simplenode-frontend-svc
version: 3.0.1
- name: simplenode-backend-svc
version: 2.0.1
pre-task: check-approval
pre-eval: check-error-budget
post-tasks: functests, notify
post-eval: evaluate-slo
Example from upcoming Live Demo: Single deployment with Keptn annotations, Keptn Tasks and optional Keptn App
Step 1: Annotate your Deployment & StatefulSets! Step 2: Define Keptn Tasks and Evaluations!
kind: KeptnTaskDefinition
name: notify
...
spec:
function: |
let text = Deno.env.get("SECURE_DATA");
let context = Deno.env.get("CONTEXT");
let resp = await fetch("https://hooks.slack.com/xxxx");
console.log("Sending slack message")
Step 3: (optional) KeptnApp for app-awareness !
kind: KeptnEvaluation
name: evaluate-slo
Spec:
source: prometheus
objectives:
- name: cpu capacity
query: "sum(kube_node_status_capacity{resource='cpu’} "
evaluationTarget: ">4"
Keptn Lifecycle Toolkit: App-aware Workload Lifecycle OpenTelemetry Trace
Pre-
App
Post-
App
Application
Post-
WL 1
Pre-
WL 1
Pre-App Pre-WL 1 Deploy 1 Post-WL 1 Post-App
Pre-WL X Deploy X Post-WL X
$ kubectl apply *.yaml
Workload
Keptn Lifecycle Toolkit: App-aware Workload Lifecycle Prometheus Metrics (DORA Metrics)
Keptn Lifecycle Toolkit: Keptn CRDs visualized in ArgoCD
Live Demo
Keptn Lifecycle Toolkit: Observing and Orchestrating Lifecycle of K8s Deployments
Your GitOps
Your Deployment:
image: mysvc:1.0
Your Observability tool
Dev Staging Prod
Visibility across all stages using observability standards
promote promote
deployment-traces deployment-traces
notify notify notify
on-pre: dependency
Keptn-Task: (tooling for cluster)
name: dependency
function: exec.checkDBAvail()
---
name: notify
function: slack.send()
---
name: validate_slo
promql: errors<5% && rt<100ms
Keptn-App: (app-scope checks)
name: mybusinessapp
workloads: mysvc,yoursvc,xsvc
on-post: validate_slo,notify
on-post-success: promote
Extend your GitOps
Day2Ops
on-pre-deploy
dependency
on-pre-deploy
dependency
on-pre-deploy
dependency
approval
sync
on-post-deploy
api_tests
validate_slo
on-post-deploy
perf_tests
security
validate_slo
on-post-deploy
func_tests
security
validate_slo
cleanup
$
$ git add “keptn CRD files”
$ git commit
$ kubectl apply –f install_keptn.yaml
Keptn Lifecycle Toolkit installed!
Keptn Lifecycle Toolkit tames the complexity that GitOps shifted towards Ops
Cloud
Native
World
Simpler Dev: Service-based Continuous Delivery (CD) Simpler Ops: Deploy, observe and operate a well-defined app
Service A (v1)
Service B (v2, v3)
Service C (v1)
Service D (v3,v4)
Infra & Cloud (vY)
Svc A (v1)
Svc B (v2)
Svc C (v1)
Svc D (v3)
Istio/Prom/
xxx X
Svc A (v1)
Svc B (v3)
Svc C (v1)
Svc D (v3)
Istio/Prom/
xxx Y
-native on any flavor and tooling
Extends GitOps with Test, security, validation
Declarative in Git
Where is the journey heading for the Keptn project and which Keptn to choose?
2023
If your toolstack is … … and you need …
Automated Observability into your K8s Deployments
Deployment policy enforcements natively in K8s
Observability-based based application Health Checks
A custom DevOps orchestration engine
Integrate Quality Gates into your existing CI/CD
Application- and not just workload-awareness
… then go with
Keptn 1.x LTS
Releases
KLT
Keptn Lifecycle Toolkit
Andreas Grabner
DevOps Activist @ Dynatrace
DevRel & Maintainer @ Keptn
@grabnerandi, https://linkedin.at/grabnerandi
@keptnProject, https://www.keptn.sh
Observability and Orchestration of your Deployments
Taming the operational complexity of GitOps with Keptn
Ad

Recommended

Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
Andreas Grabner
 
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
Andreas Grabner
 
Reliability Pipelines With Keptn Quality Gates
Reliability Pipelines With Keptn Quality Gates
Paul Balogh
 
Data protection in a kubernetes-native world
Data protection in a kubernetes-native world
LibbySchulze
 
Building Autonomous Operations for Kubernetes with keptn
Building Autonomous Operations for Kubernetes with keptn
Johannes Bräuer
 
kubernetesforbeginners.pptx
kubernetesforbeginners.pptx
BaskarKannanK
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
Weaveworks
 
How kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updated
Shikha Srivastava
 
Keptn- A Cloud-native application life-cycle orchestration.pdf
Keptn- A Cloud-native application life-cycle orchestration.pdf
Knoldus Inc.
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
Weaveworks
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Jürgen Etzlstorfer
 
Overcoming (organizational) scalability issues in your Prometheus ecosystem
Overcoming (organizational) scalability issues in your Prometheus ecosystem
QAware GmbH
 
Cluster management with Kubernetes
Cluster management with Kubernetes
Satnam Singh
 
Free GitOps Workshop
Free GitOps Workshop
Weaveworks
 
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC
 
Adding Security to your SLO-based Release Validation with Keptn
Adding Security to your SLO-based Release Validation with Keptn
Andreas Grabner
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators
Giacomo Tirabassi
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
SIGHUP
 
Kubernetes Internals
Kubernetes Internals
Shimi Bandiel
 
Kubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slides
Weaveworks
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case Study
Denys Vasyliev
 
Kubernetes for Java Developers
Kubernetes for Java Developers
Anthony Dahanne
 
Container orchestration and microservices world
Container orchestration and microservices world
Karol Chrapek
 
Kash Kubernetified
Kash Kubernetified
Michael Wojcikiewicz
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
Daniel Bryant
 
Cloud native development without the toil
Cloud native development without the toil
Ambassador Labs
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
PT Datacomm Diangraha
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
Andreas Grabner
 
Release Readiness Validation with Keptn for Austrian Online Banking Software
Release Readiness Validation with Keptn for Austrian Online Banking Software
Andreas Grabner
 

More Related Content

Similar to Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments (20)

Keptn- A Cloud-native application life-cycle orchestration.pdf
Keptn- A Cloud-native application life-cycle orchestration.pdf
Knoldus Inc.
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
Weaveworks
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Jürgen Etzlstorfer
 
Overcoming (organizational) scalability issues in your Prometheus ecosystem
Overcoming (organizational) scalability issues in your Prometheus ecosystem
QAware GmbH
 
Cluster management with Kubernetes
Cluster management with Kubernetes
Satnam Singh
 
Free GitOps Workshop
Free GitOps Workshop
Weaveworks
 
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC
 
Adding Security to your SLO-based Release Validation with Keptn
Adding Security to your SLO-based Release Validation with Keptn
Andreas Grabner
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators
Giacomo Tirabassi
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
SIGHUP
 
Kubernetes Internals
Kubernetes Internals
Shimi Bandiel
 
Kubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slides
Weaveworks
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case Study
Denys Vasyliev
 
Kubernetes for Java Developers
Kubernetes for Java Developers
Anthony Dahanne
 
Container orchestration and microservices world
Container orchestration and microservices world
Karol Chrapek
 
Kash Kubernetified
Kash Kubernetified
Michael Wojcikiewicz
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
Daniel Bryant
 
Cloud native development without the toil
Cloud native development without the toil
Ambassador Labs
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
PT Datacomm Diangraha
 
Keptn- A Cloud-native application life-cycle orchestration.pdf
Keptn- A Cloud-native application life-cycle orchestration.pdf
Knoldus Inc.
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
Weaveworks
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Jürgen Etzlstorfer
 
Overcoming (organizational) scalability issues in your Prometheus ecosystem
Overcoming (organizational) scalability issues in your Prometheus ecosystem
QAware GmbH
 
Cluster management with Kubernetes
Cluster management with Kubernetes
Satnam Singh
 
Free GitOps Workshop
Free GitOps Workshop
Weaveworks
 
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC 2018 - Patroni: Kubernetes-native PostgreSQL companion
PGConf APAC
 
Adding Security to your SLO-based Release Validation with Keptn
Adding Security to your SLO-based Release Validation with Keptn
Andreas Grabner
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators
Giacomo Tirabassi
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
SIGHUP
 
Kubernetes Internals
Kubernetes Internals
Shimi Bandiel
 
Kubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slides
Weaveworks
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case Study
Denys Vasyliev
 
Kubernetes for Java Developers
Kubernetes for Java Developers
Anthony Dahanne
 
Container orchestration and microservices world
Container orchestration and microservices world
Karol Chrapek
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
Daniel Bryant
 
Cloud native development without the toil
Cloud native development without the toil
Ambassador Labs
 
Kubernetes Architecture - beyond a black box - Part 1
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
PT Datacomm Diangraha
 

More from Andreas Grabner (20)

KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
Andreas Grabner
 
Release Readiness Validation with Keptn for Austrian Online Banking Software
Release Readiness Validation with Keptn for Austrian Online Banking Software
Andreas Grabner
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOps
Andreas Grabner
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Andreas Grabner
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
Andreas Grabner
 
Keptn - Automated Operations & Continuous Delivery for k8s
Keptn - Automated Operations & Continuous Delivery for k8s
Andreas Grabner
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Andreas Grabner
 
Top Performance Problems in Distributed Architectures
Top Performance Problems in Distributed Architectures
Andreas Grabner
 
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Andreas Grabner
 
Monitoring as a Self-Service in Atlassian DevOps Toolchain
Monitoring as a Self-Service in Atlassian DevOps Toolchain
Andreas Grabner
 
How to explain DevOps to your mom
How to explain DevOps to your mom
Andreas Grabner
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 
AWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environments
Andreas Grabner
 
DevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with Dynatrace
Andreas Grabner
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
Andreas Grabner
 
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Andreas Grabner
 
Top Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your Pipeline
Andreas Grabner
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Andreas Grabner
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance Problems
Andreas Grabner
 
OOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The World
Andreas Grabner
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
Andreas Grabner
 
Release Readiness Validation with Keptn for Austrian Online Banking Software
Release Readiness Validation with Keptn for Austrian Online Banking Software
Andreas Grabner
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOps
Andreas Grabner
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Andreas Grabner
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
Andreas Grabner
 
Keptn - Automated Operations & Continuous Delivery for k8s
Keptn - Automated Operations & Continuous Delivery for k8s
Andreas Grabner
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Andreas Grabner
 
Top Performance Problems in Distributed Architectures
Top Performance Problems in Distributed Architectures
Andreas Grabner
 
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Andreas Grabner
 
Monitoring as a Self-Service in Atlassian DevOps Toolchain
Monitoring as a Self-Service in Atlassian DevOps Toolchain
Andreas Grabner
 
How to explain DevOps to your mom
How to explain DevOps to your mom
Andreas Grabner
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 
AWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environments
Andreas Grabner
 
DevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with Dynatrace
Andreas Grabner
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
Andreas Grabner
 
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Andreas Grabner
 
Top Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your Pipeline
Andreas Grabner
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Andreas Grabner
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance Problems
Andreas Grabner
 
OOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The World
Andreas Grabner
 
Ad

Recently uploaded (20)

Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
WSO2
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Simplify Insurance Regulations with Compliance Management Software
Simplify Insurance Regulations with Compliance Management Software
Insurance Tech Services
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Zoho Creator Solution for EI by Elsner Technologies.docx
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
University Campus Navigation for All - Peak of Data & AI
University Campus Navigation for All - Peak of Data & AI
Safe Software
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Digital Transformation: Automating the Placement of Medical Interns
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
How Automation in Claims Handling Streamlined Operations
How Automation in Claims Handling Streamlined Operations
Insurance Tech Services
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
 
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
WSO2
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Simplify Insurance Regulations with Compliance Management Software
Simplify Insurance Regulations with Compliance Management Software
Insurance Tech Services
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Zoho Creator Solution for EI by Elsner Technologies.docx
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
University Campus Navigation for All - Peak of Data & AI
University Campus Navigation for All - Peak of Data & AI
Safe Software
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Digital Transformation: Automating the Placement of Medical Interns
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
How Automation in Claims Handling Streamlined Operations
How Automation in Claims Handling Streamlined Operations
Insurance Tech Services
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
 
Ad

Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments

  • 1. Andreas Grabner DevOps Activist @ Dynatrace DevRel & Maintainer @ Keptn @grabnerandi, https://linkedin.at/grabnerandi @keptnProject, https://www.keptn.sh “Don’t Deploy into the Dark: DORA Metrics for K8s” aka Observability and Orchestration of your Deployments Taming the operational complexity of GitOps with Keptn
  • 2. What is DORA? DORA: Measuring DevOps Efficiency ? Deployment Frequency How often an organization successfully releases to production Lead Time for Changes The amount of time it takes a commit to get into production Change Failure Rate The percentage of deployments causing a failure in production Time to Restore Service How long it takes an organization to recover from a failure in production Read More: https://www.allstacks.com/blog/dora-metrics
  • 3. Google’s 4 Keys BluePrint: 4 Challenges to address when providing a K8s native implementation #1: Data Retrieval PUSH: needs pipeline updates Or PULL: needs access to API Hard to achieve 100% coverage! #3: Storage Requires a Custom data store #4: Analytics Custom dashboarding. Not using any open standards! #2: App-Context Manual mapping of pipeline, ticket, PR … data to “an app” https://cloud.google.com/blog/products/devops-sre/using-the-four-keys-to-measure-your-devops-performance
  • 4. KeptnV1: General Purpose Orchestration for Cloud and Non-Cloud-Native Tooling on K8s 2019 2023 2022 2021 2020 KeptnV1 Release Keptn 1.x LTS Releases Strengthen core use cases (Quality Gates) Core Use Case: Quality Gates & WebHook Core Use Case: Delivery Orchestration Core Use Case: Auto Remediation
  • 5. But in the recent past, Cloud Native GitOps has shifted complexity from Dev to Ops Complex Dev & Continuous Integration (CI): Composition, Validation, Security Feature A Feature B Backend Svc Authentication Service Frontend Components Service A (v1) Service B (v2, v3) Service C (v1) Service D (v3,v4) Infra & Cloud (vY) Svc A (v1) Svc B (v2) Svc C (v1) Svc D (v3) Istio/Prom/ xxx X Monolithic World Cloud Native World Simpler Ops: Deploy, observe and operate a well-defined app Simpler Dev: Service-based Continuous Delivery (CD) Complex Ops: Composition, Validation, Security, Observability, Orchestration Svc A (v1) Svc B (v3) Svc C (v1) Svc D (v3) Istio/Prom/ xxx Y Well-defined Infra, e.g: VMWare, EC2 … with diff flavors (EKS, AKS, OpenShift …) Test Security Test, security, validation not part of GitOps Validate
  • 6. This shift also brought us a lot of feedback for KeptnV1 Single Pod-Ready != Application Ready That’s why 90% Keptn Users adopted our SLO-based Validation Zero Integration It’s hard integrating new tools into EVERY pipeline. Especially in organizations with > 800 Global Dev Teams. Need a zero-integration approach Configuration as CRDs Many teams are adopting ArgoCD, Flux … non CRDs in external repository doesn’t work in a “GitOps world” OpenObservability The CNCF community has agreed on OpenTelemetry and Prometheus for observability data. Why store it in MongoDB? Application Awareness While we deploy individual workloads (=microservices) we need visibility into applications that are made up of one or many services
  • 7. Solution: A K8s Operator* to Observe and Orchestrate App-aware Workload Lifecycle My-Application:2.0 ** Frontend-Svc:2.0 Backend-Svc:1.5 Storage-Svc:1.0 Post Pre Post Pre Post Pre Timespan & Result for each single deployment Pre-App-Deployment Post-App-Deployment Timespan Time & Result for whole app deployment Tasks: Dependency, Env Health, Certificates, Approval, ... Evaluations: SLOs, Error Budgets ... Timespan & result of each task / evaluation Tasks: Tests, Security Scans, Cleanups, Promote ... Evaluations: SLOs, User Experience, Adoption ... Timespan & result of each task / evaluation * K8s Operators can leverage K8s webhooks and extend K8s scheduler for pre- and post-deployment hooks ** K8s doesn’t yet have a standard application concept but Delivery SIG is working on it Observe: Metrics (DORA) & Traces Orchestrate: Pre-Deploy Orchestrate: Post-Deploy
  • 8. Introducing Keptn Lifecycle Toolkit: App-aware Workload Lifecycle Observability and Orchestration kind: Deployment name: simplenode ... template: metadata: annotations: keptn.sh/workload: simplenode keptn.sh/version: 3.0.1 keptn.sh/pre-tasks: notify keptn.sh/pre-eval: check-error-budget keptn.sh/post-tasks: api-tests, notify keptn.sh/post-eval: evaluate-slo ... kind: KeptnApp name: simplenode-app spec: workloads: - name: simplenode-frontend-svc version: 3.0.1 - name: simplenode-backend-svc version: 2.0.1 pre-task: check-approval pre-eval: check-error-budget post-tasks: functests, notify post-eval: evaluate-slo Example from upcoming Live Demo: Single deployment with Keptn annotations, Keptn Tasks and optional Keptn App Step 1: Annotate your Deployment & StatefulSets! Step 2: Define Keptn Tasks and Evaluations! kind: KeptnTaskDefinition name: notify ... spec: function: | let text = Deno.env.get("SECURE_DATA"); let context = Deno.env.get("CONTEXT"); let resp = await fetch("https://hooks.slack.com/xxxx"); console.log("Sending slack message") Step 3: (optional) KeptnApp for app-awareness ! kind: KeptnEvaluation name: evaluate-slo Spec: source: prometheus objectives: - name: cpu capacity query: "sum(kube_node_status_capacity{resource='cpu’} " evaluationTarget: ">4"
  • 9. Keptn Lifecycle Toolkit: App-aware Workload Lifecycle OpenTelemetry Trace Pre- App Post- App Application Post- WL 1 Pre- WL 1 Pre-App Pre-WL 1 Deploy 1 Post-WL 1 Post-App Pre-WL X Deploy X Post-WL X $ kubectl apply *.yaml Workload
  • 10. Keptn Lifecycle Toolkit: App-aware Workload Lifecycle Prometheus Metrics (DORA Metrics)
  • 11. Keptn Lifecycle Toolkit: Keptn CRDs visualized in ArgoCD
  • 13. Keptn Lifecycle Toolkit: Observing and Orchestrating Lifecycle of K8s Deployments Your GitOps Your Deployment: image: mysvc:1.0 Your Observability tool Dev Staging Prod Visibility across all stages using observability standards promote promote deployment-traces deployment-traces notify notify notify on-pre: dependency Keptn-Task: (tooling for cluster) name: dependency function: exec.checkDBAvail() --- name: notify function: slack.send() --- name: validate_slo promql: errors<5% && rt<100ms Keptn-App: (app-scope checks) name: mybusinessapp workloads: mysvc,yoursvc,xsvc on-post: validate_slo,notify on-post-success: promote Extend your GitOps Day2Ops on-pre-deploy dependency on-pre-deploy dependency on-pre-deploy dependency approval sync on-post-deploy api_tests validate_slo on-post-deploy perf_tests security validate_slo on-post-deploy func_tests security validate_slo cleanup $ $ git add “keptn CRD files” $ git commit $ kubectl apply –f install_keptn.yaml Keptn Lifecycle Toolkit installed!
  • 14. Keptn Lifecycle Toolkit tames the complexity that GitOps shifted towards Ops Cloud Native World Simpler Dev: Service-based Continuous Delivery (CD) Simpler Ops: Deploy, observe and operate a well-defined app Service A (v1) Service B (v2, v3) Service C (v1) Service D (v3,v4) Infra & Cloud (vY) Svc A (v1) Svc B (v2) Svc C (v1) Svc D (v3) Istio/Prom/ xxx X Svc A (v1) Svc B (v3) Svc C (v1) Svc D (v3) Istio/Prom/ xxx Y -native on any flavor and tooling Extends GitOps with Test, security, validation Declarative in Git
  • 15. Where is the journey heading for the Keptn project and which Keptn to choose? 2023 If your toolstack is … … and you need … Automated Observability into your K8s Deployments Deployment policy enforcements natively in K8s Observability-based based application Health Checks A custom DevOps orchestration engine Integrate Quality Gates into your existing CI/CD Application- and not just workload-awareness … then go with Keptn 1.x LTS Releases KLT Keptn Lifecycle Toolkit
  • 16. Andreas Grabner DevOps Activist @ Dynatrace DevRel & Maintainer @ Keptn @grabnerandi, https://linkedin.at/grabnerandi @keptnProject, https://www.keptn.sh Observability and Orchestration of your Deployments Taming the operational complexity of GitOps with Keptn

Editor's Notes

  • #2: Find more: https://www.keptn.sh/ https://lifecycle.keptn.sh/ https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/ https://twitter.com/keptnProject https://slack.keptn.sh
  • #19: Find more: https://www.keptn.sh/ https://lifecycle.keptn.sh/ https://github.com/keptn-sandbox/klt-on-k3s-with-argocd/ https://twitter.com/keptnProject https://slack.keptn.sh