  Cloud modelling languages (CMLs) are designed to assist customers in tackling
the diversity of services in the cloud market. While many CMLs have been
proposed in the literature, they lack practical support for automating the
selection of services based on the specific service level objectives of a
customer's application. We put forward SLO-ML, a novel and generative CML to
capture service level requirements and, subsequently, to select the services to
honour customer requirements and generate the deployment code appropriate to
these services. We present the architectural design of SLO-ML and the
associated broker that realises the deployment operations. We rigorously
evaluate SLO-ML using a mixed methods approach. First, we exploit an
experimental case study with a group of researchers and developers using a
real-world cloud application. We also assess overheads through an exhaustive
set of empirical scalability tests. Through expressing the levels of gained
productivity and experienced usability, we highlight SLO-ML's profound
potential in enabling user-centric cloud brokers. We also discuss limitations
as application requirements grow.
