ABSTRACT
Although monolithic applications are still the modus operandi of many software systems, the microservices architecture, which favors small and independent applications, is gaining increasing popularity. This is part due to its claimed benefits, which includes better scalability, productivity, and maintainability. However, little is known about how developers and architects perceive the benefits of migrating from monolithic applications to microservices, and what are the challenges towards achieving them. In this paper we discuss the motivation, benefits, and challenges related to the migration from monolithic enterprise architectures to a microservices based architecture. We report several lessons learned that arose from a two years process faced by three Brazilian Government Institutions. We also cross-validate these findings with a survey conducted with 13 practitioners in the studied companies. The results of our investigation highlight some evidence that the adoption of microservices brought several benefits for these institutions, such as (a) reducing development time and risks related to deployment activities and (b) increasing the opportunities to experiment with different technologies and development models (such as hackathons). However, our observations reveal that the adoption of microservices is still a challenging task, mainly because it not only demands the understanding of new techniques and tools, but it also increases the need to automate tasks related to software deployment and software monitoring. This study is particularly relevant for institutions interested in adopting a software architecture based on microservices, and we are currently sharing our experiences with other institutions.
- Everton Agilar, Rodrigo Bonifácio, and Edna Canedo. 2016. A Systematic Mapping Study on Legacy System Modernization. In SEKE. KSI Research Inc. and Knowledge Systems Institute Graduate School, 345--350.Google Scholar
- Mohsen Ahmadvand and Amjad Ibrahim. 2016. Requirements reconciliation for scalable and secure microservice (de) composition. In Requirements Engineering Conference Workshops (REW), IEEE International. IEEE, 68--73.Google ScholarCross Ref
- Nuha Alshuqayran, Nour Ali, and Roger Evans. 2016. A Systematic Mapping Study in Microservice Architecture. In SOCA. IEEE Computer Society, 44--51.Google Scholar
- A. Balalaie, A. Heydarnoori, and P. Jamshidi. 2016. Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture. IEEE Software 33, 3 (May 2016), 42--52. Google ScholarDigital Library
- Len Bass, Ingo Weber, and Liming Zhu. 2015. DevOps: A Software Architect's Perspective (1st ed.). Addison-Wesley Professional. Google ScholarDigital Library
- Keith H. Bennett and Václav T. Rajlich. 2000. Software Maintenance and Evolution: A Roadmap. In Proceedings of the Conference on The Future of Software Engineering (ICSE '00). 73--87. Google ScholarDigital Library
- Valerio Cosentino, Javier Luis Cánovas Izquierdo, and Jordi Cabot. 2015. Assessing the bus factor of Git repositories. In 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2015, Montreal, QC, Canada, March 2--6, 2015. 499--503.Google ScholarCross Ref
- Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. 2017. Research on architecting microservices: Trends, focus, and potential for industrial adoption. In Software Architecture (ICSA), International Conference on. IEEE, 21--30.Google Scholar
- Robert M Emerson, Rachel I Fretz, and Linda L Shaw. 2001. Participant observation and fieldnotes. Handbook of ethnography (2001), 352--368.Google Scholar
- Daniel Escobar, Diana Cárdenas, Rolando Amarillo, Eddie Castro, Kelly Garcés, Carlos Parra, and Rubby Casallas. 2016. Towards the understanding and evolution of monolithic applications as microservices. In Computing Conference (CLEI), 2016 XLII Latin American. IEEE, 1--11.Google ScholarCross Ref
- Eric Evans. 2003. Domain-Driven Design: Tacking Complexity In the Heart of Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. Google ScholarDigital Library
- Jez Humble. 2018. Continuous Delivery Sounds Great, but Will It Work Here? Commun. ACM 61, 4 (March 2018), 34--39. Google ScholarDigital Library
- Andrew J. Ko. 2017. A Three-year Participant Observation of Software Startup Software Evolution. In Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP '17). 3--12. Google ScholarDigital Library
- Welder Luz, Gustavo Pinto, and Rodrigo Bonifácio. Building a Collaborative Culture: A Grounded Theory of Well Succeeded DevOps Adoption in Practice. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2018.Google Scholar
- Robert Cecil Martin. 2003. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River, NJ, USA. Google ScholarDigital Library
- Genc Mazlami, Jürgen Cito, and Philipp Leitner. 2017. Extraction of Microser-vices from Monolithic Software Architectures. In Web Services (ICWS), 2017 IEEE International Conference on. IEEE, 524--531.Google ScholarCross Ref
- Ronnie E. S. Santos, Fabio Q. B. da Silva, Maria Teresa Baldassarre, and Cleyton V. C. de Magalhães. 2017. Benefits and limitations of project-to-project job rotation in software organizations: A synthesis of evidence. Information & Software Technology 89 (2017), 78--96.Google ScholarCross Ref
- Chris Stevenson and Andy Pols. 2004. An Agile Approach to a Legacy System. In Extreme Programming and Agile Processes in Software Engineering, Jutta Eckstein and Hubert Baumeister (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 123--129.Google Scholar
- Davide Taibi, Valentina Lenarduzzi, and Claus Pahl. 2017. Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation. IEEE Cloud Computing 4, 5 (2017), 22--32.Google ScholarCross Ref
- Johannes Thones. 2015. Microservices. IEEE Software 32, 1 (2015), 116.Google ScholarCross Ref
- Hulya Vural, Murat Koyuncu, and Sinem Guney. 2017. A Systematic Literature Review on Microservices. In International Conference on Computational Science and Its Applications. Springer, 203--217.Google ScholarCross Ref
Index Terms
- An experience report on the adoption of microservices in three Brazilian government institutions
Recommendations
Electronic Government Services Adoption: The Moderating Impact of Perceived Service Quality
This study investigated the moderating impact of perceived service quality on the positive relationship between perceived usefulness of e-government services and intention to use e-government services. The Technology Acceptance Model TAM was applied as ...
Reference architectures and Scrum: friends or foes?
ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software EngineeringSoftware reference architectures provide templates and guidelines for designing systems in a particular domain. Companies use them to achieve interoperability of (parts of) their software, standardization, and faster development. In contrast to system-...
Trust and risk in e-government adoption
Citizen confidence in government and technology is imperative to the wide-spread adoption of e-government. This study analyzes the impact of trust and risk perceptions on one's willingness to use e-government services. We propose a model of e-government ...
Comments