Abstract
Today, Serverless computing gathers pace and attention in the cloud computing area. The abstraction of operational tasks combined with the auto-scaling property are convincing reasons to adapt this new cloud paradigm. Building applications in a Serverless style via cloud functions is challenging due to the fine-grained architecture and the tighter coupling to back end services. Increased complexity, loss of control over software layers and the large number of participating functions and back end services complicate the task of finding the cause of a faulty execution. A tedious but widespread strategy is the manual analysis of log data. In this paper, we present a semi-automated troubleshooting process to improve fault detection and resolution for Serverless functions. Log data is the vehicle to enable a posteriori analysis. The process steps of our concept enhance the log quality, detect failed executions automatically, and generate test skeletons based on the information provided in the log data. Ultimately, this leads to an increased test coverage, a better regression testing and more robust functions. Developers can trigger this process asynchronously and work with their accustomed tools. We also present a prototype SeMoDe to validate our approach for Serverless functions implemented in Java and deployed to AWS Lambda.

Similar content being viewed by others
References
Fromm K (2012) Why the future of software and apps is Serverless. https://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/. Accessed 31 Jan 2018
Savage N (2018) Going Serverless. Commun ACM 61:2
Mell P, Grance T (2011) The NIST deinition of cloud computing. Technical report, National Institute of Standards and Technology, Gaithersburg
Baldini I et al (2017) Serverless computing: current trends and open problems. In: Chaudhary S, Somani G, Buyya R (eds) Research advances in cloud computing. Springer, Singapore
Sbarski P (2017) Serverless architectures on Aws: with examples using Aws Lambda. Manning Publications, New York
Kolb S, Wirtz G (2014) Towards application portability in platform as a service. In: Proceedings of SOSE
van Eyk E et al (2017) The SPEC cloud group’s research vision on FaaS and Serverless architectures. In: Proceedings of WoSC
Hendrickson S et al (2016) Serverless computation with openLambda. In: Proceedings of HotCloud
Villamizar M et al (2016) Infrastructure cost comparison of running web applications in the cloud using AWS Lambda and monolithic and microservice architectures. In: Proceedings of CCGrid
Jonas E et al (2017) Occupy the cloud: distributed computing for the 99%. In: Proceedings of SoCC
Roberts M, Chapin J (2017) What is Serverless?. O’Reilly Media. Inc, Newton
Spring J (2011) Monitoring cloud computing by layer, part 1. IEEE Secur Priv 9(2):66–68
Spring J (2011) Monitoring cloud computing by layer, part 2. IEEE Secur Priv 9(3):52–55
Aceto G et al (2012) Cloud monitoring: definitions, issues and future directions. In: Proceedings of CLOUDNET
Yuan D et al (2011) Improving software diagnosability via log enhancement. In: Proceedings of ASPLOS
Kobayashi M et al (2017) Discovering cloud operation history through log analysis. In: Proceedings of AnNet
Kellogg M (2016) Combining bug detection and test case generation. In: Proceedings of SIGSOFT
Armbrust M et al (2010) A view of cloud computing. Commun ACM 53(4):50–58
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Manner, J., Kolb, S. & Wirtz, G. Troubleshooting Serverless functions: a combined monitoring and debugging approach. SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 99–104 (2019). https://doi.org/10.1007/s00450-019-00398-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00398-6