A mixed-method empirical study of Function-as-a-Service software development in industrial practice
- Published
- Accepted
- Subject Areas
- Distributed and Parallel Computing, World Wide Web and Web Science, Software Engineering
- Keywords
- cloud computing, serverless, Function-as-a-Service, empirical study
- Copyright
- © 2018 Leitner et al.
- Licence
- This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Preprints) and either DOI or URL of the article must be cited.
- Cite this article
- 2018. A mixed-method empirical study of Function-as-a-Service software development in industrial practice. PeerJ Preprints 6:e27005v1 https://doi.org/10.7287/peerj.preprints.27005v1
Abstract
Function-as-a-Service (FaaS) describes cloud computing services that make infrastructure components transparent to application developers, thus falling in the larger group of “serverless” computing models. When using FaaS offerings, such as AWS Lambda, developers provide atomic and short-running code for their functions, and FaaS providers execute and horizontally scale them on- demand . Currently, there is no systematic research on how developers use serverless, what types of applications lend themselves to this model, or what architectural styles and practices FaaS-based applications are based on. We present results from a mixed-method study, combining interviews with advanced practitioners, a systematic analysis of grey literature, and a Web-based survey. We find that successfully adopting FaaS requires a different mental model, where systems are primarily constructed by composing pre-existing services, with FaaS often acting as the “glue” that brings these services together. Tooling availability and maturity, especially related to testing and deployment, remains a major difficulty. Further, we find that current FaaS systems lack systematic support for function reuse, and abstractions and programming models for building non-trivial FaaS applications are limited . We conclude with a discussion of implications for FaaS providers, software developers, and researchers.
Author Comment
This preprint is currently under review at a peer-reviewed journal.