Automatic Evolution of Eco-Efficient Software Architectures with CVL Models
Keywords:
Cardinality, Energy Efficiency, Evolution, Product Line Architecture, Variability, CVLAbstract
Resource sharing and mass storage in server farms provided by cloud platforms save huge amounts of energy. However, optimizing energy consumption at the server room is not enough, being desirable to perform energy optimization of cloud services at the application level. In cloud computing a tailored configuration of services is deployed for each client (tenant), requiring different energy consumption optimizations. Indeed, energy consumption of cloud services depends on several factors determined by the context and usage of the applications. So, to evolve a cloud application to new requirements of energy efficiency implies to perform custom-made adaptations for each tenant. Thus, managing the evolution of a multi-tenant application with hundreds of tenants and thousands of different valid architectural configurations can become intractable if performed manually. In this paper we propose a product line architecture approach in which: (1) we use cardinality-based variability models to model each tenant as a clonable feature, and (2) we automate the process of evolving the multi-tenant application architecture when the energy requirements change. Finally, we demonstrate that the implemented process is efficient for a high number of tenants in a reasonable time.