A number of standard techniques to achieve QoS of cloud applications include scheduling, admission control and dynamic resource provisioning:
Cloud service scheduling can be system level or user level. System level scheduling addresses resource management issues in cloud computing data centers.
The system level scheduling ensures that several multiple requests from the users are scheduled to available physical machines in the data center dynamically.
This might involve the use of auction-based schedulers to manage the demand, allocation, de-allocation, and reallocation of cloud resources.
On the other hand, user level scheduling manages service issues arising between a cloud service consumer and the cloud service provider with respect to the provisioned service(s). It might require re-evaluation of the service level agreement previously contracted between the service provider and the consumer.
At the admission control time, this mechanism offer the service provider a huge capacity to consider the basic computational and networking resources and extra potential resources’ requirements that would be needed to drive flexibility of service runtime towards optimal service performance.
Dynamic resource provisioning
This involves the selection, deployment and run-time management of software (load balancers, file and database servers) and hardware resources (network, CPU, storage, and so on) for ensuring guaranteed satisfaction of cloud service performance to the end-users.
This is a fundamental QoS requirement ensuring that cloud workloads are provisioned with appropriate resources. Parameters for resource provisioning include response time, cost , revenue maximization, fault tolerance, reduced SLA violation, and reduced power consumption.