Document Open Access Logo

Custom Serverless Function Scheduling Policies: An APP Tutorial

Authors Giuseppe De Palma , Saverio Giallorenzo , Jacopo Mauro , Matteo Trentin , Gianluigi Zavattaro



PDF
Thumbnail PDF

File

OASIcs.Microservices.2020-2022.5.pdf
  • Filesize: 0.67 MB
  • 16 pages

Document Identifiers

Author Details

Giuseppe De Palma
  • Università di Bologna, Italy
Saverio Giallorenzo
  • Università di Bologna, Italy
  • INRIA, Sophia Antipolis, France
Jacopo Mauro
  • University of Southern Denmark, Odense, Denmark
Matteo Trentin
  • Università di Bologna, Italy
  • University of Southern Denmark, Denmark
Gianluigi Zavattaro
  • Università di Bologna, Italy
  • INRIA, Sophia Antipolis, France

Cite AsGet BibTex

Giuseppe De Palma, Saverio Giallorenzo, Jacopo Mauro, Matteo Trentin, and Gianluigi Zavattaro. Custom Serverless Function Scheduling Policies: An APP Tutorial. In Joint Post-proceedings of the Third and Fourth International Conference on Microservices (Microservices 2020/2022). Open Access Series in Informatics (OASIcs), Volume 111, pp. 5:1-5:16, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)
https://doi.org/10.4230/OASIcs.Microservices.2020-2022.5

Abstract

State-of-the-art serverless platforms use hard-coded scheduling policies that hardly accommodate users in implementing functional or performance-related scheduling logic of their functions, e.g., preserving the execution of critical functions within some geographical boundaries or minimising data-access latencies. We addressed this problem by introducing {APP}: a declarative language for defining per-function scheduling policies which we also implemented as an extension of the open-source OpenWhisk serverless platform. Here, we present a gentle introduction to {APP} through an illustrative application developed over several incremental steps.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Scheduling
  • Computer systems organization → Cloud computing
Keywords
  • Serverless
  • Function Scheduling
  • Declarative Languages
  • Tutorial

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Cristina L. Abad, Edwin F. Boza, and Erwin Van Eyk. Package-aware scheduling of faas functions. In Proc. of ACM/SPEC ICPE, pages 101-106. ACM, 2018. URL: https://doi.org/10.1145/3185768.3186294.
  2. Erika Ábrahám, Florian Corzilius, Einar Broch Johnsen, Gereon Kremer, and Jacopo Mauro. Zephyrus2: On the Fly Deployment Optimization Using SMT and CP Technologies. In Martin Fränzle, Deepak Kapur, and Naijun Zhan, editors, Dependable Software Engineering: Theories, Tools, and Applications - Second International Symposium, SETTA 2016, Beijing, China, November 9-11, 2016, Proceedings, volume 9984 of Lecture Notes in Computer Science, pages 229-245, 2016. URL: https://doi.org/10.1007/978-3-319-47677-3_15.
  3. Istemi Ekin Akkus, Ruichuan Chen, Ivica Rimac, Manuel Stein, Klaus Satzke, Andre Beck, Paarijaat Aditya, and Volker Hilt. SAND: Towards high-performance serverless computing. In Proc. of USENIX/ATC, pages 923-935, 2018. URL: https://www.usenix.org/conference/atc18/presentation/akkus.
  4. Kalev Alpernas, Cormac Flanagan, Sadjad Fouladi, Leonid Ryzhyk, Mooly Sagiv, Thomas Schmitz, and Keith Winstein. Secure serverless computing using dynamic information flow control. Proceedings of the ACM on Programming Languages, 2(OOPSLA):1-26, 2018. URL: https://doi.org/10.1145/3276488.
  5. Amazon Web Services. AWS Compute Optimizer. https://aws.amazon.com/compute-optimizer/, aug 2023.
  6. Apache kafka. https://kafka.apache.org/, aug 2023.
  7. APP-based openwhisk extension. https://github.com/giusdp/openwhisk, aug 2023.
  8. Austin Aske and Xinghui Zhao. Supporting multi-provider serverless computing on the edge. In ICPP, Workshop Proceedings, pages 20:1-20:6. ACM, 2018. URL: https://doi.org/10.1145/3229710.3229742.
  9. Aws lambda. https://aws.amazon.com/lambda/, aug 2023.
  10. Microsoft azure functions. https://azure.microsoft.com/, aug 2023.
  11. Ioana Baldini, Paul Castro, Kerry Chang, Perry Cheng, Stephen Fink, Vatche Ishakian, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski, et al. Serverless computing: Current trends and open problems. In Research advances in cloud computing, pages 1-20. Springer, 2017. URL: https://doi.org/10.1007/978-981-10-5026-8_1.
  12. Ioana Baldini, Perry Cheng, Stephen J Fink, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, Philippe Suter, and Olivier Tardieu. The serverless trilemma: Function composition for serverless computing. In ACM Onward! 2017, pages 89-103, 2017. URL: https://doi.org/10.1145/3133850.3133855.
  13. Ali Banaei and Mohsen Sharifi. Etas: predictive scheduling of functions on worker nodes of apache openwhisk platform. The Journal of Supercomputing, sep 2021. URL: https://doi.org/10.1007/S11227-021-04057-Z.
  14. Luciano Baresi and Danilo Filgueira Mendonça. Towards a serverless platform for edge computing. In 2019 IEEE ICFC, pages 1-10. IEEE, 2019. URL: https://doi.org/10.1109/ICFC.2019.00008.
  15. Luciano Baresi and Giovanni Quattrocchi. Paps: A serverless platform for edge computing infrastructures. Frontiers in Sustainable Cities, 3:690660, 2021. Google Scholar
  16. Giuliano Casale, Matej Artač, W-J Van Den Heuvel, André van Hoorn, Pelle Jakovits, Frank Leymann, Mike Long, Vasilis Papanikolaou, Domenico Presenza, Alessandra Russo, et al. Radon: rational decomposition and orchestration for serverless computing. SICS Software-Intensive Cyber-Physical Systems, 35(1):77-87, 2020. URL: https://doi.org/10.1007/S00450-019-00413-W.
  17. IBM Cloud. Ibm cloud functions. https://cloud.ibm.com/functions/, aug 2023.
  18. Pubali Datta, Prabuddha Kumar, Tristan Morris, Michael Grace, Amir Rahmati, and Adam Bates. Valve: Securing function workflows on serverless computing platforms. In Proceedings of The Web Conference 2020, pages 939-950, 2020. URL: https://doi.org/10.1145/3366423.3380173.
  19. Giuseppe De Palma, Saverio Giallorenzo, Jacopo Mauro, Matteo Trentin, and Gianluigi Zavattaro. A declarative approach to topology-aware serverless function-execution scheduling. In 2022 IEEE International Conference on Web Services, ICWS 2022, Barcelona, Spain, July 11-15, 2022. IEEE, 2022. URL: https://doi.org/10.1109/ICWS55610.2022.00056.
  20. Giuseppe De Palma, Saverio Giallorenzo, Jacopo Mauro, and Gianluigi Zavattaro. Allocation priority policies for serverless function-execution scheduling optimisation. In Proc. of ICSOC, volume 12571 of LNCS, pages 416-430. Springer, 2020. URL: https://doi.org/10.1007/978-3-030-65310-1_29.
  21. DigitalOcean. Digitalocean functions. https://www.digitalocean.com/products/functions/, aug 2023.
  22. Maurizio Gabbrielli, Saverio Giallorenzo, Ivan Lanese, Fabrizio Montesi, Marco Peressotti, and Stefano Pio Zingaro. No more, no less - A formal model for serverless computing. In Proc. of COORDINATION, volume 11533 of LNCS, pages 148-157. Springer, 2019. URL: https://doi.org/10.1007/978-3-030-22397-7_9.
  23. Alex Glikson, Stefan Nastic, and Schahram Dustdar. Deviceless edge computing: Extending serverless computing to the edge of the network. In Proceedings of the 10th ACM International Systems and Storage Conference, SYSTOR '17, New York, NY, USA, 2017. Association for Computing Machinery. URL: https://doi.org/10.1145/3078468.3078497.
  24. Google cloud functions. https://cloud.google.com/functions/, aug 2023.
  25. Adam Hall and Umakishore Ramachandran. An execution model for serverless functions at the edge. In Proceedings of the International Conference on Internet of Things Design and Implementation, IoTDI '19, pages 225-236, New York, NY, USA, 2019. Association for Computing Machinery. URL: https://doi.org/10.1145/3302505.3310084.
  26. Hassan B Hassan, Saman A Barakat, and Qusay I Sarhan. Survey on serverless computing. Journal of Cloud Computing, 10(1):1-29, 2021. URL: https://doi.org/10.1186/S13677-021-00253-7.
  27. Joseph M. Hellerstein, Jose M. Faleiro, Joseph Gonzalez, Johann Schleier-Smith, Vikram Sreekanti, Alexey Tumanov, and Chenggang Wu. Serverless computing: One step forward, two steps back. In CIDR. www.cidrdb.org, 2019. URL: http://cidrdb.org/cidr2019/papers/p119-hellerstein-cidr19.pdf.
  28. Scott Hendrickson, Stephen Sturdevant, Tyler Harter, Venkateshwaran Venkataramani, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Serverless computation with openlambda. In Proc. of USENIX HotCloud, 2016. URL: https://www.usenix.org/conference/hotcloud16/workshop-program/presentation/hendrickson.
  29. Abhinav Jangda, Donald Pinckney, Yuriy Brun, and Arjun Guha. Formal foundations of serverless computing. Proc. of ACM on Prog. Lang., 3(OOPSLA):1-26, 2019. URL: https://doi.org/10.1145/3360575.
  30. Zhipeng Jia and Emmett Witchel. Boki: Stateful serverless computing with shared logs. In Proc. of ACM SIGOPS SOSP, pages 691-707, New York, NY, USA, 2021. ACM. URL: https://doi.org/10.1145/3477132.3483541.
  31. Eric Jonas, Johann Schleier-Smith, Vikram Sreekanti, Chia-che Tsai, Anurag Khandelwal, Qifan Pu, Vaishaal Shankar, Joao Carreira, Karl Krauth, Neeraja Jayant Yadwadkar, Joseph E. Gonzalez, Raluca Ada Popa, Ion Stoica, and David A. Patterson. Cloud programming simplified: A berkeley view on serverless computing. CoRR, abs/1902.03383, 2019. URL: http://arxiv.org/abs/1902.03383.
  32. Stefan Kehrer, Jochen Scheffold, and Wolfgang Blochinger. Serverless skeletons for elastic parallel processing. In 2019 IEEE 5th International Conference on Big Data Intelligence and Computing (DATACOM). IEEE, pages 185-192, 2019. Google Scholar
  33. Daniel Kelly, Frank Glavin, and Enda Barrett. Serverless computing: Behind the scenes of major platforms. In 2020 IEEE 13th International Conference on Cloud Computing (CLOUD), pages 304-312. IEEE, 2020. URL: https://doi.org/10.1109/CLOUD49709.2020.00050.
  34. Swaroop Kotni, Ajay Nayak, Vinod Ganapathy, and Arkaprava Basu. Faastlane: Accelerating function-as-a-service workflows. In Proc. of USENIX ATC, pages 805-820. USENIX Association, 2021. URL: https://www.usenix.org/conference/atc21/presentation/kotni.
  35. Aleksandr Kuntsevich, Pezhman Nasirifard, and Hans-Arno Jacobsen. A distributed analysis and benchmarking framework for apache openwhisk serverless platform. In Proc. of Middleware (Posters), pages 3-4, 2018. URL: https://doi.org/10.1145/3284014.3284016.
  36. Anup Mohan, Harshad Sane, Kshitij Doshi, Saikrishna Edupuganti, Naren Nayak, and Vadim Sukhomlinov. Agile cold starts for scalable serverless. In Proc. of HotCloud 19, Renton, WA, jul 2019. USENIX Association. URL: https://www.usenix.org/conference/hotcloud19/presentation/mohan.
  37. Edward Oakes, Leon Yang, Dennis Zhou, Kevin Houck, Tyler Harter, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. SOCK: Rapid task provisioning with Serverless-Optimized containers. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), pages 57-70, 2018. URL: https://www.usenix.org/conference/atc18/presentation/oakes.
  38. Apache openwhisk. https://openwhisk.apache.org/, aug 2023.
  39. Ingy döt Net Oren Ben-Kiki, Clark Evans. Yaml ain't markup language (yaml™) version 1.2. https://yaml.org/spec/1.2.2/, 2021.
  40. APP-based openwhisk deployment. https://github.com/giusdp/ow-gcp, aug 2023.
  41. Josep Sampé, Marc Sánchez-Artigas, Pedro García-López, and Gerard París. Data-driven serverless functions for object storage. In Middleware, Middleware ’17, pages 121-133. ACM, 2017. URL: https://doi.org/10.1145/3135974.3135980.
  42. Mohammad Shahrad, Jonathan Balkind, and David Wentzlaff. Architectural implications of function-as-a-service computing. In Proc. of MICRO, pages 1063-1075, 2019. URL: https://doi.org/10.1145/3352460.3358296.
  43. Mohammad Shahrad, Rodrigo Fonseca, Íñigo Goiri, Gohar Chaudhry, Paul Batum, Jason Cooke, Eduardo Laureano, Colby Tresness, Mark Russinovich, and Ricardo Bianchini. Serverless in the wild: Characterizing and optimizing the serverless workload at a large cloud provider. In Proc. of USENIX ATC, pages 205-218, 2020. URL: https://www.usenix.org/conference/atc20/presentation/shahrad.
  44. Simon Shillaker and Peter Pietzuch. Faasm: Lightweight isolation for efficient stateful serverless computing. In Proc. of USENIX ATC, pages 419-433. USENIX Association, 2020. URL: https://www.usenix.org/conference/atc20/presentation/shillaker.
  45. Paulo Silva, Daniel Fireman, and Thiago Emmanuel Pereira. Prebaking functions to warm the serverless cold start. In Proc. of Middleware, Middleware '20, pages 1-13, New York, NY, USA, 2020. ACM. URL: https://doi.org/10.1145/3423211.3425682.
  46. Christopher Peter Smith, Anshul Jindal, Mohak Chadha, Michael Gerndt, and Shajulin Benedict. Fado: Faas functions and data orchestrator for multiple serverless edge-cloud clusters. In 2022 IEEE 6th International Conference on Fog and Edge Computing (ICFEC), pages 17-25. IEEE, 2022. URL: https://doi.org/10.1109/ICFEC54809.2022.00010.
  47. Khondokar Solaiman and Muhammad Abdullah Adnan. Wlec: A not so cold architecture to mitigate cold start problem in serverless computing. In 2020 IEEE International Conference on Cloud Engineering (IC2E), pages 144-153, 2020. URL: https://doi.org/10.1109/IC2E48712.2020.00022.
  48. Vikram Sreekanti, Chenggang Wu, Xiayue Charles Lin, Johann Schleier-Smith, Joseph E. Gonzalez, Joseph M. Hellerstein, and Alexey Tumanov. Cloudburst: Stateful functions-as-a-service. Proc. VLDB Endow., 13(12):2438-2452, jul 2020. URL: http://www.vldb.org/pvldb/vol13/p2438-sreekanti.pdf.
  49. Manuel Stein. The serverless scheduling problem and noah. CoRR, abs/1809.06100, 2018. URL: https://arxiv.org/abs/1809.06100.
  50. Amoghavarsha Suresh and Anshul Gandhi. Fnsched: An efficient scheduler for serverless functions. In Proc. of WOSC@Middleware, pages 19-24. ACM, 2019. URL: https://doi.org/10.1145/3366623.3368136.
  51. Liang Wang, Mengyuan Li, Yinqian Zhang, Thomas Ristenpart, and Michael Swift. Peeking behind the curtains of serverless platforms. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), pages 133-146, 2018. URL: https://www.usenix.org/conference/atc18/presentation/wang-liang.