I. Introduction
Over the last years, there is a struggle to auspiciously exploit the plethora of cloud service offerings from a vastly increasing number of cloud providers. Up to a certain extent this has been successfully addressed with respect to making selection decisions on software or platform-as-a-service offerings from different providers [1]. Nevertheless, the use of multi-cloud offerings especially at the level of infrastructure in order to cope with the needs of big data applications still remains a goal. Such applications have to efficiently deal with the volume, variety, velocity, and veracity of the data, using any resources available in a cost-effective and efficient way. In this respect, there is an increasing need for data-intensive computing in highly distributed and federated cloud environments. A generic challenge is to overcome scalability, resiliency, and security issues faced by big data and data-intensive applications on distributed platforms by using transparent and optimized multi-cloud resource provisioning. One of the critical issues towards tackling the generic challenge mentioned is to design and develop the appropriate methods and tools for adequately describing placement preferences, constraints, and optimisation goals.