On the resource provision side cloud computing already offers rapid elasticity and dynamic scalability. Infrastructure as a service (IaaS) clouds can scale up or down on demand. However, the dynamic and intelligent utilisation of such scalability from the perspective of cloud applications is not trivial. Many legacy applications have been migrated to cloud infrastructures that only consume and run on a predefined static set of resources. More cloud-aware applications have also been developed that offer dynamic scalability based on the demands of user numbers or application characteristics. However, these applications have typically been custom developed requiring significant time and low level cloud computing expertise to implement.
Typical industry and public sector applications require resource scalability and efficient resource utilisation in order to serve a variable number of customers with dynamic resource demands, and to suitably optimise resource consumption and costs. Cloud computing has the potential to fulfil these requirements. In order to support the development of a large number of private and public sector applications that are capable utilising the dynamic and scalable nature of IaaS clouds, advanced tools are required that support application developers. Custom developing cloud awareness to every single application is not a scalable solution. This approach would require significant training and development time that especially smaller organisations, such as SMEs cannot afford.