Abstract
A dynamically expanding area of cloud computing is Function as a Service (FaaS). FaaS allows customers to develop, run, and manage application functionalities on cloud infrastructure without the burden of building and managing a virtual infrastructure. The vast majority of FaaS services used in production are provided by public cloud operators, but a growing number of open source FaaS frameworks offer an alternative deploying on-premises FaaS services. FaaS frameworks support different programming language runtimes. The performance of such systems is dependent on these language runtimes. Our goal is to show and analyze this dependency, and provide insights to the important aspect when performance is essential. This paper provides a measurement based evaluation of the capabilities of different language runtimes in FaaS frameworks. We evaluate three different workloads (echo, compute intensive, and data intensive) on the selected runtimes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
OpenFaaS: of-watchdog. https://github.com/openfaas-incubator/golang-http-template
Redis: Introduction to Redis. https://redis.io/topics/introduction
Agrawal, S., et al.: Survey on Mongodb: an open-source document database. Int. J. Adv. Res. Eng. Technol. (IJARET) 1, 4 (2015)
Mongodb: Document Databases. https://www.mongodb.com/document-databases
Sullivan, D., Sullivan, J.: NoSQL key-value database simplicity vs. document database flexibility. InformIT blog, 16 Sepetmber 2015. http://www.informit.com/articles/article.aspx?p=2429466
DataStax: What is Apache Cassandra™?. https://academy.datastax.com/planet-cassandra/what-is-apache-cassandra
Beazley, D.: Understanding the Python GIL. PyCON 2010, 20 February 2010. http://www.dabeaz.com/GIL/
Node.js: Node.js v10.16.0 Documentation. https://nodejs.org/dist/latest-v10.x/docs/api/worker_threads.html
Cloudlab: The Cloudlab Manual (2019). https://docs.cloudlab.us/hardware.html
Mohanty, S.K., et al.: An evaluation of open source serverless computing frameworks. CloudCom (2018)
Fission. https://github.com/fission/fission
Kubeless. https://kubeless.io/
OpenFaaS. https://kubeless.io/
Nuclio. https://nuclio.io/
Baldini, I., et al.: Serverless computing: current trends and open problems. In: 2017 IEEE 37th International Conference on Distributed Computing Systems Workshops (ICDCSW) (2017)
Manner, J., et al.: Cold start influencing factors in function as a service. In: Fourth International Workshop on Serverless Computing (WoSC) 2018 (2018)
Manco, F., et al.: My VM is lighter (and safer) than your container. In: 26th Symposium on Operating Systems Principles, October 2017
Lee, H., et al.: Evaluation of production serverless computing environments. In: 2018 IEEE 11th International Conference on Cloud Computing (CLOUD) (2018)
de Abranches, M.C. Solis, P.: An algorithm based on response time and traffic demands to scale containers on a Cloud Computing system. In: IEEE 15th International Symposium on Network Computing and Applications (NCA), pp. 343–350, October 2016
de Abranches, M.C., Solis, P., Alchieri, E.: PAS-CA: a cloud computing auto-scalability method for high-demand web systems. In: IEEE 16th International Symposium on Network Computing and Applications (NCA), pp. 1–4 (2017)
Jin-Gang, Y., Ya-Rong, Z., Bo, Y., Shu, L.: Research and application of auto-scaling unified communication server based on docker. In: 10th International Conference on Intelligent Computation Technology and Automation (ICICTA), pp. 152–156 (2017)
Knative. https://cloud.google.com/knative/
McGee, J.: IBM Cloud teams with Google and open community to help build Knative and expand the power of serverless, IBM Blog. https://www.ibm.com/blogs/cloud-computing/2018/07/24/ibm-cloud-google-knative-serverless/
Wasson, M., Buck, A., Roberts, J., Wilson, M.: N-tier architecture style. Microsoft Azure (2018). https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/n-tier
Microsoft: Enterprise solution patterns using Microsoft.NET. Microsoft (2014). https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647095(v=pandp.10)
Hellerstein, J.M., et al.: Serverless computing: one step forward, two steps back, December 2018
AWS: AWS lambda developer guide (2019). https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
Google Cloud: Cloud functions documentation (2019). https://cloud.google.com/functions/docs/
Microsoft Azure: Azure functions documentation. https://docs.microsoft.com/en-us/azure/azure-functions/
Kennedy, W.: Scheduling In Go. Adranlabs blog (2018). https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html
Henningsen, A.: Node.js: the road to workers. In: Node.js Italian Conference (2018). https://addaleax.net/workers-nodefest/
Werkzeug. https://github.com/pallets/werkzeug
Weaveworks: Introducing weave net. https://www.weave.works/docs/net/latest/overview/
Tu, L., et al.: Understanding real-world concurrency bugs in go. In: ASPLOS 19, April 2019
Node.js: Node.js v8.16.0 documentation. https://nodejs.org/docs/latest-v8.x/api/
Acknowledgment
The research has been supported by the European Union, co-financed by the European Social Fund (EFOP-3.6.2-16-2017-00013, Thematic Fundamental Research Collaborations Grounding Innovation in Informatics and Infocommunications.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Balla, D., Maliosz, M., Simon, C., Gehberger, D. (2020). Tuning Runtimes in Open Source FaaS. In: Hsu, CH., Kallel, S., Lan, KC., Zheng, Z. (eds) Internet of Vehicles. Technologies and Services Toward Smart Cities. IOV 2019. Lecture Notes in Computer Science(), vol 11894. Springer, Cham. https://doi.org/10.1007/978-3-030-38651-1_21
Download citation
DOI: https://doi.org/10.1007/978-3-030-38651-1_21
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-38650-4
Online ISBN: 978-3-030-38651-1
eBook Packages: Computer ScienceComputer Science (R0)