Prácticas de los equipos de desarrollo de microservicios: un mapeo sistemático de la literatura

Autores/as

  • 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

Palabras clave:

Arquitectura de microservicios, Prácticas de desarrollo, Mapeo sistemático, Síntesis temática

Resumen

Debido a la creciente adopción de la Arquitectura de Microservicios, estilo que hace énfasis en la división de los sistemas en una colección de pequeños servicios con una sola responsabilidad, existe una necesidad de construir este tipo de sistemas con calidad y de adaptar las prácticas de los equipos de desarrollo para alcanzar una mejor escalabilidad, mantenibilidad, facilidad de despliegue así como una mayor agilidad y una clara separación de intereses. Al igual que con otro tipo de sistemas, el desarrollo de microservicios trae consigo diferentes retos que las organizaciones deben enfrentar. Dichos retos no solo tienen que ver con la parte técnica, sino que también implica un cambio en las prácticas y organización de los equipos de desarrollo. El objetivo de este estudio es analizar las prácticas de desarrollo que llevan a cabo los equipos, la forma en que estos se organizan y los retos que enfrentan durante el desarrollo de microservicios. Siguiendo un proceso de mapeo sistemático de la literatura se recopilaron 26 estudios primarios los cuales fueron analizados mediante una síntesis temática. Los resultados muestran que los equipos tienden a ser pequeños y multifuncionales, las prácticas que realizan están relacionadas con una cultura ágil y de independencia, lo que se complementa con los modelos de gobernanza descentralizada y ciclo de vida independiente. Los retos se relacionan con la complejidad del dominio, aspectos específicos de la organización y las habilidades que los desarrolladores deben de tener. Como conclusión se obtuvo la importancia de las características de una organización y sus equipos de desarrollo, la estrecha relación que tiene una cultura DevOps con el desarrollo de microservicios, la independencia y descomposición son aspectos clave que deben tomarse en cuenta y se detectaron diversos retos donde el factor humano juega un papel importante.

Biografía del autor/a

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.

Citas

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

Descargas

Publicado

2021-09-02

Cómo citar

González Heredia, A., Ocharán Hernández, J. O., Arenas Valdés, M. de los Ángeles ., & Verdín, K. C. (2021). Prácticas de los equipos de desarrollo de microservicios: un mapeo sistemático de la literatura. ReCIBE, Revista electrónica De Computación, Informática, Biomédica Y Electrónica, 10(1), C2–26. https://doi.org/10.32870/recibe.v10i1.218

Número

Sección

Computación e Informática