Elasticity is the capability of an application to adapt its resource usage to the current workload of the system. Existing platform-as-a-service (PaaS) solutions concentrate on web applications and do not support elasticity for other kinds of applications. To change this, in this paper, the vision and partial implementation for a component-based PaaS cloud is proposed consisting of a programming model and an autonomic manager for safeguarding non-functional application requirements. To illustrate this vision, the paper focuses on two key features of a PaaS infrastructure, the scale-out of services and the on-demand deployment of application resources. The former allows for increasing the performance by distributing service calls among several service providers working in parallel, and the latter refers to the automatic packaging and transfer of needed deployment units. It will be shown how these aspects have been solved within the Jadex PaaS cloud infrastructure. Both concepts have been validated using an application scenario, which highlights the advantages of automatic service scaling and deployment for developers and users.An example is a complex calculation algorithm. If it is deployed as is in the cloud, there is no elasticity regarding the size of the calculation problem, as according to Amdahl's law [5], the computation speed cannot be increased by scaling out. The developer would have to split the computation manually into parallelizable chunks, for example, by applying suitable algorithmic skeletons [6] such as map-reduce.The work presented in this paper aims at supporting the development of cloud-aware componentbased applications. Programming and adaptation management concepts and a PaaS infrastructure are introduced, which empower developers to achieve application elasticity. This paper expands on a vision of elastic component-based applications presented earlier [7]. The vision focuses on programming and adaptation management concepts that allow considering explicit non-functional requirements (NFRs) and non-functional properties (NFPs) seamlessly during design, implementation, and operation of applications. In addition, this paper especially presents required features for a PaaS infrastructure suitable to realize this vision. An initial prototype of such a PaaS infrastructure is presented with a focus on service scale-out and on-demand deployment, as well as an application scenario running on the prototype infrastructure.This paper is structured as follows. In Section 2, the vision of elastic component-based applications and the chosen approach are presented. As two fundamental building blocks of the approach, Section 3 introduces a generic component model for elastic application programming, and Section 4 presents adaptation management for elastic applications. In Section 5, details of the elastic PaaS infrastructure are presented by discussing how service scale-out and on-demand deployment can be realized. Afterwards, Section 6 discusses related work, and Section 7 finally concludes the paper.
VISI...