Microservices

Improve, enforce, and ensure microservice quality

Is microservice quality a focus for your team this year? Perhaps you’re looking to improve your service performance. Maybe you feel like your organization needs better ways to enforce best practices or ensure that service quality doesn’t degrade over time. Let’s take a look at these three areas and share some concrete recommendations for strengthening your services and creating a long-term culture of quality.  

1. Improve

Deciding to improve your microservice quality is a great first step. However, if this goal isn’t measurable and specific, progress will be hard to quantify. Given infinite time, there are many facets of microservice quality that you could improve—but in reality, you’ll want to focus on the metrics that make the biggest impact on your organization. 

The numbers that your organization cares about above all else are your north star metrics. In most cases, they represent the overlap between business and engineering goals. For instance, in the early days at Facebook, where the culture was to move fast, improving service quality probably translated to being able to develop and launch services more quickly. Compare this to a more established financial services company, where five-nines availability and a low number of customer incidents might be the most critical measures of success.

Once you’ve defined your north start metrics, log your microservices and generate automated reports on these metrics if you aren’t already doing so. This will give you an idea of where your team is at today, so you can define a realistic goal for three or six months from now. As you progress towards that goal, automated reporting helps with visibility and reduces the need to chase service owners for status updates.  

2. Enforce

After improving the quality of your microservices, it’s important to consider how you’ll enforce that services meet that new quality bar when they’re deployed. Your existing resources, from your documentation to your production readiness checklist, will need to be continuously updated to reflect your most recent learnings. 

One of the essential ways to enforce quality is through testing. In all three phases of service development—dev, staging, and prod—you’ll want to have a robust QA process in place. A microservice should be tested both independently and in tandem with other services. 

Another way to enforce microservice quality is with scaffolding. Using a tool like Cookiecutter, teams can create templates that new microservices must adhere to when they’re created, codifying your team’s quality standards and best practices. Furthermore, using and maintaining runbooks will enforce that your team is always following the same repeatable processes for any situation that might arise, such as debugging a crash. 

3. Ensure

Microservice quality isn’t entirely a technical problem: as anyone who’s worked on this area knows, company culture is a major factor in your success. Ensuring quality over time means building a culture that values reliability and accountability. It’s important that the work is shared rather than falling on one or two designated experts on your team—who are most likely to burn out and leave, taking their knowledge with them. 

It can feel like an uphill battle to get microservice quality prioritized because improving and enforcing quality will take time away from feature development. To convince higher-ups, be prepared to present evidence that service quality affects your company’s bottom line. You can influence the culture in other ways as well, such as recognizing, celebrating, and rewarding individuals and teams for improving quality—and not just for launching flashy new features. 

Another way to ensure the quality of your microservices long-term is to invest in tools that provide visibility to your team. Whether it’s a service catalog that reflects ownership and progress towards quality initiatives or a dashboard that shows your progress on your north star metrics, there are plenty of tools that can reduce tribal knowledge and let you communicate the impact of service quality to leadership. 

For instance, Cortex offers Scorecards, where your team can define goals around service quality and easily see each service’s progress without needing to build scripts and maintain spreadsheets. In addition to Scorecards, we provide an entire platform of tools dedicated to improving, ensuring, and enforcing microservice quality. Book a demo with us to see how Cortex can help your team today.