Abstract
Function as a Service (FaaS) development has numerous benefits for application deployment, management, and maintenance. However, the lack of control over the infrastructure and, often, over the FaaS platform itself, makes it necessary to look for external solutions that allow the operation of the application to be adapted to different requirements or changing execution conditions. In a FaaS application, the quality of service (QoS) is determined by the characteristics of the functions executed to perform each workflow operation. Deciding the most suitable functions providing a QoS is a complex process due to the high variability of possible function implementations, each giving different qualities. Leaving this task in the hands of the developer is not a good solution and makes it difficult to program the application. We present FUSPAQ, a framework for working with serverless architectures, which can automatically select the best functions executed at runtime to satisfy specific QoS requirements. With this objective, a Software Product Line approach is used, modeling the application’s tasks and operations using Feature Models that specify the variability of functions that can perform the same operation as a family of functions. We use Z3, a cross-platform satisfiability modulo theories (SMT) solver, to generate optimal configurations. As requirements can change over time, the system automatically adapts to these changes to continue maintaining the desired QoS. We test our approach with different QoS parameters, and analyse the value added to serverless frameworks.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Source code available at https://github.com/pserranouma/fuspaq.
References
Alferez, G.H., Pelechano, V.: Context-aware autonomous web services in software product lines. In: 2011 15th International Software Product Line Conference, pp. 100–109 (2011). https://doi.org/10.1109/SPLC.2011.21
Allen, S., Aniszczyk, C., Arimura, C., et al.: CNCF serverless whitepaper (2018)
Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE 2006), pp. 201–210. Association for Computing Machinery, New York (2006). https://doi.org/10.1145/1173706.1173737
Amazon Web Services: AWS step functions. https://aws.amazon.com/es/step-functions/
Bashari, M., Bagheri, E., Du, W.: Automated composition of service mashups through software product line engineering. In: Kapitsaki, G.M., Santana de Almeida, E. (eds.) ICSR 2016. LNCS, vol. 9679, pp. 20–38. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-35122-3_2
Bocci, A., Forti, S., Ferrari, G.L., Brogi, A.: Placing FaaS in the fog, securely. In: 5th Italian Conference on Cybersecurity (ITASEC 2021), vol. 2940, pp. 166–179. CEUR-WS (2021)
Dietzsch, A.: Ratios to support the exploration of business process models in business process management (2003)
Gamez, N., El Haddad, J., Fuentes, L.: SPL-TQSSS: a software product line approach for stateful service selection. In: 2015 IEEE International Conference on Web Services, pp. 73–80 (2015). https://doi.org/10.1109/ICWS.2015.20
García López, P., Sánchez-Artigas, M., París, G., Barcelona Pons, D., Ruiz-Ollobarren, A., Arroyo-Pinto, D.: Comparison of FaaS orchestration systems. In: 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), pp. 148–153 (2018). https://doi.org/10.1109/UCC-Companion.2018.00049
HoseinyFarahabady, M.R., Lee, Y.C., Zomaya, A.Y., Tari, Z.: A QoS-aware resource allocation controller for function as a service (FaaS) platform. In: Maximilien, M., Vallecillo, A., Wang, J., Oriol, M. (eds.) ICSOC 2017. LNCS, vol. 10601, pp. 241–255. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-69035-3_17
IBM: IBM cloud functions. https://www.ibm.com/es-es/cloud/functions
Lee, K., Kang, K.C., Lee, J.: Concepts and guidelines of feature modeling for product line software engineering. In: Gacek, C. (ed.) ICSR 2002. LNCS, vol. 2319, pp. 62–77. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46020-9_5
Leitner, P., Wittern, E., Spillner, J., Hummer, W.: A mixed-method empirical study of function-as-a-service software development in industrial practice. J. Syst. Softw. 149, 340–359 (2019). https://doi.org/10.1016/j.jss.2018.12.013
Microsoft: Azure functions. https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview
Pohl, K., Böckle, G., Linden, F.: Software product line engineering: foundations, principles, and techniques. Springer, Heidelberg (2005). https://doi.org/10.1007/3-540-28901-1
Sheshadri, K.R., Lakshmi, J.: QoS aware FaaS platform. In: 2021 IEEE/ACM 21st International Symposium on Cluster, Cloud and Internet Computing (CCGrid), pp. 812–819 (2021). https://doi.org/10.1109/CCGrid51090.2021.00099
Sundermann, C., Thüm, T., Schaefer, I.: Evaluating SAT solvers on industrial feature models. In: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems, pp. 1–9. Association for Computing Machinery, NY (2020). https://doi.org/10.1145/3377024.3377025
Tzenetopoulos, A., Marantos, C., Gavrielides, G., Xydis, S., Soudris, D.: FADE: FaaS-inspired application decomposition and energy-aware function placement on the edge, pp. 7–10. Association for Computing Machinery, New York (2021)
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 paper
Cite this paper
Serrano-Gutierrez, P., Ayala, I., Fuentes, L. (2023). FUSPAQ: A Function Selection Platform to Adjust QoS in a FaaS Application. In: Troya, J., et al. Service-Oriented Computing – ICSOC 2022 Workshops. ICSOC 2022. Lecture Notes in Computer Science, vol 13821. Springer, Cham. https://doi.org/10.1007/978-3-031-26507-5_20
Download citation
DOI: https://doi.org/10.1007/978-3-031-26507-5_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-26506-8
Online ISBN: 978-3-031-26507-5
eBook Packages: Computer ScienceComputer Science (R0)