The competition between cloud providers has led to an impressive set of cloud solutions offered to consumers. The ability to properly design and deploy multi-cloud applications (i.e., Applications deployed on multiple clouds) allows exploiting the peculiarities of each cloud solution and hence optimizing the performance and cost of the applications. However, this is hindered by the large heterogeneity of the existing cloud offerings. In this work, we present the model-driven methodology and tools developed within the MODA Clouds European project to support the design of multi-cloud applications. In particular, the proposed framework promotes a model driven approach to help reducing vendor 'lock-in', support multi-cloud deployments, and provide solutions for estimating and optimizing the performance of multi-cloud applications at design-time.