Most of the tools to generate FaaS-ready code, either statically at the source code file level or dynamically at runtime, support exactly one FaaS provider. While some tools exist to convert cloud function code and thus bridge between heterogeneous syntax conventions, they do not handle the gap between API access and other differences between the FaaS providers (with some exceptions). For the convenience of the developer, having a single FaaSification tool (per language if necessary) to address all FaaS services, including their syntax, API, behaviour and limits differences, would be welcome.
We have therefore extended Lambada with multi-FaaS provider support beyond the original Lambda support. By specifying the
--provider flag upon invocation, the syntax and API/command-line tools conventions are adjusted accordingly.
With the added support in terms of syntax transformation and API integration, the following FaaS providers and engines are now supported by Lambada.
- AWS Lambda
- IBM Cloud Functions
- Google Cloud Functions
- OpenWhisk standalone
- Fission on top of Kubernetes deployments
Apart from the functional multi-FaaS additions, the code has been refactored to allow for easier integration of additional providers. To add support for Ali Functions or Oracle Functions or any similar services, a much reduce effort will be required. Along with the ability to specify custom endpoints (
--endpoint) or purely local transformations without involving FaaS (
--local), Lambada can be used flexibly to build up cloud applications in which a single function or small set of functions needs to be offloaded into in a highly-scalable environment to perform its work. Hence, following the idea of serverless computing, service application developers are less exposed to infrastructure details.
Check out Lambada from Git!