Microservices team practices: a systematic mapping study

Authors

  • Alan González Heredia Facultad de Estadística e Informática,Universidad Veracruzana,México
  • Jorge Octavio Ocharán Hernández Facultad de Estadística e Informática,Universidad Veracruzana,México
  • María de los Ángeles Arenas Valdés Facultad de Estadística e Informática,Universidad Veracruzana,México
  • Karen Cortés Verdín Facultad de Estadística e Informática,Universidad Veracruzana,México

DOI:

https://doi.org/10.32870/recibe.v10i1.218

Keywords:

Microservice Architecture, Development Practices, Systematic Mapping, Thematic Synthesis

Abstract

Due to the growing adoption of Microservices Architecture, a style that emphasizes the division of systems into a collection of small services with a single responsibility, there is a need to build this type of system with quality and to adapt the practices of development teams to achieve better scalability, maintainability, ease of deployment as well as greater agility and a clear separation of interests. As with other types of systems, the development of microservices brings with it different challenges that organizations must face. These challenges are related to the technical side and imply a change in the practices and organization of the development teams. This study aims to analyze the development practices carried out by the teams, the way they are organized, and the challenges they face during the development of microservices. Following a systematic literature mapping process, 26 primary studies were collected and analyzed through a thematic synthesis. The results show that teams tend to be small and cross-functional. Their practices are related to an agile and independent culture, complemented by decentralized governance and independent lifecycle models. The challenges are related to the complexity of the domain, specific aspects of the organization, and the skills that developers must-have. In conclusion, the importance of the characteristics of an organization and its development teams, the close relationship that a DevOps culture has with the development of microservices, independence, and decomposition are vital aspects that must be taken into account, and several challenges were detected where the human factor plays an important role.

Author Biographies

Alan González Heredia, Facultad de Estadística e Informática,Universidad Veracruzana,México

Estudiante de Ingeniería de Software en laUniversidad Veracruzana, se encuentra realizando prácticas profesionales eimpulsando prácticas de Ingeniería de Software en Intel Corporation. Sus áreas deinterés son la Ingeniería de Software, el Diseño y la Arquitectura de software.

Jorge Octavio Ocharán Hernández, Facultad de Estadística e Informática,Universidad Veracruzana,México

Doctor en Ciencias de la Computación por la Universidad Veracruzana y Maestro en Ingeniería de Software por la misma institución, posee además el título de Máster en Software Libre: Administrador de Redes y Sistemas Operativos por la Universitat Oberta de Catalunya y de Ingeniero en Tecnologías Estratégicas de la Información por la Universidad Anáhuac Campus Veracruz. Actualmente es profesor de tiempo completo de la Facultad de Estadística e Informática de la Universidad Veracruzana en donde realiza actividades de docencia, tutoría, vinculación e investigación desde 2017. Es miembro de la Association for Computing Machinery y de la IEEE Computer Society. Sus áreas de interés son la Ingeniería de Software, el Diseño y la Arquitectura de Software, la Ingeniería de Requisitos y los Aspectos Humanos de la Ingeniería de Software. Es un entusiasta del Software Libre y de Fuente Abierta

María de los Ángeles Arenas Valdés, Facultad de Estadística e Informática,Universidad Veracruzana,México

Maestra en Ciencias Computacionales por la Fundación Arturo Rosenblueth, México. Licenciada en Informática por la Universidad Veracruzana. Actualmente es profesor en la Facultad de Estadística e Informática de la Universidad Veracruzana. Sus intereses se centran en temas relacionados con la Ingeniería de Software, en especial con la Ingeniería de Requisitos.

Karen Cortés Verdín, Facultad de Estadística e Informática,Universidad Veracruzana,México

Doctora en Ciencias de la Computación Doctorado y Maestra en Ingeniería de Software por el Centro de Investigación en Matemáticas (CIMAT) A.C. en Guanajuato México. M.Sc Information Systems Engineering, por la University of Manchester Institute of Science and Technology (UMIST), Manchester Reino Unido. Actualmente es profesora de tiempo completo en la Licenciatura en Ingeniería de Software de la Universidad Veracruzana (UV), en Xalapa Veracruz México. Cuenta con diplomados en Enseñanza Superior, Propiedad Intelectual, Redes, Diseño Curricular y Habilidades del Pensamiento. Sus áreas de interés son Líneas de Productos de Software, Arquitecturas de Software, Orientación a Aspectos, Orientación a Concerns, Calidad de Software y Procesos de Software.

References

Ahmad, N., Naveed, Q. N., & Hoda, N. (2018). Strategy and procedures for Migration to the Cloud Computing. 2018 IEEE 5th International Conference on Engineering Technologies and Applied Sciences (ICETAS), 1–5. https://doi.org/10.1109/ICETAS.2018.8629101

AWS. (2020). Deployment Strategies - Introduction to DevOps on AWS.

Bogner, J., Fritzsch, J., Wagner, S., & Zimmermann, A. (2019). Microservices in Industry: Insights into Technologies, Characteristics, and Software Quality. 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), 187–195. https://doi.org/10.1109/ICSA-C.2019.00041

Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S. T., & Mazzara, M. (2018). From Monolithic to Microservices: An Experience Report from the Banking Domain. IEEE Software, 35(3), 50–55. https://doi.org/10.1109/MS.2018.2141026

Buchgeher, G., Winterer, M., Weinreich, R., Luger, J., Wingelhofer, R., & Aistleitner, M. (2017). Microservices in a Small Development Organization. En A. Lopes & R. de Lemos (Eds.), Software Architecture (pp. 208–215). Springer International Publishing. https://doi.org/10.1007/978-3-319- 65831-5_15

Conway, M. E. (1968). How do committees invent. Datamation, 14(4), 28–31.

Cruzes, D. S., & Dyba, T. (2011). Recommended Steps for Thematic Synthesis in Software Engineering. 2011 International Symposium on Empirical Software Engineering and Measurement, 7491, 275–284. https://doi.org/10.1109/ESEM.2011.36

Di Francesco, P., Lago, P., & Malavolta, I. (2019). Architecting with microservices: A systematic mapping study. Journal of Systems and Software, 150(April), 77–97. https://doi.org/10.1016/j.jss.2019.01.001

Di Francesco, P., Lago, P., & Malavolta, I. (2018). Migrating Towards Microservice Architectures: An Industrial Survey. 2018 IEEE International Conference on Software Architecture (ICSA), 29–2909. https://doi.org/10.1109/ICSA.2018.00012

Dieste, O., Grimán, A., & Juristo, N. (2009). Developing search strategies for detecting relevant experiments. Empirical Software Engineering, 14(5), 513–539. https://doi.org/10.1007/s10664-008- 9091-7

Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information and Software Technology, 50(9), 833–859. https://doi.org/https://doi.org/10.1016/j.infsof.2008.01.006

Fan, C.-Y., & Ma, S.-P. (2017). Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report. 2017 IEEE International Conference on AI & Mobile Services (AIMS), 109 112. https://doi.org/10.1109/AIMS.2017.23

Fowler, S. J. (2016). Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization (1st ed.). O’Reilly Media, Inc.

Francesco, P. Di, Malavolta, I., & Lago, P. (2017). Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption. 2017 IEEE International Conference on Software Architecture (ICSA), 21–30. https://doi.org/10.1109/ICSA.2017.24

Fritzsch, J., Bogner, J., Wagner, S., & Zimmermann, A. (2019). Microservices Migration in Industry: Intentions, Strategies, and Challenges. 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), 481–490. https://doi.org/10.1109/ICSME.2019.00081

Garriga, M. (2018). Towards a Taxonomy of Microservices Architectures. En A. Cerone & M. Roveri (Eds.), Software Engineering and Formal Methods (pp. 203–218). Springer International Publishing. https://doi.org/10.1007/978-3-319-74781-1_15

Ghofrani, J., & Bozorgmehr, A. (2019). Migration to Microservices: Barriers and Solutions. En H. Florez, M. Leon, J. M. Diaz-Nafria, & S. Belli (Eds.), Applied Informatics (pp. 269–281). Springer International Publishing. https://doi.org/10.1007/978-3-030-32475-9_20

Gundelsby, J. H. (2018). Enabling autonomous teams in large-scale agile through architectural principles. Proceedings of the 19th International Conference on Agile Software Development: Companion, 1–4. https://doi.org/10.1145/3234152.3234183

Hassan, S., Bahsoon, R., & Kazman, R. (2020). Microservice transition and its granularity problem: A systematic mapping study. Software: Practice and Experience, 50(9), 1651–1681. https://doi.org/10.1002/spe.2869

Idoughi, D., Abdelouhab, K. A., & Kolski, C. (2017). Towards a microservices development approach for the crisis management field in developing countries. 2017 4th International Conference on Information and Communication Technologies for Disaster Management (ICT-DM), 1–6. https://doi.org/10.1109/ICT-DM.2017.8275679

Kalske, M., Mäkitalo, N., & Mikkonen, T. (2018). Challenges When Moving from Monolith to Microservice Architecture. En I. Garrigós & M. Wimmer (Eds.), Current Trends in Web Engineering (pp. 32–47). Springer International Publishing. https://doi.org/10.1007/978-3-319-74433-9_3

Larrucea, X., Santamaria, I., Colomo-Palacios, R., & Ebert, C. (2018). Microservices. IEEE Software, 35(3), 96–100. https://doi.org/10.1109/MS.2018.2141030

Lotz, J., Vogelsang, A., Benderius, O., & Berger, C. (2019). Microservice Architectures for Advanced Driver Assistance Systems: A Case-Study. 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), 45–52. https://doi.org/10.1109/ICSA-C.2019.00016

Luz, W., Agilar, E., de Oliveira, M. C., de Melo, C. E. R., Pinto, G., & Bonifácio, R. (2018). An experience report on the adoption of microservices in three Brazilian government institutions. Proceedings of the XXXII Brazilian Symposium on Software Engineering - SBES ’18, 32–41. https://doi.org/10.1145/3266237.3266262

O’Connor, R. V., Elger, P., & Clarke, P. M. (2016). Exploring the impact of situational context. Proceedings of the International Conference on Software and Systems Process, 6–10. https://doi.org/10.1145/2904354.2904368

Pahl, C., & Jamshidi, P. (2016). Microservices: A Systematic Mapping Study. Proceedings of the 6th International Conference on Cloud Computing and Services Science, 1(Closer), 137–146. https://doi.org/10.5220/0005785501370146

Ponce, F., Márquez, G., & Astudillo, H. (2019). Migrating from monolithic architecture to microservices: A Rapid Review. 2019 38th International Conference of the Chilean Computer Science Society (SCCC), 1–7. https://doi.org/10.1109/SCCC49216.2019.8966423

Premchand, A., & Choudhry, A. (2018). Architecture Simplification at Large Institutions using Micro Services. 2018 International Conference on Communication, Computing and Internet of Things (IC3IoT), 30–35. https://doi.org/10.1109/IC3IoT.2018.8668173

Salah, T., Jamal Zemerly, M., Chan Yeob Yeun, Al-Qutayri, M., & Al-Hammadi, Y. (2016). The evolution of distributed systems towards microservices architecture. 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST), 318–325. https://doi.org/10.1109/ICITST.2016.7856721

Soldani, J., Tamburri, D. A., & Van Den Heuvel, W.-J. (2018). The pains and gains of microservices: A Systematic grey literature review. Journal of Systems and Software, 146, 215–232. https://doi.org/10.1016/j.jss.2018.09.082

Sousa, P. S. de, Nogueira, N. P., Santos, R. C. dos, Maia, P. H. M., & Souza, J. T. de. (2020). Building a prototype based on Microservices and Blockchain technologies for notary’s office: An academic experience report. 2020 IEEE International Conference on Software Architecture Companion (ICSA-C), 122–129. https://doi.org/10.1109/ICSA-C50368.2020.00031

Srikaew, P., & Kim, I. (2017). A microservice development for document management system. 2017 4th International Conference on Computer Applications and Information Processing Technology (CAIPT), 1–4. https://doi.org/10.1109/CAIPT.2017.8320721

Taibi, D., Lenarduzzi, V., & Pahl, C. (2017). Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation. IEEE Cloud Computing, 4(5), 22–32. https://doi.org/10.1109/MCC.2017.4250931

Taibi, D., Lenarduzzi, V., Pahl, C., & Janes, A. (2017). Microservices in agile software development. 1–5. https://doi.org/10.1145/3120459.3120483

Wang, Y., & Kadiyala, H. (2020). Promises and Challenges of Microservices : an Exploratory Study. 1–45.

Waseem, M., & Liang, P. (2017). Microservices Architecture in DevOps. 2017 24th Asia-Pacific Software Engineering Conference Workshops (APSECW), 13–14. https://doi.org/10.1109/APSECW.2017.18

Waseem, M., Liang, P., & Shahin, M. (2020). A Systematic Mapping Study on Microservices Architecture in DevOps. Journal of Systems and Software, 170, 110798. https://doi.org/10.1016/j.jss.2020.110798

Zhang, H., Li, S., Jia, Z., Zhong, C., & Zhang, C. (2019). Microservice Architecture in Reality: An Industrial Inquiry. 2019 IEEE International Conference on Software Architecture (ICSA), 51–60. https://doi.org/10.1109/ICSA.2019.00014

Published

2021-09-02

How to Cite

González Heredia, A., Ocharán Hernández, J. O., Arenas Valdés, M. de los Ángeles ., & Verdín, K. C. (2021). Microservices team practices: a systematic mapping study. ReCIBE, Electronic Journal of Computing, Informatics, Biomedical and Electronics, 10(1), C2–26. https://doi.org/10.32870/recibe.v10i1.218

Issue

Section

Computer Science & IT