Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 4.53 KB

README.md

File metadata and controls

56 lines (42 loc) · 4.53 KB

QuickFaaS ☁️

QuickFaaS is a multi-cloud interoperability desktop tool targeting cloud-agnostic functions development and FaaS deployments. QuickFaaS substantially improves developers' productivity, flexibility and agility when creating serverless solutions to different cloud providers without requiring the installation of provider-specific software.

The proposed cloud-agnostic approach enables developers to reuse their serverless functions in multiple cloud providers with no need to rewrite code. This solution aims to minimize vendor lock-in in FaaS platforms by increasing the portability of serverless functions, which will, therefore, encourage developers and organizations to target different vendors in exchange for a functional benefit.

Note

  • QuickFaaS was originally developed within the context of a Master’s degree dissertation titled "Characterizing and Providing Interoperability to FaaS Platforms", at Instituto Superior de Engenharia de Lisboa (ISEL), Lisboa, Portugal.

Besides the application's source code, this repository also includes the uniform programming model for authentication and FaaS deployments to be used through the command-line, together with the cloud-agnostic libraries. An evaluation is also provided in the form of Excel spreadsheets in order to validate the proposed solution by measuring the impact of a cloud-agnostic approach on the function's performance, when compared to a cloud-non-agnostic one.

Be sure to check out the wiki page for more information regarding the usage of cloud-agnostic libraries.

Publications 📰

QuickFaaS: Providing Portability and Interoperability between FaaS Platforms

  • [DOI] Accepted for publication by MDPI in the peer-reviewed scientific journal Future Internet, within the special issue "Distributed Systems for Emerging Computing: Platform and Application".
  • [DOI] Included in the proceedings of the 9th European Conference On Service-Oriented And Cloud Computing (ESOCC), in the projects track, published by Springer in the Communications in Computer and Information Science (CCIS) book series.

Desktop application 💻

Authentication Function Configuration
Function Definition FaaS Deployment

System requirements

QuickFaaS was developed using Kotlin and Desktop Compose as a self-contained desktop application, meaning that no JDK needs to be installed on the target system in order to run it.

The function-deployment folders already include a Maven version to build and deploy Java projects to FaaS platforms. Node.js is not yet supported.

Enabling FaaS deployments

Google Cloud Platform

In order to deploy cloud-agnostic functions through QuickFaaS to Google Cloud Platform, you will first need:

  1. Google account.
  2. Project in Google Cloud Platform responsible for managing all types of services.
  3. Billing Account, that can be linked to multiple projects.
  4. Bucket, responsible for storing function sources.
  5. The Cloud Functions API enabled.
  6. The Cloud Resource Manager API enabled - allows to programmatically manage metadata for GCP resources

Microsoft Azure

In order to deploy cloud-agnostic functions through QuickFaaS to Microsoft Azure, you will first need:

  1. Microsoft account.
  2. Azure account.
  3. At least one active Subscription associated with the Azure account.
  4. Resource Group to hold various types of resources.
  5. Storage Account, responsible for storing function sources.

References