## 6 Conclusions and Future Work  
The overall goal of this work was to characterize a solution to provide portability and interoperability between FaaS platforms. To achieve this, we defined three cloud-agnostic models that represent the main building blocks of FaaS platforms. These models werematerialized into a multi-cloud interoperability desktop tool named QuickFaaS that targets the development of cloud-agnostic functions as well as FaaS deployments to multiple cloud environments, without requiring the installation of extra provider-specific software. The proposed approach enables developers to reuse their serverless functions in multiple cloud providers, with the convenience of not having to change code. This work was an extension of a short position paper presented at the Projects Track of the _9 th European Conference On Service-Oriented And Cloud Computing_ (ESOCC) [76], where an initial view of the models was given. We now present a more complete view of the cloud-agnostic models, as well as a detailed characterization and description of a new uniform programming model for FaaS applications. Architectural and software design decisions taken when implementing the tool and its models were also described. Finally, a quantitative evaluation of the tool was discussed and compared with non-agnostic cloud solutions. The study has shown that the cloud-agnostic approach does not have a significant impact neither in the function's execution time nor in memory usage. The main contributions of this work were made publicly available on a GitHub repository [77]. In terms of code development, the repository includes the uniform programming model for authentication and FaaS deployments, and finally, the cloud-agnostic libraries and respective documentation in the _wiki_ page. The data supporting the reported results for evaluation are also included in the form of Excel spreadsheets, together with the implementation of the _search blobs_ use case using a cloud-agnostic and a cloud-non-agnostic approach. Being an open-source project will allow us to receive feedback or even accept new contributions from the community. Further development of QuickFaaS will consist on supporting more cloud providers, runtimes, and adding extra features. At the moment, Amazon Web Services (AWS) is the cloud provider with the highest priority. As for new function runtimes, Java is the only one supported for now, and we intend to support Node.js next. New possible features include enabling the automation of FaaS deployments through the command-line, and providing users a way to test their cloud-agnostic functions before being deployed. Currently, QuickFaaS does not support agnostic monitoring of the deployed serverless functions. This feature is also considered for future work in order to minimize the need to manually interact with different platforms in a multi-cloud solution. We strongly believe that this work will inspire other developers to create their own solutions that could somehow improve the portability of cloud applications for any kind of service. Contributions resulting from new projects will be fundamental to help us take major steps towards the mitigation of vendor lock-in in cloud computing. Conceptualization, P.R., F.F. and J.S. ; methodology, P.R. ; software, P.R. ; validation, P.R., F.F. and J.S. ; formal analysis, P.R. ; investigation, P.R. ; resources, P.R., F.F. and J.S. ; data curation, P.R. ; writing--original draft preparation, P.R. ; writing--review and editing, P.R., F.F. and J.S. ; visualization, P.R. ; supervision, F.F. and J.S. ; project administration, P.R., F.F. and J.S. ; funding acquisition, F.F. and J.S. All authors have read and agreed to the published version of the manuscript. This work was supported by national funds through FCT, Fundacao para a Ciencia e a Tecnologia, under project UIDB/50021/2020, and by Instituto Politecnico de Lisboa under project IPL/2021/FaaS-IntOp_ISEL.