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

Read original: arXiv:2408.04898 - Published 8/12/2024 by Pawissanutt Lertpongrujikorn, Mohsen Amini Salehi
Total Score

0

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

Sign in to get full access

or

If you already have an account, we'll log you in

Overview

  • The paper presents "Object as a Service" (OaaS), a serverless abstraction model that simplifies cloud-native development.
  • OaaS allows developers to focus on building applications without worrying about underlying infrastructure or server management.
  • It provides an object-based, declarative interface for cloud resources, enabling developers to create, manage, and orchestrate "serverless objects" at scale.

Plain English Explanation

The paper introduces a new cloud computing concept called "Object as a Service" (OaaS) that aims to make developing cloud-native applications easier. Cloud-native development refers to building applications that are designed to run in the cloud, taking advantage of cloud computing features like scalability and on-demand resource allocation.

Traditionally, cloud-native development can be complex, as developers need to worry about managing the underlying infrastructure, such as servers, databases, and other cloud services. OaaS provides an abstraction layer that simplifies this process. Instead of working with individual cloud resources, developers can create and manage "serverless objects" - self-contained units that encapsulate both the code and the necessary cloud infrastructure.

Serverless computing is a related concept where users don't have to manage servers or other infrastructure; they just deploy their code, and the cloud provider handles the rest. OaaS builds on this idea, allowing developers to work with higher-level "objects" rather than individual cloud services or functions.

The key benefit of OaaS is that it enables developers to focus on building their applications without getting bogged down in the details of cloud infrastructure management. By providing a declarative, object-based interface, OaaS allows developers to create, scale, and orchestrate their cloud resources more easily, leading to faster development and deployment of cloud-native applications.

Technical Explanation

The paper proposes the "Object as a Service" (OaaS) model as a new serverless abstraction for cloud-native development. OaaS builds on the serverless computing paradigm, where developers deploy their code without worrying about underlying infrastructure, by introducing a higher-level object-based abstraction.

In the OaaS model, developers work with "serverless objects" - self-contained units that encapsulate both the application code and the necessary cloud resources (e.g., compute, storage, networking). These objects are defined declaratively, using a domain-specific language (DSL) or API, and can be dynamically created, scaled, and orchestrated by the OaaS platform.

The key architectural components of OaaS include:

  1. Object Runtime: Manages the lifecycle of serverless objects, including provisioning, scaling, and orchestration.
  2. Object Registry: Stores and indexes the definitions of serverless objects, enabling discovery and reuse.
  3. Object Orchestrator: Coordinates the deployment and execution of serverless objects, handling tasks like load balancing and failover.

The paper discusses several benefits of the OaaS model, including:

  • Simplifying cloud-native development: By abstracting away infrastructure management, OaaS allows developers to focus on building their applications rather than dealing with cloud resource provisioning and scaling.
  • Enabling cloud-native design patterns: The object-based abstraction promotes the use of modular, composable cloud-native design patterns, such as microservices and event-driven architectures.
  • Improving developer productivity: The declarative, object-based interface of OaaS can streamline the development, deployment, and management of cloud-native applications.

The paper also presents a prototype implementation of the OaaS model and evaluates its performance and scalability using a set of benchmarks. The results demonstrate the feasibility and potential benefits of the OaaS approach compared to traditional cloud deployment models.

Critical Analysis

The paper presents a compelling vision for simplifying cloud-native development through the "Object as a Service" (OaaS) model. By providing a higher-level, object-based abstraction for cloud resources, OaaS has the potential to address some of the key challenges faced by developers working in the cloud.

One potential limitation of the OaaS approach is the complexity of the underlying system. While the object-based interface may simplify certain aspects of cloud-native development, the OaaS platform itself may require significant engineering effort to design, implement, and maintain. The paper does not extensively discuss the implementation details or the operational challenges of running an OaaS system at scale.

Additionally, the paper does not delve into the potential performance or cost implications of the OaaS model. While the authors present some preliminary benchmarks, more comprehensive analysis would be needed to understand how OaaS compares to other cloud deployment models in terms of factors like response time, throughput, and cost-efficiency.

Another area for further research could be the integration of OaaS with existing cloud-native tooling and infrastructure. The paper focuses on the OaaS model itself, but it would be valuable to explore how OaaS could be seamlessly integrated into the broader cloud-native ecosystem, leveraging and enhancing existing tools and workflows.

Despite these potential limitations, the OaaS concept represents an interesting and promising direction for simplifying cloud-native development. As cloud computing continues to evolve, approaches like OaaS that abstract away infrastructure complexity and enable more declarative, object-oriented cloud programming could become increasingly valuable.

Conclusion

The "Object as a Service" (OaaS) model presented in this paper offers a novel approach to simplifying cloud-native development. By providing a declarative, object-based abstraction for cloud resources, OaaS allows developers to focus on building their applications without worrying about the underlying infrastructure.

The key benefits of the OaaS model include faster development and deployment of cloud-native applications, the ability to leverage cloud-native design patterns more easily, and improved developer productivity. While the paper does not address all the potential challenges and limitations of the OaaS approach, it presents a compelling vision for the future of cloud-native programming.

As cloud computing continues to evolve, abstractions like OaaS that hide the complexity of infrastructure management could become increasingly important, enabling more developers to harness the power of the cloud and accelerate the creation of innovative, cloud-native applications.



This summary was produced with help from an AI and may contain inaccuracies - check out the links to read the original source documents!

Follow @aimodelsfyi on 𝕏 →

Related Papers

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

0

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

Pawissanutt Lertpongrujikorn, Mohsen Amini Salehi

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.

Read more

8/12/2024

Tutorial: Object as a Service (OaaS) Serverless Cloud Computing Paradigm
Total Score

0

Tutorial: Object as a Service (OaaS) Serverless Cloud Computing Paradigm

Pawissanutt Lertpongrujikorn, Mohsen Amini Salehi

While the first generation of cloud computing systems mitigated the job of system administrators, the next generation of cloud computing systems is emerging to mitigate the burden for cloud developers -- facilitating the development of cloud-native applications. This paradigm shift is primarily happening by offering higher-level serverless abstractions, such as Function as a Service (FaaS). Although FaaS has successfully abstracted developers from the cloud resource management details, it falls short in abstracting the management of both data (i.e., state) and the non-functional aspects, such as Quality of Service (QoS) requirements. The lack of such abstractions implies developer intervention and is counterproductive to the objective of mitigating the burden of cloud-native application development. To further streamline cloud-native application development, we present Object-as-a-Service (OaaS) -- a serverless paradigm that borrows the object-oriented programming concepts to encapsulate application logic and data in addition to non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development. We realized the OaaS paradigm through the development of an open-source platform called Oparaca. In this tutorial, we will present the concept and design of the OaaS paradigm and its implementation -- the Oparaca platform. Then, we give a tutorial on developing and deploying the application on the Oparaca platform and discuss its benefits and its optimal configurations to avoid potential overheads.

Read more

7/25/2024

The State of FaaS: An analysis of public Functions-as-a-Service providers
Total Score

0

The State of FaaS: An analysis of public Functions-as-a-Service providers

Nnamdi Ekwe-Ekwe, Lucas Amos

Serverless computing is a growing and maturing field that is the focus of much research, industry interest and adoption. Previous works exploring Functions-as-a-Service providers have focused primarily on the most well known providers AWS Lambda, Google Cloud Functions and Microsoft Azure Functions without exploring other providers in similar detail. In this work, we conduct the first detailed review of ten currently publicly available FaaS platforms exploring everything from their history, to their features and pricing to where they sit within the overall public FaaS landscape, before making a number of observations as to the state of the FaaS.

Read more

9/4/2024

📈

Total Score

0

Imaginary Machines: A Serverless Model for Cloud Applications

Michael Wawrzoniak, Rodrigo Bruno, Ana Klimovic, Gustavo Alonso

Serverless Function-as-a-Service (FaaS) platforms provide applications with resources that are highly elastic, quick to instantiate, accounted at fine granularity, and without the need for explicit runtime resource orchestration. This combination of the core properties underpins the success and popularity of the serverless FaaS paradigm. However, these benefits are not available to most cloud applications because they are designed for networked virtual machines/containers environments. Since such cloud applications cannot take advantage of the highly elastic resources of serverless and require run-time orchestration systems to operate, they suffer from lower resource utilization, additional management complexity, and costs relative to their FaaS serverless counterparts. We propose Imaginary Machines, a new serverless model for cloud applications. This model (1.) exposes the highly elastic resources of serverless platforms as the traditional network-of-hosts model that cloud applications expect, and (2.) it eliminates the need for explicit run-time orchestration by transparently managing application resources based on signals generated during cloud application executions. With the Imaginary Machines model, unmodified cloud applications become serverless applications. While still based on the network-of-host model, they benefit from the highly elastic resources and do not require runtime orchestration, just like their specialized serverless FaaS counterparts, promising increased resource utilization while reducing management costs.

Read more

7/2/2024