Abstract
Serverless computing is a recent deployment model for cloud, edge and fog computing platforms, which ultimate goal is to provide cost reduction and scalability enhancement with no additional deployment overhead. The main implementation of this model is Functions-as-a-Service (FaaS): Developers deploy modular functions, which are typically event-driven, on the platform without the need to manage the underlying infrastructure. Moreover, using the so called warm start mode, the FaaS containers hosting the application are kept up and running after initialization, granting the user the impression of high availability. Conversely, in a cold start mode scenario, those containers are deleted when no application requests are received within a certain time window, to save resources. This focus on resources efficiency and flexibility could make the serverless approach significantly convenient for edge computing based applications, in which the hosting nodes consist of devices and machines with limited resources, geographically distributed in proximity to the users. In this paper, we explore the available solutions to deploy a serverless application in an edge computing scenario, with a focus on open-source tools and IoT data.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
A Pod is a single running entity containing one or more containers.
- 2.
- 3.
Go is a statically typed, compiled programming language with memory safety, garbage collection and structural typing features.
- 4.
Available only in OpenFaaS PRO.
- 5.
- 6.
Kubernetes Secrets can be passwords, tokens or keys. Secrets are stored in the API server’s underlying data store (etcd).
- 7.
Rust is a multi-paradigm, general-purpose programming language designed for performance and security, especially safe concurrency. Syntactically similar to C++, it can also guarantee memory safety by using a borrow checker to validate references.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
References
Hong C-H, Varghese B (2019) Resource management in fog/edge computing: a survey on architectures, infrastructure, and algorithms. ACM Comput Surv 52(5) [Online]. Available at https://doi.org/10.1145/3326066
Rimal BP, Maier M, Satyanarayanan M (2018) Experimental testbed for edge computing in fiber-wireless broadband access networks. IEEE Commun Mag 56(8):160–167
Artuñedo D et al (2021) Edge computing for 5g networks, v1.0. Tech. Rep., 5GPPP Technology Board Working Group [Online]. Available at https://doi.org/10.5281/zenodo.3698117
Sabella D, Alleman A, Liao E, Filippou M, Ding Z, Gomes Baltar L, Srikanteswara S, Bhuyan K, Oyman O, Schatzberg G, Oliver N, Smith N, Mishra SD, Thakkar P, Shailendra S (2021) Edge Computing: from standard to actual infrastructure deployment and software development—whitepaper 2021
Multi-access edge computing (MEC) [Online]. Available at https://www.etsi.org/technologies/multi-access-edge-computing
Castro P, Ishakian V, Muthusamy V, Slominski A (2019) The rise of serverless computing. Commun ACM 62(12):44–54 [Online]. Available at https://doi.org/10.1145/3368454
CNCF WG-Serverless Whitepaper v1.0
Nastic S, Rausch T, Scekic O, Dustdar S, Gusev M, Koteska B, Kostoska M, Jakimovski B, Ristov S, Prodan R (2017) A serverless real-time data analytics platform for edge computing. IEEE Internet Comput 21(4):64–71
Glikson A, Nastic S, Dustdar S (2017) Deviceless edge computing: extending serverless computing to the edge of the network. In: Proceedings of the 10th ACM international systems and storage conference, ser. SYSTOR ’17. Association for Computing Machinery, New York, NY, USA [Online]. Available at https://doi.org/10.1145/3078468.3078497
Benedetti P, Femminella M, Reali G, Steenhaut K (2021) Experimental analysis of the application of serverless computing to IoT platforms. Sensors 21(3) [Online]. Available at https://www.mdpi.com/1424-8220/21/3/928
Mohan A, Sane H, Doshi K, Edupuganti S, Nayak N, Sukhomlinov V (2019) Agile cold starts for scalable serverless. In: 11th USENIX workshop on hot topics in cloud computing (HotCloud 19). USENIX Association, Renton, WA [Online]. Available at https://www.usenix.org/conference/hotcloud19/presentation/mohan
Manner J, Endreß M, Heckel T, Wirtz G (2018) Cold start influencing factors in function as a service. In: 2018 IEEE/ACM international conference on utility and cloud computing companion (UCC Companion), pp 181–188
OpenFaaS: open function as a service [Online]. Available at https://www.openfaas.com/. Accessed 26 Sept 2021
Hendrickson S, Sturdevant S, Harter T, Venkataramani V, Arpaci-Dusseau AC, Arpaci-Dusseau RH (2016) Serverless computation with OpenLambda. In: 8th USENIX workshop on hot topics in cloud computing (HotCloud 16). USENIX Association, Denver, CO
Kritikos K, Skrzypek P (2018) A review of serverless frameworks. In: 2018 IEEE/ACM UCC Companion, pp 161–168
Aggarwal V, Thangaraju B (2020) Performance analysis of virtualisation technologies in NFV and edge deployments. In: 2020 IEEE CONECCT, pp 1–5
Mohanty SK, Premsankar G, di Francesco M (2018) An evaluation of open source serverless computing frameworks. In: 2018 CloudCom, pp 115–120
OpenFaaS: templates [Online]. Available at https://www.github.com/openfaas/templates
Knative: code samples overview [Online]. Available at https://knative.dev/docs/serving/samples/
Nuclio: code examples [Online]. Available at https://nuclio.io/docs/latest/examples/
Kubernetes: production-grade container orchestration [Online]. Available at https://kubernetes.io/
Li J, Kulkarni SG, Ramakrishnan KK, Li D (2019) Understanding open source serverless platforms: Design considerations and performance. In: Proceedings of the 5th international workshop on serverless computing, ser. WOSC ’19. Association for Computing Machinery, New York, NY, USA, pp 37–42 [Online]. Available at https://doi.org/10.1145/3366623.3368139
Kubernetes horizontal pod autoscaler [Online]. Available at https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
Knative [Online]. Available at https://knative.dev/docs/
Apache OpenWhisk is a serverless, open source cloud platform [Online]. Available at https://openwhisk.apache.org/
Nuclio: serverless platform for automated data science [Online]. Available at https://nuclio.io/
Djemame K, Parker M, Datsev D (2020) Open-source serverless architectures: an evaluation of apache OpenWhisk. In: 2020 IEEE/ACM 13th international conference on utility and cloud computing (UCC), pp 329–335
Triggers | Fission [Online]. Available at https://fission.io/docs/usage/triggers/
Stack—OpenFaaS [Online]. Available at https://docs.openfaas.com/architecture/stack/#layers-and-responsibilities
Prometheus—monitoring system & time series database [Online]. Available at https://prometheus.io/
Benedetti P, Femminella M, Reali G, Steenhaut K (2022) Reinforcement learning applicability for resource-based auto-scaling in serverless edge applications. In: 2022 IEEE international conference on pervasive computing and communications workshops and other affiliated events (PerCom Workshops), pp 674–679
NATS—connective technology for adaptive edge & distributed systems [Online]. Available at https://nats.io/
Watchdog—OpenFaaS [Online]. Available at https://docs.openfaas.com/architecture/watchdog/
Welcome to flask—flask documentation (1.1.x) [Online]. Available at https://flask.palletsprojects.com/en/1.1.x/
CVE Details: CVE-2019-5736 (2019) [Online]. Available at https://www.cvedetails.com/cve/CVE-2019-5736/
Exploiting CVE-2017-5123 (2017) [Online]. Available at https://reverse.put.as/2017/11/07/exploiting-cve-2017-5123/
Chen J (2019) Making containers more isolated: an overview of sandboxed container technologies [Online]. Available at https://bit.ly/2ZcRBOR
Zhang Y et al (2018) KylinX: a dynamic library operating system for simplified and efficient cloud virtualization. In: USENIX ATC 18, Boston, MA, pp 173–186
Talbot J et al (2019) A security perspective on Unikernels [Online]. Available at https://arxiv.org/abs/1911.06260
Nabla Containers [Online]. Available at https://github.com/nabla-containers
gvisor [Online]. Available at https://gvisor.dev/
Randazzo A, Tinnirello I (2019) Kata containers: an emerging architecture for enabling MEC services in fast and secure way. In: IOTSMS, pp 209–214
Linux KVM [Online]. Available at https://www.linux-kvm.org/page/Main_Page
Agache A et al (2020) Firecracker: lightweight virtualization for serverless applications. In: 17th USENIX NSDI, Santa Clara, CA, Feb 2020, pp 419–434
Jung R et al (2017) RustBelt: securing the foundations of the rust programming language. Proc ACM Program Lang 2(POPL)
Perez R, Benedetti P, Pergolesi M, Garcia-Reinoso J, Zabala A, Serrano P, Femminella M, Reali G, Banchs A (2021) A performance comparison of virtualization techniques to deploy a 5g monitoring platform. In: 2021 joint European conference on networks and communications 6g summit (EuCNC/6G Summit), pp 472–477
Knative Services [Online]. Available at https://gvisor.dev/docs/tutorials/knative/
OpenFaaS—Profiles [Online]. Available at https://docs.openfaas.com/reference/profiles/
FC not working with k8s in kata 2.x (2020) [Online]. Available at https://github.com/kata-containers/kata-containers/issues/1130
Kubernetes with containerd and kata-fc not working (2020) [Online]. Available at https://github.com/kata-containers/kata-containers/issues/1118
Firecracker limitation: volume support (2018) [Online]. Available at https://github.com/kata-containers/runtime/issues/1071
Documentation: firecracker limitations (2019) [Online]. Available at https://github.com/kata-containers/documentation/issues/351
Parikh S, Dave D, Patel R, Doshi N (2019) Security and privacy issues in cloud, fog and edge computing. Procedia Comput Sci 160:734–739. The 10th international conference on emerging ubiquitous systems and pervasive networks (EUSPN-2019)/The 9th international conference on current and future trends of information and communication technologies in healthcare (ICTH-2019)/affiliated workshops [Online]. Available at https://www.sciencedirect.com/science/article/pii/S1877050919317181
Hassan B, Askar S (2021) Survey on edge computing security
Marin E, Perino D, Pietro R (2021) Serverless computing: a security perspective
Polinsky I, Datta P, Bates A, Enck W (2021) Sciffs: enabling secure third-party security analytics using serverless computing. In: Proceedings of the 26th ACM symposium on access control models and technologies, ser. SACMAT ’21. Association for Computing Machinery, New York, NY, USA, pp 175–186 [Online]. Available at https://doi.org/10.1145/3450569.3463567
Emitter: scalable real-time communication across devices [Online]. Available at https://emitter.io/
Shi W, Dustdar S (2016) The promise of edge computing. Computer 49(5):78–81
Edge computing—next steps in architecture, design and testing [Online]. Available at https://www.openstack.org/use-cases/edge-computing/edge-computing-next-steps-in-architecture-design-and-testing/
Edgex foundry [Online]. Available at https://www.edgexfoundry.org/
Shi W, Cao J, Zhang Q, Li Y, Xu L (2016) Edge computing: vision and challenges. IEEE Internet Things J 3(5):637–646
Guerzoni R, Trivisonno R, Soldani D (2014) SDN-based architecture and procedures for 5g networks. In: 1st international conference on 5g for ubiquitous connectivity, pp 209–214
Xiong Y, Sun Y, Xing L, Huang Y (2018) Extend cloud to edge with KubeEdge. In: 2018 IEEE/ACM symposium on edge computing (SEC), pp 373–377
Tang J, Yu R, Liu S, Gaudiot J-L (2020) A container based edge offloading framework for autonomous driving. IEEE Access 8:33713–33726
George A, Ravindran A (2019) Distributed middleware for edge vision systems. In: 2019 IEEE 16th international conference on smart cities: improving quality of life using ICT IoT and AI (HONET-ICT), pp 193–194
Lei B, Zhao Q, Mei J (2021) Computing power network: an interworking architecture of computing and network based on IP extension. In: 2021 IEEE 22nd international conference on high performance switching and routing (HPSR), pp 1–6
Singh J, Bello Y, Hussein AR, Erbad A, Mohamed A (2021) Hierarchical security paradigm for IoT multiaccess edge computing. IEEE Internet Things J 8(7):5794–5805
ONOS Platform: an overview [Online]. Available at https://opennetworking.org/onos/
Li X, Ma Z, Zheng J, Liu Y, Zhu L, Zhou N (2020) An effective edge-assisted data collection approach for critical events in the SDWSN-based agricultural internet of things. Electronics 9(6) [Online]. Available at https://www.mdpi.com/2079-9292/9/6/907
Baresi L, Filgueira Mendonça D (2019) Towards a serverless platform for edge computing. In: 2019 IEEE international conference on fog computing (ICFC), pp 1–10
Ning Z, Kong X, Xia F, Hou W, Wang X (2019) Green and sustainable cloud of things: enabling collaborative edge computing. IEEE Commun Mag 57(1):72–78
Acknowledgements
This work has been partially supported by the EU project 5G-CARMEN under grant agreement No. 825012. The views expressed are those of the authors and do not necessarily represent the project. The Commission is not responsible for any use that may be made of the information it contains. Section 6 was also supported by the Vlaio TETRA OpenCloudEdge project, project number HBC.2019.2017.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Benedetti, P., Gattobigio, L., Steenhaut, K., Femminella, M., Reali, G., Braeken, A. (2023). Open-Source Serverless for Edge Computing: A Tutorial. In: Krishnamurthi, R., Kumar, A., Gill, S.S., Buyya, R. (eds) Serverless Computing: Principles and Paradigms. Lecture Notes on Data Engineering and Communications Technologies, vol 162. Springer, Cham. https://doi.org/10.1007/978-3-031-26633-1_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-26633-1_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-26632-4
Online ISBN: 978-3-031-26633-1
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)