Loading…
CODE: Code once, deploy everywhere serverless functions in federated FaaS
Infrastructure-as-Code (IaC) frameworks empower developers to swiftly define and provision their infrastructure with a single click. However, the domain-specific languages (DSLs) utilized for coding the infrastructure often lean towards provider specificity rather than being application-centric. Thi...
Saved in:
Published in: | Future generation computer systems 2024-11, Vol.160, p.442-456 |
---|---|
Main Authors: | , , , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | Infrastructure-as-Code (IaC) frameworks empower developers to swiftly define and provision their infrastructure with a single click. However, the domain-specific languages (DSLs) utilized for coding the infrastructure often lean towards provider specificity rather than being application-centric. This results in increased developer effort, as they are compelled to duplicate data when deploying serverless functions across diverse regions and providers within federated FaaS environments. To mitigate this challenge, we introduce CODE, a framework engineered to streamline the deployment of functions in federated FaaS settings. CODE facilitates automatic deployment directly from the storage of any provider, eliminating the need for additional development effort to upload or copy deployment packages between disparate providers. Aligned with the guiding principle of “code once, deploy everywhere”, CODE adopts a three-level hierarchy: function → providers → cloud regions. This architectural approach dramatically reduces the lines of code (LoC) in IaC scripts by up to 9.23× when contrasted with prevailing IaC frameworks such as Terraform and Serverless Framework. Additionally, CODE’s unified storage interface slashes LoC by up to 81.8%, both within CODE itself and when coding functions that use storage from providers such as AWS and GCP. In our comprehensive evaluation, we assessed the correlation between deployment package size and deployment time for various functions within a real-world serverless workflow across four regions of AWS and GCP. Our findings indicate that AWS deployment packages are significantly larger, often in the tens of megabytes, compared to GCP. Despite the larger size, AWS deploys these packages up to 6× faster than GCP.
•CODE framework simplifies deployment of serverless functions in Federated FaaS.•CODE needs up to 9.23× less LoC compared to Infrastructure-as-a-Code frameworks.•CODE allows dynamic selection of storage providers.•CODE reduces LoC by up to 81.8% compared to the individual FaaS provider SDKs.•Deployment packages are deployed on AWS by up to 6× faster than on GCP. |
---|---|
ISSN: | 0167-739X |
DOI: | 10.1016/j.future.2024.06.017 |