Cloud applications are increasingly complex. They can often execute over various types of hardware resources (e.g., either using CPU- or GPGPU-based server machines), they can support various number of resources, etc. This means that executing a cloud application can no longer consist of starting a fixed number of virtual machines and deploying the application onto these virtual machines. To make the best out of a complex cloud application, one needs to choose the set of required resources carefully, and to automate deployment onto these resources.
In HARNESS, applications are submitted for execution using two specification files. A manifest file describes the structure of the application and the types of resources it can potentially execute on. A Service Level Objective (SLO) file describes the performance and cost that the user expects regarding the execution. The HARNESS platform is in charge of choosing the right set of resources automatically, and of deploying the application such that it respects the SLO. For example, if the user wants a very fast execution, the system will possibly choose high-end resources capable of delivering the best possible performance. On the other hand, if the user wants an inexpensive computation, the platform will choose the resources which provide the best cost/performance ratio for the application.
The HARNESS platform is based on ConPaaS , an open-source run-time environment for hosting applications in the cloud. ConPaaS aims to offer the full power of the cloud to application developers while shielding them from the associated complexity of the cloud. ConPaaS is designed to host both high-performance scientific applications and online Web applications. It automates the entire life cycle of an application, including collaborative development, deployment, performance monitoring, and automatic scaling. Finally, it runs on a variety of public and private clouds, and is easily extensible. This allows developers to focus their attention on application-specific concerns rather than on cloud-specific details.
ConPaaS in HARNESS
The HARNESS project is extending ConPaaS to make it suitable for the goals stated in our approach. First, we are extending ConPaaS to allow it to provision heterogeneous cloud resources such as GPGPUs, FPGAs, programmable routers, and advanced data storage devices. Second, we are implementing Application Managers that automatically build performance profiles of arbitrary applications; we use these profiles to choose the resources that are most likely to deliver the performance and costs that a user expects.
- G. Pierre and C. Stratan. ConPaaS: A platform for hosting elastic cloud applications. IEEE Internet Computing, 16(5):88–92, Sep. 2012