论文标题
结合节点红色和开放式旋风,以基于模式的开发和执行复杂的FAAS工作流程
Combining Node-RED and Openwhisk for Pattern-based Development and Execution of Complex FaaS Workflows
论文作者
论文摘要
在过去的15年中,现代云计算的进步一直在施加应用现代化,强调需要重新设计应用程序使用更多分布式和短暂的资源。从最初的IAAS和PAAS接近,到现在的微服务,再到无服务器模型(尤其是作为服务方法的功能),对于应用程序开发人员而言,新的挑战不断出现。本文提出了一个设计和开发环境,旨在根据广泛使用的节点红色的开源工具来简化应用程序的演变并迁移到新的FAA模型。环境的目的是为复杂的FAAS应用程序启用更具用户友好,抽象的功能和工作流创建。为此,它绕过了当前FAAS平台的工作流程描述和功能重复使用局限性,通过提供可扩展的,富含模式的现成的,可重复使用的功能的调色板,可以以任意方式组合。环境嵌入了无缝的DevOps过程,以生成FAAS平台(OpenWhisk)的可部署人工制品(即功能和图像)。开发人员还可以使用注释机制来指示各种执行选项或管理指南对部署和操作堆栈。该评估基于指示性场景的案例研究,包括根据节点红色运行时创建,注册和执行功能和流量,将现有旧代码嵌入FAAS环境中,并行化工作负载,在边缘收集数据并创建功能编排器以伴随应用程序。对于后者,提供了详细的论点,说明为什么不应通过FAA的“双重计费”原则来限制此过程。
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.