Abstract
Several companies are rearchitecting their monolithic information systems with microservices. However, many companies migrate to microservices without experience, mainly learning how to migrate from books or from practitioners’ blogs. Because of the novelty of the topic, practitioners and consultancies are learning by doing how to migrate, thus facing several issues but also several benefits. In this chapter, we introduce a catalog and a taxonomy of the most common microservices anti-patterns in order to identify common problems. Our anti-pattern catalog is based on the experience summarized by different practitioners we interviewed in the last 3 years. We identified a taxonomy of 20 anti-patterns, including organizational (team oriented and technology/tool oriented) anti-patterns and technical (internal and communication) anti-patterns. The results can be useful to practitioners to avoid experiencing the same difficult situations in the systems they develop. Moreover, researchers can benefit from this catalog and further validate the harmfulness of the anti-patterns identified.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
V. Alagarasan (Asurion), Microservices Antipatterns (Microservices-Summit, New York, 2016)
F. Arcelli Fontana, V. Lenarduzzi, R. Roveda, D. Taibi, Are architectural smells independent from code smells? An empirical study. J. Syst. Softw. 154, 139–156 (2019)
U. Azadi, F. Arcelli Fontana, D. Taibi, Architectural smells detected by tools: a catalogue proposal, in International Conference on Technical Debt (TechDebt 2019) (2019)
A. Balalaie, A. Heydarnoori, P. Jamshidi, D.A. Tamburri, T. Lynn Microservices migration patterns. Softw. Pract. Exp. 48(11), 2019–2042 (2018)
J. Bogard, Avoiding microservices megadisaster, in NDC-Conference London (2017)
J. Bogner, T. Boceck, M. Popp, D. Tschechlov, S. Wagner, A. Zimmermann, Towards a collaborative repository for the documentation of service-based antipatterns and bad smells. IEEE International Conference on Software Architecture Companion (ICSA-C) (2019)
D. Bryant (SpectoLabs), The Seven (more) Deadly Sins of Microservices (O’Reilly OSCON, London, 2016)
J. Garcia, D. Popescu, G. Edwards, N. Medvidovic, Identifying architectural bad smells, in 2009 13th European Conference on Software Maintenance and Reengineering, Kaiserslautern (2009), pp. 255–258
V. Lenarduzzi, A. Sillitti, D. Taibi, Analyzing forty years of software maintenance models, in International Conference on Software Engineering (ICSE) (2017)
V. Lenarduzzi, A. Sillitti, D. Taibi, A survey on code analysis tools for software maintenance prediction, in International Conference in Software Engineering for Defence Applications (SEDA) (2018)
J. Lewis, M. Fowler, Microservices (2014). www.martinfowler.com/articles/microservices.html. Accessed July 2017
I. Macia, J. Garcia, D. Popescu, A. Garcia, N. Medvidovic, A. von Staa, Are automatically-detected code anomalies relevant to architectural modularity? an exploratory analysis of evolving systems, in International Conference on Aspect-Oriented Software Development (AOSD ’12) (2012), pp. 167–178
N. Moha, Y.G. Gueheneuc, L. Duchien, A.F. Le Meur, DECOR: a method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)
S. Newman, Building Microservices (O’Reilly, Sebastopol, 2015)
C. Pahl, P. Jamshidi, Microservices: a systematic mapping study, in Proceedings of the 6th International Conference on Cloud Computing and Services Science—CLOSER (2018)
M. Richards, Microservices AntiPatterns and Pitfalls (O’Reilly eBooks, Sebastopol, 2016)
C. Richardson, Microservice Patterns (Manning Publications, Shelter Island, 2017)
C. Richardson, Potholes in the road from monolithic hell: microservices adoption anti-patterns, in O’Really Software Architecture Conference, London (2018)
N. Saarimäki, F. Lomio, V. Lenarduzzi, D. Taibi, Does migrate a monolithic system to microservices decrease the technical debt? CoRR, abs/1902.06282, 2019. [Online]. http://arxiv.org/abs/1902.06282
T. Saleh, Microservices Antipatterns (QCon, London, 2016)
R. Shoup, From the Monolith to Microservices: Lessons from Google and eBay. Craft-Con April 24th, 2015.
J. Soldani, D.A.Tamburri, W. van den Heuvel. The pains and gains of microservices: a systematic grey literature review. J. Syst. Softw. 146, 215–232 (2018)
A.L. Strauss, J. Corbin, Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory (SAGE Publications, Thousand Oaks, 2008)
D. Taibi, V. Lenarduzzi, On the definition of microservice bad smells. IEEE Softw. 35(3), 56–62 (2018)
D. Taibi, K. Systa, From monolithic systems to microservices: a decomposition framework based on process mining, in 8th International Conference on Cloud Computing and Services Science, CLOSER 2019 (2019)
D. Taibi, A. Janes, V. Lenarduzzi, How developers perceive smells in source code: a replicated study. Inf. Softw. Technol. 92, 223–235 (2017). https://doi.org/10.1016/j.infsof.2017.08.008
D. Taibi, V. Lenarduzzi, C. Pahl, Processes, motivations and issues for migrating to microservices architectures: an empirical investigation. IEEE Cloud Comput. 4(5), 22–32 (2017). https://doi.org/10.1109/MCC.2017.42509312017
D. Taibi, V. Lenarduzzi, C. Pahl, A. Janes, in Microservices in Agile Software Development: A Workshop-Based Study into Issues, Advantages, and Disadvantages” XP ’17 Workshops, Cologne (2017)
D. Taibi, V. Lenarduzzi, P. Diebold, I. Lunesu, Operationalizing the experience factory for effort estimation in agile processes, in International Conference on Evaluation and Assessment in Software Engineering (EASE2017) (2017)
D. Taibi, V. Lenarduzzi, M.O. Ahmad, K. Liukkunen, Comparing communication effort within the scrum, scrum with kanban, XP, and banana development processes, in Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering, EASE17 (2017)
D. Taibi, V. Lenarduzzi, A. Janes, K. Liukkunen, M.O. Ahmad, Comparing requirements decomposition within the scrum, scrum with kanban, XP, and banana development processes, in Agile Processes in Software Engineering and Extreme Programming (2017)
D. Taibi, V. Lenarduzzi, C. Pahl, Architectural patterns for microservices: a systematic mapping study, in Proceedings of the 8th International Conference on Cloud Computing and Services Science—CLOSER (2018)
O. Zimmermann, M. Stocker, U. Zdun, D. Lubke, C. Pautasso, Microservice API Patterns (2018). https://microservice-api-patterns.org. Accessed 5 June 2019
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Taibi, D., Lenarduzzi, V., Pahl, C. (2020). Microservices Anti-patterns: A Taxonomy. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)