Object as a Service (OaaS): Enabling Object Abstraction in Serverless Clouds
Function as a Service (FaaS) paradigm is getting widespread and is envisioned to be the next generation of cloud computing systems that mitigates the burden for programmers and cloud solution architects. However, FaaS does not explicitly deal with the data, and developers have to intervene and undergo the burden of managing the application data, often, via separate cloud services (e.g., AWS RDS). We overcome this problem of FaaS by borrowing the notion of object from the object-oriented programming into the serverless systems. We propose a new paradigm on top of the function abstraction, known as Object as a Service (OaaS), that offers encapsulation and abstraction benefits. The OaaS incorporates the application data into the object abstraction and relieves the developers from dealing with separate cloud services for the data management. It also unlocks opportunities for built-in optimization features, such as software reusability, data locality, and caching. Moreover, OaaS enables dataflow programming such that the developers define a workflow of functions transparently without getting involved into the synchronization and parallelism aspects. We implemented a prototype of the OaaS platform that is low-overhead and scalable. We evaluated it under real-world settings in terms of the ease-of-use, imposed overhead, and scalability. The results demonstrate that OaaS streamlines cloud programming and offers scalability with a minor overhead to the underlying cloud system.
READ FULL TEXT