Keptn is a framework for automating continuous delivery and operations of Kubernetes applications. It uses a GitOps-based approach with event-driven automation to enable unbreakable delivery pipelines and self-healing deployments. Keptn provides autonomous control plane capabilities including automated testing, deployment, evaluation and operations through reusable services. The demo shows how keptn can onboard a service, deploy new versions through the stages, and enable automated remediation through integration with monitoring and runbook tools.
2. 2Confidential
Agenda
• Why we have to build keptn
• The problems companies are currently facing
• What keptn is and how it works
• Demo – Onboarding a Service (throughout the talk)
• Demo – Runbook Automation & Self-healing
5. Confidential 5
Collecting more evidence: https://dynatrace.ai/acsurvey
< 1 day < 1 week 1 to 2 weeks 2 to 3 weeks 3 to 4 weeks > 4 weeks
Small (11-100 employees) Medium (101-1000 employees)
Large (1001-5000 employees) Extra large (over 5000 employees)
3%
20%
35%
42%
2 days 12.5 days
95th Percentile Median
Commit Cycle Time: From Dev to Pro
Goal: 1h to Production
1 hour
9. Confidential 9
What we have seen organizations actually do
• Building Custom Integrations with OpenSource & Commercial tools for
• Deployment Pipelines
• Testing Pipelines
• Auto-Remediation
• Notifications
• Auditing
10. Confidential 10
What we have seen organizations struggle with
Quote: „Pipelines seem to become our new future unmanagable legacy code!“
• Teams stick with existing tools to protect investement
• Containing lots of custom code for tool integration, error handling, logging, ...
• Getting harder to maintain the more tools get integrated
• Pipelines becoming more complex requiring dedicated teams
• Uncoordinated deployments between pipelines resulting in unstable environments
11. Confidential 11
What is and how it works
Enterprise-grade framework for shipping and running cloud native apps
12. Confidential 12
from 10000ft
GitOps-based collaboration
Operator patterns for all logic components
Monitoring and operations as code
Built on and for Kubernetes
Event-driven and serverless
Pluggable tooling
Automated multistage unbreakable delivery pipelines
Self-healing blue/green deployments
Event-driven runbook automation
Design Principles
Core capabilities
13. Confidential 13
keptn – Conceptual Architecture
Autonomous Cloud Control Plane
GitOps
Container
Registry
Continuous
Delivery AIOps
Operations
Automation
Test
Automation
Environment Definition (shipyard file)
ChatOps
Dev Namespace Staging Namespace Production Namespace
CoreServicesPlatform
Data
Provider
14. Confidential 14
Autonomous Cloud Control Plane
event-
broker
authenticator
controlcli
keptn-channel
event-
broker-ext
configuration
deployment
evaluation
test
problem
new-artefact
Services
jenkins-
service
github-
service
service
now-
service
keptn: Phase 3 – Pushing an artifact and deploy to dev
24. Confidential 24
Use case in a nutshell
• Create project sockshop
• Onboard carts service and carts database
• Build a new artefact for the carts service and watch keptn doing the deployment
stages:
- name: "dev"
deployment_strategy: "direct"
test_strategy: "functional"
- name: "staging"
deployment_strategy: "blue_green_service"
test_strategy: "performance"
- name: "production"
deployment_strategy: "blue_green_service“
27. Confidential 27
Use case in a nutshell
• Dynatrace for Monitoring & ServiceNow for Runbook Automation
• Both tools a properly configured meaning that Dynatrace can send problem notifications and ServiceNow
can trigger runbooks
• Load generation to simulate production traffic
• Configuration change at runtime
• Problem detection by Dynatrace
• Incident creation & Workflow execution by ServiceNow
29. Confidential 29
You want to try out keptn?
• Setup keptn: https://keptn.sh/docs/0.2.0/installation/setup-keptn/
• Instructions to install keptn on a GKE cluster
• Instructions to install keptn on a AWS EKS cluster (coming soon)
•
•
•
•
•
30. Confidential 30
Contribute to the keptn project with your custom service
1. Identify the channel you want to subscribe to:
2. Write your knative service
• A reference service in TypeScript is provided on:
https://github.com/keptn/keptn-service-template
• Use the payload of the CloudEvents to implement the
functionality you want
3. Provide a service description and the channel
subscriptions in a manifest file
4. Deploy your service in the keptn namespace
•
•
•
•
•
•
jenkins-
service
github-
service
custom-
service
slack-
service
spinnake
r-service
neotys-
service
31. Confidential 31
Want to learn more?
• Learn how to use keptn: https://keptn.sh/docs/
• Clone, fork, star, contribute to keptn: https://github.com/keptn/
• Develop your own keptn-services: https://github.com/keptn/keptn-service-template
• Join our community (slack invite, meetings): https://github.com/keptn/community
• Follow us @keptnproject
• Fill out our survey: https://dynatrace.ai/acsurvey
34. Confidential 34
Autonomous Cloud Control Plane
event-
broker
authenticator
controlcli
keptn-channel
event-
broker-ext
deployment
evaluation
test
problem
Services
jenkins-
service
github-
service
service
now-
service
cli
configuration
new-artefact
keptn: Phase 1 – Creating a Project
35. Confidential 35
Autonomous Cloud Control Plane
event-
broker
authenticator
controlcli
keptn-channel
event-
broker-ext
deployment
evaluation
test
problem
Services
jenkins-
service
github-
service
service
now-
service
cli
configuration
new-artefact
keptn: Phase 2 – Onboarding a Service
36. Confidential 36
Autonomous Cloud Control Plane
event-
broker
authenticator
controlcli
keptn-channel
event-
broker-ext
configuration
deployment
evaluation
test
problem
new-artefact
Services
jenkins-
service
github-
service
service
now-
service
keptn: Phase 3 – Pushing an artifact and deploy to dev