A multi-model optimization framework for the model driven design of cloud applications