Abstract
Serverless computing is on the rise but developing software to exploit this space involves a deep rethink of software architecture, deployment, and operation (perhaps also, software development processes and team structures). Central to this revolution, we find a compelling argument for distributed, services-based software architectures. But converting a large, established monolith architecture system to microservices is non-trivial and fraught with both cost and risk. For the many firms with established software systems, this architectural system conversion might be considered the first stop-off on the journey to serverless computing. In tandem, software deployment and production monitoring also require reinvention. The focus of this paper involves an examination of the advantages of microservices architectures, include techniques for migrating from monolith architectures. Through application of a Multivocal Literature Review (MLR), we find that migrating from a monolith architecture to a microservices architecture is risky and non-trivial, but that there are techniques that can be employed to support the transition. We find also that monoliths have their advantages which might be overlooked to some extent in the race to serverless computing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Loukides, M., Swoyer, S.: Microservices Adoption in 2020 – O’Reilly. https://www.oreilly.com/radar/microservices-adoption-in-2020/ (n.d.). Accessed 1 February 2022
Taibi, D., Lenarduzzi, V., Pahl, C.: Processes, motivations, and issues for migrating to microservices architectures: an empirical investigation. IEEE Cloud Comput. 4(5), 22–32 (2017). https://doi.org/10.1109/MCC.2017.4250931
Fowler, M.: Microservices. https://martinfowler.com/articles/microservices.html#footnote-etymology (n.d.). Accessed 1 February 2022
Rud, A.: Why and how Netflix, Amazon, and Uber migrated to microservices: learn from their experience – HYS enterprise. https://www.hys-enterprise.com/blog/why-and-how-netflix-amazon-and-uber-migrated-to-microservices-learn-from-their-experience/ (n.d.). Accessed 15 February 2022
Newman, S.: Building Microservices – Sam Newman – Google Books. https://books.google.ie/books?hl=en&lr=&id=ZvM5EAAAQBAJ&oi=fnd&pg=PT8&dq=building+microservices&ots=uh8heDdFXl&sig=U_FvCd-VitpQmi249fxelnEXjQc&redir_esc=y#v=onepage&q=building%20microservices&f=false (n.d.). Accessed 2 February 2022
Kazanavicius, J., Mazeika, D.: Migrating legacy software to microservices architecture. In: 2019 Open Conference of Electrical, Electronic and Information Sciences, EStream 2019 – Proceedings (2019). https://doi.org/10.1109/ESTREAM.2019.8732170
Data source: Google Trends. https://www.google.com/trends
Miller, R.: How AWS came to be – TechCrunch. http://tcrn.ch/29cG0Gh (2016). Accessed 11 February 2022
de Lauretis, L.: From monolithic architecture to microservices architecture. In: Proceedings – 2019 IEEE 30th International Symposium on Software Reliability Engineering Workshops, ISSREW 2019, pp. 93–96 (2019). https://doi.org/10.1109/ISSREW.2019.00050
Dragoni, N., Giallorenzo, S., Lafuente, A. L., et al.: Microservices: yesterday, today, and tomorrow. Present Ulterior Softw. Eng., 195–216 (2017). https://doi.org/10.1007/978-3-319-67425-4_12
Richardson, C.: What are microservices? https://microservices.io/ (n.d.). Accessed 1 February 2022
Gouigoux, J.P., Tamzalit, D.: From monolith to microservices: Lessons learned on an industrial migration to a web oriented architecture. In: Proceedings – 2017 IEEE International Conference on Software Architecture Workshops, ICSAW 2017: Side Track Proceedings, pp. 62–65 (2017). https://doi.org/10.1109/ICSAW.2017.35
Amazon: What is DevOps? – Amazon Web Services (AWS). https://aws.amazon.com/devops/what-is-devops (n.d.). Accessed 17 February 2022
Guitart, J., Beltran, V., Carrera, D., Torres, J., Ayguadé, E.: Characterizing secure dynamic web applications scalability. In: Proceedings – 19th IEEE International Parallel and Distributed Processing Symposium, IPDPS 2005 (2005). https://doi.org/10.1109/IPDPS.2005.137
Qu, C., Calheiros, R.N., Buyya, R.: Auto-scaling web applications in clouds. ACM Comput. Surveys (CSUR) 51(4), 33 (2018). https://doi.org/10.1145/3148149
Prasandy, T., Murad, D.F., Darwis, T.: Migrating application from monolith to microservices. In: Proceedings of 2020 International Conference on Information Management and Technology, ICIMTech 2020, pp. 726–731 (2020). https://doi.org/10.1109/ICIMTECH50083.2020.9211252
Ponce, F., Marquez, G., Astudillo, H.: Migrating from monolithic architecture to microservices: a rapid review. In: Proceedings – International Conference of the Chilean Computer Science Society, SCCC, 2019-November. https://doi.org/10.1109/SCCC49216.2019.8966423
Singleton, A.: The economics of microservices. IEEE Cloud Comput. 3(5), 16–20 (2016). https://doi.org/10.1109/MCC.2016.109
Richardson, C.: Introduction to microservices | NGINX. https://www.nginx.com/blog/introduction-to-microservices/ (n.d.). Accessed 15 February 2022
Chen, R., Li, S., Li, Z.: From Monolith to microservices: a dataflow-driven approach. In: Proceedings – Asia-Pacific Software Engineering Conference, APSEC, 2017-December, pp. 466–475 (2018). https://doi.org/10.1109/APSEC.2017.53
Fritzsch, J., Bogner, J., Zimmermann, A., Wagner, S.: From monolith to microservices: a classification of refactoring approaches. In: Bruel, J.-M., Mazzara, M., Meyer, B. (eds.) DEVOPS 2018. LNCS, vol. 11350, pp. 128–141. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-06019-0_10
Khononov, V.: Learning domain-driven design – Vlad Khononov - Google Books. https://books.google.ie/books?id=qAtHEAAAQBAJ&printsec=frontcover&dq=bounded+context&hl=en&sa=X&ved=2ahUKEwj35MTuyfL1AhVhmVwKHT7iAv8Q6AF6BAgEEAI#v=onepage&q=bounded%20context&f=false (n.d.). Accessed 9 February 2022
Richardson, C.: Decompose by subdomain. https://microservices.io/patterns/decomposition/decompose-by-subdomain.html (n.d.). Accessed 9 February 2022
Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S.T., Mazzara, M.: From monolithic to microservices: an experience report from the banking domain. IEEE Softw. 35(3), 50–55 (2018). https://doi.org/10.1109/MS.2018.2141026
Mazlami, G., Cito, J., Leitner, P.: Extraction of microservices from monolithic software architectures. In: Proceedings – 2017 IEEE 24th International Conference on Web Services, ICWS 2017, pp. 524–531 (2017). https://doi.org/10.1109/ICWS.2017.61
Jin, W., Liu, T., Zheng, Q., Cui, D., Cai, Y.: Functionality-oriented microservice extraction based on execution trace clustering. In: Proceedings – 2018 IEEE International Conference on Web Services, ICWS 2018 – Part of the 2018 IEEE World Congress on Services, pp. 211–218 (2018). https://doi.org/10.1109/ICWS.2018.00034
Fan, C. Y., Ma, S. P.: Migrating monolithic mobile application to microservice architecture: an experiment report. In: Proceedings – 2017 IEEE 6th International Conference on AI and Mobile Services, AIMS 2017, pp. 109–112 (2017). https://doi.org/10.1109/AIMS.2017.23
Richardson, C.: Decompose your monolith – Six principles for refactoring a monolith to microservices. https://chrisrichardson.net/post/refactoring/2020/07/28/six-principles-for-refactoring-to-microservices.html (n.d.). Accessed 9 February 2022
Richardson, C.: Microservices patterns. https://microservices.io/book (n.d.). Accessed 11 February 2022
Richardson, C.: Refactoring a monolith to microservices. https://microservices.io/refactoring/ (n.d.). Accessed 8 February 2022
Richardson, C.: Microservices adoption antipatterns – the series. https://microservices.io/microservices/antipatterns/-/the/series/2019/06/18/microservices-adoption-antipatterns.htm (n.d.). Accessed 16 February 2022
Carrasco, A., van Bladel, B., Demeyer, S.: Migrating towards microservices: migration and architecture smells. In: IWoR 2018 – Proceedings of the 2nd International Workshop on Refactoring, Co-Located with ASE 2018, pp. 1–6 (2018). https://doi.org/10.1145/3242163.3242164
Scanlan, B.: 10 technical strategies to avoid when scaling your startup (and 5 to embrace) – Inside intercom. https://www.intercom.com/blog/ten-technical-strategies-to-avoid-when-scaling-your-startup-and-five-to-embrace (n.d.). Accessed: 13 February 2022
Grogan, J., et al.: A multivocal literature review of Function-as-a-Service (FaaS) infrastructures and implications for software developers. In: Yilmaz, M., Niemann, J., Clarke, P., Messnarz, R. (eds.) EuroSPI 2020. CCIS, vol. 1251, pp. 58–75. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-56441-4_5
O’Connor, R.V., Elger, P., Clarke, P.: Continuous software engineering – A microservices architecture perspective. J. Softw. Evol. Process 29(11), 1–12 (2017)
Garousi, V., Felderer, M., Mäntylä, M.V.: Guidelines for including grey literature and conducting multivocal literature reviews in software engineering. J. Inf. Softw. Technol. 106, 101–121 (2019)
Acknowledgements
This research is supported in part by the Department of Enterprise, Trade and Employment, Ireland (https://enterprise.gov.ie/en/) under the Disruptive Technologies Innovation Fund grant number DTIF DT20180116, and also supported in part, by SFI, Science Foundation Ireland (https://www.sfi.ie/) grant No SFI 13/RC/2094 P2 to Lero – the Science Foundation Ireland Research Centre for Software.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
McAleese, S., McLaughlin, J.C., Detyna, F., Murashev, A., Yilmaz, M., Clarke, P.M. (2022). Serverless Software Engineering – and How to Get There.. In: Yilmaz, M., Clarke, P., Messnarz, R., Wöran, B. (eds) Systems, Software and Services Process Improvement. EuroSPI 2022. Communications in Computer and Information Science, vol 1646. Springer, Cham. https://doi.org/10.1007/978-3-031-15559-8_6
Download citation
DOI: https://doi.org/10.1007/978-3-031-15559-8_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-15558-1
Online ISBN: 978-3-031-15559-8
eBook Packages: Computer ScienceComputer Science (R0)