Microservices Anti Patterns: A Taxonomy

Several companies are re-architecting their monolithic information systems with microservices. However, many companies migrated without experience on microservices, mainly learning how to migrate from books or from practitioners' blogs. Because of the novelty of the topic, practitioners and consultancy 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 catalogue is based on the experience summarized by different practitioners we interviewed in the last three 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 of this catalog and further validate the harmfulness of the anti-patterns identified.

[1]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[2]  Alberto Sillitti,et al.  Analyzing Forty Years of Software Maintenance Models , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[3]  Alberto Sillitti,et al.  A Survey on Code Analysis Tools for Software Maintenance Prediction , 2018, SEDA.

[4]  Davide Taibi,et al.  How developers perceive smells in source code: A replicated study , 2017, Inf. Softw. Technol..

[5]  Nenad Medvidovic,et al.  Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems , 2012, AOSD.

[6]  Theo Lynn,et al.  Microservices migration patterns , 2018, Softw. Pract. Exp..

[7]  Davide Taibi,et al.  Does Migrate a Monolithic System to Microservices Decreases the Technical Debt? , 2019, ArXiv.

[8]  Alfred Zimmermann,et al.  Towards a Collaborative Repository for the Documentation of Service-Based Antipatterns and Bad Smells , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[9]  Danna Zhou,et al.  d. , 1934, Microbial pathogenesis.

[10]  Davide Taibi,et al.  On the Definition of Microservice Bad Smells , 2018, IEEE Software.

[11]  Muhammad Ovais Ahmad,et al.  Comparing Communication Effort within the Scrum, Scrum with Kanban, XP, and Banana Development Processes , 2017, EASE.

[12]  Davide Taibi,et al.  From Monolithic Systems to Microservices: A Decomposition Framework based on Process Mining , 2019, CLOSER.

[13]  Anselm L. Strauss,et al.  Basics of qualitative research : techniques and procedures for developing grounded theory , 1998 .

[14]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[15]  Davide Taibi,et al.  Architectural Smells Detected by Tools: a Catalogue Proposal , 2019, 2019 IEEE/ACM International Conference on Technical Debt (TechDebt).

[16]  Muhammad Ovais Ahmad,et al.  Comparing Requirements Decomposition Within the Scrum, Scrum with Kanban, XP, and Banana Development Processes , 2017, XP.

[17]  Claus Pahl,et al.  Architectural Patterns for Microservices: A Systematic Mapping Study , 2018, CLOSER.

[18]  Claus Pahl,et al.  Microservices: A Systematic Mapping Study , 2016, CLOSER.

[19]  Mark Richards,et al.  Microservices AntiPatterns and Pitfalls , 2016 .

[20]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[21]  Davide Taibi,et al.  Operationalizing the Experience Factory for Effort Estimation in Agile Processes , 2017, EASE.

[22]  Davide Taibi,et al.  Are Architectural Smells Independent from Code Smells? An Empirical Study , 2017, J. Syst. Softw..

[23]  Sam Newman,et al.  Building Microservices , 2015 .

[24]  Claus Pahl,et al.  Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation , 2017, IEEE Cloud Computing.

[25]  Willem-Jan van den Heuvel,et al.  The pains and gains of microservices: A Systematic grey literature review , 2018, J. Syst. Softw..