Tutorial at ICDCS 2024

Object as a Service (OaaS) Serverless Cloud Computing Paradigm


A tutorial at ICDCS 2024: 44th IEEE International Conference on Distributed Computing Systems  
July 2024, Jersey City, New Jersey, USA 


Presenters: Pawissanutt Lertpongrujikorn and Dr. Mohsen Amini,
High Performance Cloud Computing (HPCC) Lab

Department of Computer Science and Engineering
University of North Texas


 

Summary:

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 primarily happens by offering higher-level serverless abstractions, such as Function as a Service (FaaS). Although FaaS has successfully abstracted developers from the details of cloud resource management, it falls short in abstracting the management of both data (i.e., state) and 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.

Tutorial Agenda: 

  1. Presentation 
  2. Serverless system and our vision of the next-generation cloud computing
  3. Our solution: Object as a Service (OaaS) 
  4. Our prototype implementation: Oparaca platform 

      Practical Elements of the Tutorials 

      1. Installing the Oparaca platform.  We use the local Kubernetes as the container orchestrator and then install Oparaca on top of it. 
      1. Accessing and managing Oparaca. We provide an Oparaca CLI to manage the deployment, access the deployed object, and invoke the function on the object  
      1. Developing an application. We demonstrate how to develop an application using Python on the Oparaca platform. 
      1. Deploying an application and API interacting.  We show how to use the CLI command to deploy it to the Oparaca platform. Then, Developers can use CLI, REST API, or gRPC to interact with objects. 
      1. Deployment Optimization. We demonstrate how to guide the optimization by configuring the non-functional requirements in the class definition. 
         

      Characteristic of Oparaca: 

      1. Unified abstraction: a single abstraction for managing resource, computation, and non-functional requirements. 
      1. Pluggable architecture that works with different execution and storage layers. 
      1. Support both structured (ex. JSON) and unstructured (ex. text, image) state data. 
      1. Dataflow abstraction: define workflows in declarative manner. 
      1. Non-functional requirements (QoS + constraints) encapsulation. 
      1. Built-in distributed in-memory cache to improve system response time in scalable manner.