论文标题
作为服务(OAA)的对象:在无服务器云中启用对象抽象
Object as a Service (OaaS): Enabling Object Abstraction in Serverless Clouds
论文作者
论文摘要
作为服务(FAAS)范式的功能正变得广泛,并被设想为减轻程序员和云解决方案架构师负担的下一代云系统。但是,FAA的抽象仅使云资源管理方面透明,但不处理应用程序数据方面。因此,开发人员通常必须通过单独的云服务(例如AWS S3)来承担管理应用程序数据的负担。同样,FAAS抽象并不本地支持功能工作流程,因此,开发人员通常必须使用工作流编排服务(例如,AWS步骤功能)来构建工作流程。此外,他们必须在整个工作流程中明确导航数据。为了克服FAA的这些问题,我们设计了一个更高级别的云编程抽象,从而掩盖了复杂性并减轻了发展云本地应用程序开发的负担。我们从面向对象的编程中借用对象的概念,并在功能抽象的顶部提出了一个新的抽象级别,称为对象为服务(OAA)。 OAA将应用程序数据和功能封装到对象抽象中,并使开发人员免于资源和数据管理负担。它还可以为内置优化功能(例如软件可重复性,数据局部性和缓存)开放机会。 OAA本地支持数据流编程,以便开发人员透明地定义功能的工作流程,而无需参与数据导航,同步和并行性方面。我们实施了OAAS平台的原型,并在现实世界中针对最新平台进行了有关施加的开销,可扩展性和易用性的评估。结果表明,OAAS简化了云编程,并提供了对基础云系统无关紧要的开销的可扩展性。
Function as a Service (FaaS) paradigm is becoming widespread and is envisioned as the next generation of cloud systems that mitigate the burden for programmers and cloud solution architects. However, the FaaS abstraction only makes the cloud resource management aspects transparent but does not deal with the application data aspects. As such, developers have to undergo the burden of managing the application data, often via separate cloud services (e.g., AWS S3). Similarly, the FaaS abstraction does not natively support function workflow, hence, the developers often have to work with workflow orchestration services (e.g., AWS Step Functions) to build workflows. Moreover, they have to explicitly navigate the data throughout the workflow. To overcome these problems of FaaS, we design a higher-level cloud programming abstraction that hides the complexities and mitigate the burden of developing cloud-native application development. We borrow the notion of object from object-oriented programming and propose a new abstraction level atop the function abstraction, known as Object as a Service (OaaS). OaaS encapsulates the application data and function into the object abstraction and relieves the developers from resource and data management burdens. It also unlocks opportunities for built-in optimization features, such as software reusability, data locality, and caching. OaaS natively supports dataflow programming such that developers define a workflow of functions transparently without getting involved in data navigation, synchronization, and parallelism aspects. We implemented a prototype of the OaaS platform and evaluated it under real-world settings against state-of-the-art platforms regarding the imposed overhead, scalability, and ease of use. The results demonstrate that OaaS streamlines cloud programming and offers scalability with an insignificant overhead to the underlying cloud system.