ABSTRACT
With the advent of serverless computing in different domains, there is a growing need for dynamic adaption to handle diverse and heterogeneous functions. However, serverless computing is currently limited to homogeneous Function-as-a-Service (FaaS) deployments or simply FaaS Deployment (FaaSD) consisting of deployments of serverless functions using a FaaS platform in a region with certain memory configurations. Extending serverless computing to support Heterogeneous FaaS Deployments (HeteroFaaSDs) consisting of multiple FaaSDs with variable configurations (FaaS platform, region, and memory) and dynamically load balancing the invocations of the functions across these FaaSDs within a HeteroFaaSD can provide an optimal way for handling such serverless functions.
In this paper, we present a software system called Courier that is responsible for optimally distributing the invocations of the functions (called delivering of serverless functions) within the HeteroFaaSDs based on the execution time of the functions on the FaaSDs comprising the HeteroFaaSDs. To this end, we developed two approaches: Auto Weighted Round-Robin (AWRR) and PerFunction Auto Weighted Round-Robin (PFAWRR) that use functions execution times for delivering serverless functions within a HeteroFaaSD to reduce the overall execution time. We demonstrate and evaluate the functioning of our developed tool on three HeteroFaaSDs using three FaaS platforms: 1) on-premise Open-Whisk, 2) AWS Lambda, and 3) Google Cloud Functions (GCF). We show that Courier can improve the overall performance of the invocations of the functions within a HeteroFaaSD as compared to traditional load balancing algorithms.
- Austin Aske and Xinghui Zhao. 2018. Supporting Multi-Provider Serverless Computing on the Edge. In Proceedings of the 47th International Conference on Parallel Processing Companion (Eugene, OR, USA) (ICPP '18). Association for Computing Machinery, New York, NY, USA, Article 20, 6 pages. Google ScholarDigital Library
- AWS. [n.d.]. AWS Elastic LoadBalancer Limits. $https://docs.aws.amazon.com/de_de/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html$. Accessed: 2021-01-10.Google Scholar
- AWS Elastic Load Balancing. [n.d.]. https://aws.amazon.com/elasticloadbalancing/. Accessed 09/24/2020.Google Scholar
- AWS Lambda Pricing. [n.d.]. https://aws.amazon.com/lambda/pricing/. Accessed 09/24/2020.Google Scholar
- Ioana Baldini, Paul Castro, Kerry Chang, Perry Cheng, Stephen Fink, Vatche Ishakian, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski, and Philippe Suter. 2017. Serverless Computing: Current Trends and Open Problems. In Research Advances in Cloud Computing. Springer Singapore, 1--20. Google ScholarCross Ref
- Flavio Bonomi, Rodolfo Milito, Jiang Zhu, and Sateesh Addepalli. 2012. Fog Computing and Its Role in the Internet of Things. In Proceedings of the First Edition of the MCC Workshop on Mobile Cloud Computing (Helsinki, Finland) (MCC '12). Association for Computing Machinery, New York, NY, USA, 13--16. Google ScholarDigital Library
- Antonio Brogi, Ahmad Ibrahim, Jacopo Soldani, José Carrasco, Javier Cubo, Ernesto Pimentel, and Francesco D'Andria. 2014. SeaClouds. ACM SIGSOFT Software Engineering Notes 39, 1 (2 2014), 1--4. Google ScholarDigital Library
- Apache Brooklyn. [n.d.]. The Theory behind Brooklyn. https://brooklyn.apache.org/learnmore/theory.html. Accessed: 2020-01-10.Google Scholar
- Bernd Bruegge. 2010. Object-oriented software engineering : using UML, patterns, and Java. Prentice Hall, Boston. Google ScholarDigital Library
- Mohak Chadha, Anshul Jindal, and Michael Gerndt. 2020. Towards Federated Learning Using FaaS Fabric. In Proceedings of the 2020 Sixth International Workshop on Serverless Computing (Delft, Netherlands) (WoSC'20). Association for Computing Machinery, New York, NY, USA, 49--54. Google ScholarDigital Library
- Mohak Chadha, Anshul Jindal, and Michael Gerndt. 2021. Architecture-Specific Performance Optimization of Compute-Intensive FaaS Functions. CoRR abs/2107.10008 (2021). arXiv:2107.10008 https://arxiv.org/abs/2107.10008Google Scholar
- Simon Eismann, Joel Scheuner, Erwin van Eyk, Maximilian Schwinger, Johannes Grohmann, Nikolas Herbst, Cristina L. Abad, and Alexandru Iosup. [n.d.]. A Review of Serverless Use Cases and their Characteristics. ([n. d.]). arXiv:2008.11110 [cs.SE]Google Scholar
- Youssef Fahim, Hamza Rahhali, Mohamed Hanine, El-Habib Benlahmar, El-Houssine Labriji, Mostafa Hanoune, and Ahmed Eddaoui. 2018. Load Balancing in Cloud Computing Using Meta-Heuristic Algorithm. Journal of Information Processing Systems 14, 3 (2018).Google Scholar
- Chen-Fu Fan., Anshul Jindal., and Michael Gerndt. 2020. Microservices vs Serverless: A Performance Comparison on a Cloud-native Web Application. In Proceedings of the 10th International Conference on Cloud Computing and Services Science - CLOSER,. INSTICC, SciTePress, 204--215. Google ScholarCross Ref
- Martin Fowler. 2014. Circuit Breaker. https://martinfowler.com/bliki/CircuitBreaker.html. Accessed: 2021-01-10.Google Scholar
- Geoffrey C. Fox, Vatche Ishakian, Vinod Muthusamy, and Aleksander Slominski. [n.d.]. Status of Serverless Computing and Function-as-a-Service(FaaS) in Industry and Research. ([n. d.]). arXiv:1708.08028 [cs.DC] Google ScholarCross Ref
- Joseph M. Hellerstein, Jose M. Faleiro, Joseph Gonzalez, Johann Schleier-Smith, Vikram Sreekanti, Alexey Tumanov, and Chenggang Wu. 2018. Serverless Computing: One Step Forward, Two Steps Back. ArXiv abs/1812.03651 (2018).Google Scholar
- Influxdata. [n.d.]. Influxdb. https://www.influxdata.com/products/influxdb/. Accessed: 2021-05-27.Google Scholar
- Anshul Jindal, Mohak Chadha, Shajulin Benedict, and Michael Gerndt. 2021. Estimating the Capacities of Function-as-a-Service Functions. In Proceedings of the 14th IEEE/ACM International Conference on Utility and Cloud Computing Companion (Leicester, United Kingdom) (UCC '21 Companion). Association for Computing Machinery, New York, NY, USA, 8 pages. Google ScholarDigital Library
- Anshul Jindal, Mohak Chadha, Michael Gerndt, Julian Frielinghaus, Vladimir Podolskiy, and Pengfei Chen. 2021. Poster: Function Delivery Network: Extending Serverless to Heterogeneous Computing. In 2021 IEEE 41st International Conference on Distributed Computing Systems (ICDCS). 1128--1129. Google ScholarCross Ref
- Anshul Jindal, Michael Gerndt, Mohak Chadha, Vladimir Podolskiy, and Pengfei Chen. 2021. Function delivery network: Extending serverless computing for heterogeneous platforms. Software: Practice and Experience 51, 9 (2021), 1936--1963. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/spe.2966 Google ScholarCross Ref
- k6. [n.d.]. API load testing. https://k6.io/docs/testing-guides/api-load-testing/. Accessed: 2021-05-25.Google Scholar
- K6. [n.d.]. K6 Results output. https://k6.io/docs/getting-started/results-output/. Accessed: 2021-05-27.Google Scholar
- D. Kelly, F. Glavin, and E. Barrett. 2020. Serverless Computing: Behind the Scenes of Major Platforms. In 2020 IEEE 13th International Conference on Cloud Computing (CLOUD). 304--312. Google ScholarCross Ref
- M Lavanya and V Vaithiyanathan. 2015. Load prediction algorithm for dynamic resource allocation. Indian J Sci Technol 8 (2015), 35.Google ScholarCross Ref
- Sulav Malla and Ken Christensen. 2019. HPC in the cloud: Performance comparison of function as a service (FaaS) vs infrastructure as a service (IaaS). Internet Technology Letters 3, 1 (12 2019), e137. Google ScholarCross Ref
- MinIO. [n.d.]. MinIO Object Storage. https://min.io/product/overview. Accessed: 2021-05-27.Google Scholar
- Netcraft. [n.d.]. November 2020 Web Server Survey. https://news.netcraft.com/archives/2020/11/30/november-2020-web-server-survey.html. Accessed: 2021-05-25.Google Scholar
- NGINX. [n.d.]. NGINX Load Balancing Algorithms. https://www.nginx.com/blog/choosing-nginx-plus-load-balancing-techniques/. Accessed: 2020-01-10.Google Scholar
- E. D. Nitto, M. A. A. d. Silva, D. Ardagna, G. Casale, C. D. Craciun, N. Ferry, V. Muntes, and A. Solberg. 2013. Supporting the Development and Operation of Multi-cloud Applications: The MODAClouds Approach. In 2013 15th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. 417--423. Google ScholarDigital Library
- Klaithem Al Nuaimi, Nader Mohamed, Mariam Al Nuaimi, and Jameela Al-Jaroodi. 2012. A Survey of Load Balancing in Cloud Computing: Challenges and Algorithms. In 2012 Second Symposium on Network Cloud Computing and Applications. IEEE. Google ScholarDigital Library
- Google Cloud Platform. [n.d.]. Serverless network endpoint groups overview. https://cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts. Accessed: 2021-05-27.Google Scholar
- Mike Roberts. 2018. Serverless Architectures. https://martinfowler.com/articles/serverless.html. Accessed: 2020-04-17.Google Scholar
- Mohammad Shahrad, Jonathan Balkind, and David Wentzlaff. 2019. Architectural implications of function-as-a-service computing. In Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture. 1063--1075. Google ScholarDigital Library
- G. Siva Shanmugam and N.Ch.S. N. Iyengar. 2016. Effort of Load Balancer to Achieve Green Cloud Computing: A Review. International Journal of Multimedia and Ubiquitous Engineering 11, 3 (3 2016), 317--332. Google ScholarCross Ref
- The Eclipse Jetty Project. [n.d.]. https://www.eclipse.org/jetty/. Accessed 09/24/2020.Google Scholar
- The Serverless Framework. [n.d.]. https://www.serverless.com/. Accessed 09/24/2020.Google Scholar
- Ruixia Tong and Xiongfeng Zhu. 2010. A Load Balancing Strategy Based on the Combination of Static and Dynamic. In 2010 2nd International Workshop on Database Technology and Applications. IEEE. Google ScholarCross Ref
Index Terms
- Courier: delivering serverless functions within heterogeneous FaaS deployments
Recommendations
Serverless computing on heterogeneous computers
ASPLOS '22: Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating SystemsExisting serverless computing platforms are built upon homogeneous computers, limiting the function density and restricting serverless computing to limited scenarios. We introduce Molecule, the first serverless computing system utilizing heterogeneous ...
Supporting Multi-Provider Serverless Computing on the Edge
ICPP Workshops '18: Workshop Proceedings of the 47th International Conference on Parallel ProcessingServerless computing has recently emerged as a new execution model for cloud computing, in which service providers offer compute runtimes, also known as Function-as-a-Service (FaaS) platforms, allowing users to develop, execute and manage application ...
Estimating the capacities of function-as-a-service functions
UCC '21: Proceedings of the 14th IEEE/ACM International Conference on Utility and Cloud Computing CompanionServerless computing is a cloud computing paradigm that allows developers to focus exclusively on business logic as cloud service providers manage resource management tasks. Serverless applications follow this model, where the application is decomposed ...
Comments