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.
翻译:过去15年来,现代云计算进步一直是紧迫的应用程序现代化,强调需要重新设计应用程序,以便使用更分散和短暂的资源。从最初的IaaS和PaaS方法,到微观服务和现在的服务器无模式(特别是功能作为服务方法),对应用程序开发者不断产生新的挑战。本文件展示了一个设计和开发环境,目的是便利应用的演变和向新的FaaS模式迁移,其基础是广泛使用的Node-RED开放源工具。环境的目标是为复杂的 FaaS 应用程序创建更方便用户和抽象的功能和工作流程。为此,它绕过当前 FaS 平台的工作流程描述和功能再利用限制,为此提供了可扩展的、经过模式充实的现成和可再利用功能的调试功能,可以任意地组合。环境将无缝的 DevOps 程序嵌入生成FaS 平台的可部署工艺品(例如功能和图像) (Openwhisk ) 。此外, 还可以为开发者提供描述机制,以决定不同的执行选项和功能再利用当前FaS 规则的工作流程, 正在运行的运行的运行的运行的运行指令和操作功能。