Unlock System Stability with DORA metrics

Unlock System Stability with DORA metrics


Is your system stable enough? Are you ready for an increased number of users today?

If these questions make you uneasy, this post is for you.

To help you feel more confident in your answers, consider the DORA framework (The DevOps Research and Assessment). You can [run a quick test] (https://dora.dev/quickcheck) to understand your software delivery performance.

DORA has identified four key metrics to indicate this:

  1. Deployment Frequency: This measures how often code is deployed to production. If you are deploying to production once a month and each deployment is stressful, you might assume that more frequent deployments would increase stress. However, the opposite is true. Regularly deploying small chunks allows you to quickly debug and understand what exactly went wrong and where exactly in case of deployment issues.

  2. Lead Time for Changes: The time it takes for a commit to reach production. This metric shows how efficient your delivery pipeline is, precisely the testing step. If you rely mainly on manual testing, this process could take days. But if automated testing is integrated into your development flow, lead time could be reduced from days to minutes.

  3. Change Failure Rate: The percentage of deployments causing production failures. To emphasize the importance of this metric, all team members should know how to monitor production logs. It would be even better if each team member could prepare a production deployment pull request. As a bonus, this approach fosters a greater sense of ownership of the product among team members.

  4. Time to Restore Service: How quickly failures in production are resolved. A small hint here: sometimes you don’t need to touch code to revert changes. You can achieve this by adding each new feature with a feature flag. In this case, disabling the feature flag can happen in seconds. Of course, in other cases, reverting a pull request might be the best option.

By embracing DORA, teams can achieve greater efficiency and reliability in their DevOps practices.