Microservices adoption antipatterns
Many enterprise applications are large, complex monoliths that are developed by large teams that struggle to keep up with the needs of the business. Consequently, adopting the microservice architecture is an appealing option. As you might expect, migrating to microservices requires an enterprise to tackle numerous technology related challenges. But enterprises also encounter obstacles that have less to do with technology and more to do with strategy, process, and organization.
I’ve written series of blog posts about the microservices adoption anti-patterns that I have observed while working with numerous clients around the world. Unlike a regular pattern, which is a (problem, solution) pair, an anti-pattern consists of three elements:
- Problem - the problem you are trying to solve, which in the case of microservices adoption is generally how to improve the speed, the frequency and reliability of software delivery
- Anti-pattern solution - the solution that doesn’t work well
- Refactored solution - a better solution to the problem.
Here are the microservices adoption antipatterns:
- Microservices are a magic pixie dust - believing that a sprinkle of microservices will solve all of your development problems
- Microservices as the goal - making the adoption of microservices the goal and measuring success in terms of the number of services written
- Scattershot adoption - multiple application development teams attempt to adopt the microservice architecture without any coordination
- Trying to fly before you can walk - attempting to adopt the microservice architecture (an advanced technique) without (or not committing to) practicing basic software development techniques, such as clean code, good design, and automated testing
- Focussing on Technology - focussing on technology aspects of microservices, most commonly the deployment infrastructure, and neglecting key issues, such as service decomposition
- More the merrier - intentionally creating a very fine-grained microservice architecture
- Red Flag Law - retaining the same development process and organization structure that were used when developing monolithic applications.
To learn more
- See the slides for Microservices adoption anti-patterns talk
- Read or watch my O’Reilly Software Architecture conference keynote
Avoiding the anti-patterns
Talk to me about my microservices consulting and training services including how I can help your organization avoid these anti-patterns by creating a microservices migration roadmap. In particular, I have a Microservices for leaders class