Table of Contents
Fetching ...

Streamlining Cloud-Native Application Development and Deployment with Robust Encapsulation

Pawissanutt Lertpongrujikorn, Hai Duc Nguyen, Mohsen Amini Salehi

TL;DR

Object-as-a-Service (OaaS) is presented---a novel serverless paradigm that borrows the object-oriented programming concepts to encapsulate business logic, data, and non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development.

Abstract

Current Serverless abstractions (e.g., FaaS) poorly support non-functional requirements (e.g., QoS and constraints), are provider-dependent, and are incompatible with other cloud abstractions (e.g., databases). As a result, application developers have to undergo numerous rounds of development and manual deployment refinements to finally achieve their desired quality and efficiency. In this paper, we present Object-as-a-Service (OaaS) -- a novel serverless paradigm that borrows the object-oriented programming concepts to encapsulate business logic, data, and non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development. We also propose a declarative interface for the non-functional requirements of applications that relieves developers from daunting refinements to meet their desired QoS and deployment constraint targets. We realized the OaaS paradigm through a platform called Oparaca and evaluated it against various real-world applications and scenarios. The evaluation results demonstrate that Oparaca can enhance application performance by 60X and improve reliability by 50X through latency, throughput, and availability enforcement -- all with remarkably less development and deployment time and effort.

Streamlining Cloud-Native Application Development and Deployment with Robust Encapsulation

TL;DR

Object-as-a-Service (OaaS) is presented---a novel serverless paradigm that borrows the object-oriented programming concepts to encapsulate business logic, data, and non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development.

Abstract

Current Serverless abstractions (e.g., FaaS) poorly support non-functional requirements (e.g., QoS and constraints), are provider-dependent, and are incompatible with other cloud abstractions (e.g., databases). As a result, application developers have to undergo numerous rounds of development and manual deployment refinements to finally achieve their desired quality and efficiency. In this paper, we present Object-as-a-Service (OaaS) -- a novel serverless paradigm that borrows the object-oriented programming concepts to encapsulate business logic, data, and non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development. We also propose a declarative interface for the non-functional requirements of applications that relieves developers from daunting refinements to meet their desired QoS and deployment constraint targets. We realized the OaaS paradigm through a platform called Oparaca and evaluated it against various real-world applications and scenarios. The evaluation results demonstrate that Oparaca can enhance application performance by 60X and improve reliability by 50X through latency, throughput, and availability enforcement -- all with remarkably less development and deployment time and effort.

Paper Structure

This paper contains 24 sections, 2 equations, 16 figures, 1 table.

Figures (16)

  • Figure 1: OaaS extends the FaaS abstraction to encapsulate everything into a single deployment with built-in non-functional enforcement, boosting productivity and efficiency.
  • Figure 2: Limited non-functional support from the cloud introduces repeated and complex refinement processes for quality of service. In contrast, the OaaS abstraction outsources the refinement to the cloud provider with a well-defined set of information and refinement objectives. Thus making the application development and deployment more productive.
  • Figure 3: FaaS limitations (a) prevent applications from exploiting locality for performance and (b) complicate deployment refinement.
  • Figure 4: Class diagram for the image processing example. The developer can translate the class diagram directly to cloud deployment in Listing \ref{['lst:image-yaml']} through OaaS abstraction.
  • Figure 5: Realizing objects with class runtime and template: OaaS maintains templates customized for various deployment scenarios. For a specific class, Oparaca uses one of its predefined templates to create a class runtime to manage the deployed classes optimally.
  • ...and 11 more figures