Modern cloud computing advances have been pressing application modernization in the last 15 years, stressing the need for application redesign towards the use of more distributed and ephemeral resources. From the initial IaaS and PaaS approaches, to microservices and now to the serverless model (and especially the Function as a Service approach), new challenges arise constantly for application developers. This paper presents a design and development environment that aims to ease application evolution and migration to the new FaaS model, based on the widely used Node-RED open source tool. The goal of the environment is to enable a more user friendly and abstract function and workflow creation for complex FaaS applications. To this end, it bypasses workflow description and function reuse limitations of the current FaaS platforms, by providing an extendable, pattern-enriched palette of ready-made, reusable functionality that can be combined in arbitrary ways. The environment embeds seamless DevOps processes for generating the deployable artefacts (i.e. functions and images) of the FaaS platform (Openwhisk). Annotation mechanisms are also available for the developer to dictate diverse execution options or management guidelines towards the deployment and operation stacks. The evaluation is based on case studies of indicative scenarios, including creating, registering and executing functions and flows based on the Node-RED runtime, embedding of existing legacy code in a FaaS environment, parallelizing a workload, collecting data at the edge and creating function orchestrators to accompany the application. For the latter, a detailed argumentation is provided as to why this process should not be constrained by the “double billing” principle of FaaS.
George Kousiouris, Szymon Ambroziak, Domenico Costantino, Stylianos Tsarsitalidis, Evangelos Boutas, Alessandro Mamelli, Teta Stamati