Measuring everything is the last major principle that DevOps-driven companies adopt. As Edwards Deming said, you can't improve what you can't measure. DevOps is an ever-evolving process and methodology that feeds off those metrics to assess and improve the overall quality of the product and the team working on it. From a tooling and operating standpoint, the following are some of the metrics most organizations look at:
How many builds are pushed to production a day
How often you need to roll back production in your production environment (this is indicated when your testing didn't catch an important issue)
The percentage of code coverage
The frequency of alerts resulting in paging the on-call engineers for immediate attention
The frequency of outages
Application performance
The Mean Time to Resolution (MTTR), which is the speed at which an outage or a performance issue can be fixed
At the organizational level, it is also interesting to measure the impact of shifting to a DevOps culture. While this is a lot harder to measure, you can consider the following points:
The amount of collaboration across teams
Team autonomy
Cross-functional work and team efforts
Fluidity in the product
How often Dev and Ops communicate
Happiness among engineers
Attitudes towards automation
Obsession with metrics
As you just learned, having a DevOps culture means, first of all, changing the traditional mindset that developers and operations are two separate silos, and making the teams collaborate more, during all phases of the software development life cycle.
In addition to a new mindset, DevOps culture requires a specific set of tools geared toward automation, deployment, and monitoring:
With AWS, Amazon offers a number of services of the PaaS and SaaS types that will let us do just that.