Rubrics and Service Maturity
Rubrics let you define what a mature service looks like for your organization. They give you the ability to evaluate your services and measure their adherence to your preferred best practices. Rubrics can be used to drive production readiness and promote operational excellence in a variety of specific ways:
- Increase the overall maturity of your entire microservices architecture
- Increase security and reliability
- Ensure consistency across your services
- Enforce quality standards within your organization
Similar to how rubrics are used in schools to evaluate students’ assignments based on a set of predetermined criteria, your rubric in OpsLevel allows you to measure your services’ maturity level based on customizable checks.
Categories, Levels, and Checks
In the above example image, each service has a corresponding level assigned to it. This level represents the overall grade / current maturity of that service.
But how is this level calculated? To understand that, we first need to setup our Rubric which can be found under the Service Maturity tab in the main menu.
The above is an example of a rubric that does not yet contain any checks. In this rubric, we can see that levels are represented as columns and categories as rows.
Each level is broken down into categories of checks, which must all be passed before the level is achieved. Categories organize service maturity into different subdomains (for example, security or reliability) and let you group related checks together. Categories and levels are fully customizable. See the Categories and Levels documentation for additional information.
Checks added to individual cells inside the rubric then correspond to that category and level.
If a service passes all of the checks in a level, then the service “passes” that level. For example, if a service passed all of the checks in the Bronze column, then it is considered a Bronze service. If a service passes all of the checks in the Silver column, in addition to the checks in the Bronze column, then it would be a Silver service. To learn more about how services are graded, check out the Maturity Report documentation.
When your OpsLevel account is created, you will start out with a simple out-of-the-box rubric containing levels and categories that can be customized. To start seeing rubrics in action, you can start by adding a check to your rubric. Checks can be added to the rubric by simply clicking the ‘Add Check’ button inside of the cell corresponding to the level and category you want the check to apply to.
Let’s create a check to verify that every service has an owner. This check could fall under the Reliability category since it will help engineers quickly determine who owns what during an incident. This check is a basic requirement for all services so it should be in the Bronze level.
After clicking ‘Add Check’, we will select ‘Service Ownership’ for the check type which will verify whether or not our services have an owner defined. Make sure that the check is enabled by selecting the toggle and then hit create. To learn more about checks, you can view our Checks documentation.
Now, head over to the Services page. You should now see that your services have levels assigned to them in the services table.
Services which have an owner defined pass our check and therefore meet all the conditions for passing the Bronze level (because there are no Silver or Gold checks, these services will be assigned as Gold). Services without an owner receive the ‘Beginner’ level, which is the level assigned to services not passing the lowest level of Bronze.
Each service also has a Maturity Report tab which will give you a complete breakdown of which checks are passing or failing as well as the maturity of each category. You can learn more about the Maturity Report and how services are graded here.
For a more detailed report of how all your services are performing, check out the Service Maturity Report.
You can now start adding more checks or customizing your rubric to fit the concerns or objectives of your organization.
For more advanced control over which checks will be evaluated against specific services, please refer to our documentation on Filters.