Transformation of Python Applications into Function-as-a-Service Deployments
This addresses the problem for software engineers needing automated tools to adapt Python applications to FaaS cloud models, though it is incremental as it builds on existing code transformation techniques.
The paper tackles the challenge of automating the transformation of monolithic Python applications into modular Function-as-a-Service (FaaS) units, introducing Lambada, a tool that dynamically decomposes and deploys unmodified Python code into AWS Lambda functions, with evaluation showing it successfully converts applications with minimal manual intervention.
New cloud programming and deployment models pose challenges to software application engineers who are looking, often in vain, for tools to automate any necessary code adaptation and transformation. Function-as-a-Service interfaces are particular non-trivial targets when considering that most cloud applications are implemented in non-functional languages. Among the most widely used of these languages is Python. This starting position calls for an automated approach to transform monolithic Python code into modular FaaS units by partially automated decomposition. Hence, this paper introduces and evaluates Lambada, a Python module to dynamically decompose, convert and deploy unmodified Python code into AWS Lambda functions. Beyond the tooling in the form of a measured open source prototype implementation, the paper contributes a description of the algorithms and code rewriting rules as blueprints for transformations of other scripting languages.