The Dynatrace Software Intelligence Platform already comes with release analysis, version awareness, and Service Level Objective (SLO) support as part of the Dynatrace Cloud Automation solution, helping DevOps and SRE teams automate the delivery and operational decisions. This week my colleague Michael Winkler announced the general availability of Cloud Automation quality gates, a new capability that aims to provide answer-driven release validation as part of your delivery process.
In this blog, I want to guide you through the steps of implementing release quality gates in your delivery automation or as we often call it “Shift-Left SLOs with Quality Gates”. We have seen users who joined our preview program “speed up their release validation by 90%”. And it’s not just the release validation. Many of our users are performance engineers using Cloud Automation Quality Gates to automate the analysis of their performance and load tests – saving hours of analysis time for each test they run. Don’t just take my word for it, hear from Mike Kobush, Performance Engineer at NAIC, who gave us a tour of his performance test automation using Dynatrace Cloud Automation.
The innovative technology powering these recent and future use cases comes from Keptn, our recognized CNCF open-source project. Here is a good overview of how Dynatrace users are now benefiting from this stream of innovation:
If you want more information on Keptn, then I suggest joining the Keptn Open Source community and help us drive innovation that benefits both the open-source project and Dynatrace Cloud Automation Solution. For an overview of Keptn, I can also recommend watching our cdCON talk Behind the Scenes of Keptn: Event-Driven Delivery & Ops Orchestration.
Ready to create your first release validation automation? Whether it’s used to automate your test analysis or fully integrated into your delivery pipeline, this blog will guide you through it!
Let’s Start: Answer driven automation – your full video tutorial
If this is blog is TLDR (Too Long Didn’t Read) I have good news for you. Simply watch the following video tutorial on YouTube, or on Dynatrace University (including slides) where I cover the following topics:
- 0:00 – Intro to Dynatrace Cloud Automation Use Cases
- 01:19 – Introducing Shift-Left SLO Quality Gates
- 03:24 – Pre-Requisites
- 05:00 – Quick Start – Connect Cloud Automation
- 07:58 – Quick Start – Automatic Quality Gates
- 18:48 – GitOps – Codify Quality Gates
- 29:10 – GitOps – Dashboard based Automation
- 37:13 – Integrate with Delivery
- 40:08 – Expand to more use cases
Watch my tutorial and learn everything from getting started via GitOps to integrate with your CI/CD
As the video alone shows you every step in detail, including live demos, I will just give you a high-level overview and the outcomes of the individual sections:
Pre-requisite: Cloud Automation SaaS Tenant
If you’re a Dynatrace user and want to leverage automated SLO-based quality gates, then you need to request a Cloud Automation SaaS Tenant through your Dynatrace representative. This could be your account team, Dynatrace One, or support.
While I think every user will benefit from this new feature make sure you meet the following criteria to really reap the benefits:
- Dynatrace requirements
- You have automated tests as part of delivery, monitored by Dynatrace, and you want to automatically validate to speed up your delivery pipeline (Lead Time)
- You run load tests monitored with Dynatrace and you want to automatically validate to eliminate the manual analysis effort
Quick Start: Answer-driven quality gates in 5 minutes
The first goal is to get a default automated quality gate for one of your services monitored with Dynatrace. It should be a service you regularly run tests against so we can automate the analysis of the data captured during the test runs with Cloud Automation Quality Gates.
It only takes two steps, as you can see in the QuickStart section of my video tutorial:
- Connect your Cloud Automation tenant with your Dynatrace environment
- Tag a service with keptn_managed and keptn_service:<servicename>
In the quick start, we also talk about how to trigger an evaluation of a timeframe. This can either be done through the Keptn CLI (Command Line Interface) or through the Keptn API. The screenshot below demonstrates how to trigger an evaluation for 30 minutes, adding additional metadata to the evaluation and how it then looks like in the Cloud Automation UI:
GitOps: Cloud automation as code
To achieve true automation, we can’t rely on configurations done manually through UIs. The goal is to store and manage all configurations in a version control system such as Git. That’s what Cloud Automation does: SLIs, SLOs, Monitoring Definition, Automation Sequences, Tests, Deployment Definitions, etc. are stored in a Git repository that Cloud Automation holds internally by default.
To harness the power of this Git repo, we can connect it to a Git repo residing in your Git service of choice, e.g., GitHub, GitLab, Azure, Bitbucket, and more. This enables you and your development teams to modify configuration files used by Cloud Automation through their regular way of work, for example adding new SLOs through a Pull Request process.
For a more detailed explanation on how to set up an upstream, as well as how to then modify SLIs or SLOs and see them reflected in your next evaluation run as shown in the image below, give the GitOps section on Codify Quality Gates of my tutorial a watch.
A very popular way to define quality gates is through Dynatrace dashboards. My video tutorial demonstrates the steps of using SLO dashboards, which ultimately are generating SLI and SLO YAML files that end up in the Git repository. This means that even this approach is fully GitOps compliant!
If you want to learn more about the dashboard approach make sure to check out my YouTube Tutorial on Building SLO-based Quality Gates in 5 Minutes.
Integrate with delivery
Knowing how to trigger Dynatrace Cloud Automation Quality Gates through the CLI and the API makes us ready to integrate it with your existing DevOps delivery tools such as Jenkins, GitLab, Harness, Tekton, Azure DevOps, Bamboo, or others. The integration allows you to bring automated release validation into your existing pipelines – using the result of Cloud Automation Quality Gates to make automated decisions on whether to stop or continue your delivery process.
Watch the Integrate with Jenkins and other CI/CD tools section of my YouTube tutorial to learn more about how you can integrate this in your environment:
If you need help with integrating this with your tools, feel free to reach out to your Dynatrace team or get in contact with your Autonomous Cloud Enablement Practice team which has helped many of our customers bring cloud automation into their DevOps tools.
Expand to more use cases
Automated release validation through quality gates is just the start. But these use cases are to be enabled by Cloud Automation in the not-so-distant future:
- Monitoring as Code (Dynatrace Monaco)
- Automatically configure Dynatrace, e.g., dashboards, management zones, metrics
- Performance as a Self-Service (JMeter, Neotys, Locust,)
- Automatically execute and analyze performance tests based on SLOs
- Progressive Delivery (Helm, Argo, Tekton, Harness, GitLab …)
- Automate multi-stage delivery with canaries and feature flags
- Auto Remediation (Ansible, ServiceNow, Generic Executor, …)
- Automatically respond to problem tickets by executing remediation actions
I cover some of the details in the Expand section of my YouTube tutorial:
If you have specific use cases or want to learn more about what’s possible and coming up, make sure to contact your Dynatrace team.
Friends don’t let friends build their own cloud automation
It’s as simple as the headline: “Friends don’t let friends build their own cloud automation!”.
Your challenge as a DevOps or SRE engineer in the coming months will be to implement many of the use cases listed under our Cloud Automation solution. We have already brought you, release analysis, version awareness, and SLO. Now we bring you Quality Gates to automate release validation and coming up are those relevant expansions as we move towards a more cloud-native delivery and operations model; automating performance and resiliency engineering, progressive delivery, and auto-remediation. Stay tuned, stay connected, stay healthy!
Release Validation Product Tour
Learn how Dynatrace prevents bad quality code from reaching production with continuous release validation. Automatically evaluate code against pre-defined quality criteria and only progress code when it achieves the desired quality score.