I recently gave a presentation about microservices rules, a set of 11 best practices that organizations should follow when adopting the microservice architecture:
- Practice continuous delivery/deployment
- Implement fast, automated deployment pipelines
- Organize into small, cross-functional, loosely coupled teams
- Provide a great developer experience (DevEx)
- Use a rational design process
- Design independently deployable services
- Design loosely coupled services
- Design testable services
- Develop observable services
- Incrementally migrate from a monolith to microservices
- Track and improve software metrics and KPIs
These rules grew out of my frustration with the way that many organizations have adopted microservices. I’ve had numerous conversations where developers have complained that their new microservices-based applications are difficult to change. Some developers had even quit projects out of frustration. This is not right: the goal of adopting microservices is to improve the developer experience and accelerate software delivery.
The goal of these rules is prevent organizations from making a mess of their microservice architecture. This article is the first in a series of articles that describe these rules in detail. In this article, I provide an overview of the rules and explain why they are important.