Analysis of the Criteria Adopted in Industry to Extract Microservices

A microservice architecture is expected to provide a better modularization and management of small and autonomous services. Other expected benefits include increased availability and time to market. There is a growing interest of both industry and academia on streamlining the migration of existing systems to a microservice architecture. However, the success of this migration is largely dependent on the use of appropriate criteria for extracting microservices from a code base. Recent studies indicate the selection and decomposition of microservices represent the main challenge along the migration. Academic techniques tend to support the extraction of microservices with either one or two conventional criteria, namely coupling and cohesion. There is limited knowledge on the criteria actually considered as useful by practitioners. Thus, we have performed an exploratory online survey with 15 specialists experienced on migrating systems to a microservices architecture. In particular, we question the relative usefulness of seven possible criteria for supporting decision-making along microservice extraction. The participants were also questioned about tools they have used, their limitations, and whether the decisions on extracted microservices were considered unsuccessful. Overall, the survey results suggest academic techniques do not totally satisfy the needs of practitioners. Practitioners often need to consider simultaneously at least four dominant criteria as well as their trade-offs to support their decisions. Most practitioners consider existing tooling support insufficient or even irrelevant to support their microservice extraction decisions.

[1]  Dmitry Namiot,et al.  On micro-services architecture , 2014 .

[2]  Gustavo Pinto,et al.  An experience report on the adoption of microservices in three Brazilian government institutions , 2018, SBES.

[3]  Rubby Casallas,et al.  Towards the understanding and evolution of monolithic applications as microservices , 2016, 2016 XLII Latin American Computing Conference (CLEI).

[4]  Vinícius Costa Villas Bôas Segura,et al.  Using Microservices and Software Product Line Engineering to Support Reuse of Evolving Multi-tenant SaaS , 2017, SPLC.

[5]  Qinghua Zheng,et al.  Functionality-Oriented Microservice Extraction Based on Execution Trace Clustering , 2018, 2018 IEEE International Conference on Web Services (ICWS).

[6]  Alberto Lluch-Lafuente,et al.  Microservices: Yesterday, Today, and Tomorrow , 2016, Present and Ulterior Software Engineering.

[7]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[8]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

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

[10]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

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

[12]  Patricia Lago,et al.  Migrating Towards Microservice Architectures: An Industrial Survey , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[13]  Amjed Tahir,et al.  A systematic mapping study on dynamic metrics and software quality , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[14]  Carrie Arnold,et al.  Case Study: Microservice Evolution and Software Lifecycle of the XSEDE User Portal API , 2016, XSEDE.

[15]  Antonio Bucchiarone,et al.  From Monolithic to Microservices: An Experience Report from the Banking Domain , 2018, IEEE Software.

[16]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[17]  Martin Höst,et al.  Guidelines for Conducting Surveys in Software Engineering , 2015 .

[18]  Guilherme Horta Travassos,et al.  Surveys in Software Engineering: Identifying Representative Samples , 2016, ESEM.

[19]  Dalila Tamzalit,et al.  From Monolith to Microservices: Lessons Learned on an Industrial Migration to a Web Oriented Architecture , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[20]  Kevin Barraclough,et al.  I and i , 2001, BMJ : British Medical Journal.

[21]  Jürgen Cito,et al.  Extraction of Microservices from Monolithic Software Architectures , 2017, 2017 IEEE International Conference on Web Services (ICWS).

[22]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

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

[24]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[25]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[26]  Holger Knoche,et al.  Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices , 2016, ICPE.