Table of Contents
Fetching ...

Object as a Service: Simplifying Cloud-Native Development through Serverless Object Abstraction

Pawissanutt Lertpongrujikorn, Mohsen Amini Salehi

TL;DR

Cloud-native development with FaaS is hampered by the lack of native data management and workflow support. The authors propose Object as a Service (OaaS) and implement Oparaca, which encapsulates state, functions, and workflows in cloud objects, supported by a dataflow DSL, fail-safe state transitions, and exactly-once semantics. Through multi-engine integration, in-memory data distribution, and presigned URL-based unstructured data access, Oparaca demonstrates scalability with negligible overhead for structured data and competitive latency for compute-heavy tasks, while incurring higher costs for unstructured data access. The work shows that OaaS can significantly reduce developer burden and streamline cloud-native workflows, with promising potential for multi-datacenter deployments in the future.

Abstract

The function-as-a-service (FaaS) paradigm is envisioned as the next generation of cloud computing systems that mitigate the burden for cloud-native application developers by abstracting them from cloud resource management. However, it does not deal with the application data aspects. As such, developers have to intervene and undergo the burden of managing the application data, often via separate cloud storage services. To further streamline cloud-native application development, in this work, we propose a new paradigm, known as Object as a Service (OaaS) that encapsulates application data and functions into the cloud object abstraction. OaaS relieves developers from resource and data management burden while offering built-in optimization features. Inspired by OOP, OaaS incorporates access modifiers and inheritance into the serverless paradigm that: (a) prevents developers from compromising the system via accidentally accessing underlying data; and (b) enables software reuse in cloud-native application development. Furthermore, OaaS natively supports dataflow semantics. It enables developers to define function workflows while transparently handling data navigation, synchronization, and parallelism issues. To establish the OaaS paradigm, we develop a platform named Oparaca that offers state abstraction for structured and unstructured data with consistency and fault-tolerant guarantees. We evaluated Oparaca under real-world settings against state-of-the-art platforms with respect to the imposed overhead, scalability, and ease of use. The results demonstrate that the object abstraction provided by OaaS can streamline flexible and scalable cloud-native application development with an insignificant overhead on the underlying serverless system.

Object as a Service: Simplifying Cloud-Native Development through Serverless Object Abstraction

TL;DR

Cloud-native development with FaaS is hampered by the lack of native data management and workflow support. The authors propose Object as a Service (OaaS) and implement Oparaca, which encapsulates state, functions, and workflows in cloud objects, supported by a dataflow DSL, fail-safe state transitions, and exactly-once semantics. Through multi-engine integration, in-memory data distribution, and presigned URL-based unstructured data access, Oparaca demonstrates scalability with negligible overhead for structured data and competitive latency for compute-heavy tasks, while incurring higher costs for unstructured data access. The work shows that OaaS can significantly reduce developer burden and streamline cloud-native workflows, with promising potential for multi-datacenter deployments in the future.

Abstract

The function-as-a-service (FaaS) paradigm is envisioned as the next generation of cloud computing systems that mitigate the burden for cloud-native application developers by abstracting them from cloud resource management. However, it does not deal with the application data aspects. As such, developers have to intervene and undergo the burden of managing the application data, often via separate cloud storage services. To further streamline cloud-native application development, in this work, we propose a new paradigm, known as Object as a Service (OaaS) that encapsulates application data and functions into the cloud object abstraction. OaaS relieves developers from resource and data management burden while offering built-in optimization features. Inspired by OOP, OaaS incorporates access modifiers and inheritance into the serverless paradigm that: (a) prevents developers from compromising the system via accidentally accessing underlying data; and (b) enables software reuse in cloud-native application development. Furthermore, OaaS natively supports dataflow semantics. It enables developers to define function workflows while transparently handling data navigation, synchronization, and parallelism issues. To establish the OaaS paradigm, we develop a platform named Oparaca that offers state abstraction for structured and unstructured data with consistency and fault-tolerant guarantees. We evaluated Oparaca under real-world settings against state-of-the-art platforms with respect to the imposed overhead, scalability, and ease of use. The results demonstrate that the object abstraction provided by OaaS can streamline flexible and scalable cloud-native application development with an insignificant overhead on the underlying serverless system.
Paper Structure (34 sections, 12 figures)

This paper contains 34 sections, 12 figures.

Figures (12)

  • Figure 1: A bird-eye view of FaaS vs. OaaS.
  • Figure 2: The illustrated comparison of three different models of stateful serverless.
  • Figure 3: Different types of functions supported by OaaS.
  • Figure 4: A bird-eye view of the Oparaca architecture. Dashed lines show actions of the developer defining classes and objects, and solid lines show actions using objects and invoking functions.
  • Figure 5: The cluster of Invokers replicates and distributes object data across the cluster via IMDG with consistent hashing. The invoker offloads the invocation to a corresponding FaaS function.
  • ...and 7 more figures