Quality of service-aware co-engineering of cloud applications