Skip to Main Content
Cloud applications target large costumer groups to leverage economies of scale. To increase the number of customers, a flexible application design is of major importance. It enables customers to adjust the application to their individual needs in a self-service manner. In this paper, we classify the required variability of these flexible applications: data variability - changes to handled data structures, functional variability - changes to the processes that the application supports, user interface variability - changes to the appearance of the application, provisioning variability - the ability of the application to be deployed in different runtime environments. Existing and new technologies and tools are leveraged to realize these classes of variability. Further, we cover architectural principles to follow during the design of flexible cloud applications and we introduce an abstract architectural pattern to enable data variability.