Lambada update: Transforming Python code into cloud functions for multiple FaaS providers

For rapid development, deployment and testing of applications based on many cloud functions, code transformation tools are on the rise. With a process called “FaaSification”, they turn code into cloud functions by following annotations or decorators specified for developers. Termite for Java, Node2FaaS for JavaScript, and Lambada for Python are representative examples of this new class of tools, related also to other overlay tools such as PyWren. This blog post summarises the recently added software features for Lambada.

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.

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!

Leave a Reply

Your email address will not be published. Required fields are marked *