In the Cloud Computing paradigm, Software-as-a-Service (SaaS) is a delivery model that allows small-to-mid-sized organizations (called tenants) to out-source the operation of their business applications to a SaaS provider, and consume the (software) service on-demand and remotely via the Internet. For tenants, key requirements to that service are (i) cost efficiency and (ii) reliable service quality. Moreover, (iii.a) business applications are often subject to fast-changing requirements, and (iii.b) tenants appreciate being able to benefit from trending technologies. In addressing those requirements, SaaS providers rely on sharing resources among tenants (called multi tenancy), typically up to the application level, and operate the application at large scale. The SaaS delivery model, while providing many benefits additional to cost efficiency, inherently limits control by a tenant. As a result, its success is bound to establishing and maintaining tenants' trust into the SaaS application's operation. To that end, evolving multi-tenant SaaS applications are insufficiently supported: For some upgrades scenarios, either service quality or cost efficiency can be maintained during their enactment, but not both. In practice, necessary trade-offs are decided for on a per-upgrade basis and affect all tenants of the SaaS application equally and simultaneously. In this dissertation, we present a middleware and a complementary software (upgrade) development process to (i) efficiently support customization of tenant-perceived behaviour during an upgrade enactment, called transition behaviour. Moreover, our middleware (ii) improves on the service degradation imposed to tenants, and (iii) supports efficient operation of tenant-specific generations of the application that result from tenants delaying or rejecting an upgrade. We have evaluated a prototype of our middleware (built on top of OSGi) and relying on a case study of an industrial multi-tenant SaaS provider. Our evaluation shows that customizable transition behaviours are able to satisfy a spectrum of tenant requirements within a shared application, reducing the impact of an upgrade enactment to their business up to an acceptable level. Moreover, we show that our middleware supports multi tenancy across generations, rendering the operation of tenant-specific generations nearly cost neutral, and discuss the deployments and effects of our middleware at large scale. More generally, our approach successfully addresses the prominently perceived lack of control in Cloud Computing, paving the way for trust into remotely consumed software services that support quick time-to-market.