Portability is an important property to assess the quality of software. In cloud environments, where functions and other services are hosted by providers with proprietary interfaces, vendor lock-in is a typical problem. In this paper, we investigated the portability situation for public Function as a Service (FaaS) offerings based on six metrics. We designed our research to address the software lifecycle of a cloud function during implementation, packaging and deployment. For a small use case, we derived a portability-optimized implementation. Via this empirical investigation and a prototypical migration from AWS Lambda to Azure Function and from AWS Lambda to Google Cloud Function respectively, we were able to reduce writing source code in the latter case by a factor of 17 measured on a Lines of Code (LOC) basis. We found that the default zip packaging option is still the favored approach at Function as a Service (FaaS) platforms. For deploying our functions to the cloud service provider, we used Infrastructure as Code (IaC) tools. For cloud function only deployments the Serverless Framework is the best option whereas Terraform supports developers for mixed deployments where cloud functions and dependent services like databases are deployed at once.
CITATION STYLE
Hartauer, R., Manner, J., & Wirtz, G. (2022). Cloud Function Lifecycle Considerations for Portability in Function as a Service. In International Conference on Cloud Computing and Services Science, CLOSER - Proceedings (pp. 133–140). Science and Technology Publications, Lda. https://doi.org/10.5220/0010999000003200
Mendeley helps you to discover research relevant for your work.