Skip to main content

Serverless Software Engineering – and How to Get There.

  • Conference paper
  • First Online:
Systems, Software and Services Process Improvement (EuroSPI 2022)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 109.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. 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

  2. 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

    Article  Google Scholar 

  3. Fowler, M.: Microservices. https://martinfowler.com/articles/microservices.html#footnote-etymology (n.d.). Accessed 1 February 2022

  4. 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

  5. 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

  6. 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

  7. Data source: Google Trends. https://www.google.com/trends

  8. Miller, R.: How AWS came to be – TechCrunch. http://tcrn.ch/29cG0Gh (2016). Accessed 11 February 2022

  9. 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

  10. 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

  11. Richardson, C.: What are microservices? https://microservices.io/ (n.d.). Accessed 1 February 2022

  12. 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

  13. Amazon: What is DevOps? – Amazon Web Services (AWS). https://aws.amazon.com/devops/what-is-devops (n.d.). Accessed 17 February 2022

  14. 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

  15. 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

    Article  Google Scholar 

  16. 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

  17. 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

  18. Singleton, A.: The economics of microservices. IEEE Cloud Comput. 3(5), 16–20 (2016). https://doi.org/10.1109/MCC.2016.109

    Article  Google Scholar 

  19. Richardson, C.: Introduction to microservices | NGINX. https://www.nginx.com/blog/introduction-to-microservices/ (n.d.). Accessed 15 February 2022

  20. 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

  21. 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

    Chapter  Google Scholar 

  22. 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

  23. Richardson, C.: Decompose by subdomain. https://microservices.io/patterns/decomposition/decompose-by-subdomain.html (n.d.). Accessed 9 February 2022

  24. 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

    Article  Google Scholar 

  25. 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

  26. 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

  27. 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

  28. 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

  29. Richardson, C.: Microservices patterns. https://microservices.io/book (n.d.). Accessed 11 February 2022

  30. Richardson, C.: Refactoring a monolith to microservices. https://microservices.io/refactoring/ (n.d.). Accessed 8 February 2022

  31. 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

  32. 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

  33. 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

  34. 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

    Chapter  Google Scholar 

  35. O’Connor, R.V., Elger, P., Clarke, P.: Continuous software engineering – A microservices architecture perspective. J. Softw. Evol. Process 29(11), 1–12 (2017)

    Article  Google Scholar 

  36. 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)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Paul M. Clarke .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics