On-demand Provisioning in Cloud Computing

On-demand Provisioning.

  • Resource Provisioning means the selection, deployment, and run-time management of software (e.g., database server management systems, load balancers) and hardware resources (e.g., CPU, storage, and network) for ensuring guaranteed performance for applications.
  • Resource Provisioning is an important and challenging problem in the large-scale distributed systems such as Cloud computing environments.
  • There are many resource provisioning techniques, both static and dynamic each one having its own advantages and also some challenges.
  • These resource provisioning techniques used must meet Quality of Service (QoS) parameters like availability, throughput, response time, security, reliability etc., and thereby avoiding Service Level Agreement (SLA) violation.
  • Overprovisioning and under-provisioning of resources must be avoided.
  • Another important constraint is power consumption.
  • The ultimate goal of the cloud user is to minimize cost by renting the resources and from the cloud service provider’s perspective to maximize profit by efficiently allocating the resources.
  • In order to achieve the goal, the cloud user has to request the cloud service provider to make a provision for the resources either statically or dynamically.
  • So that the cloud service provider will know how many instances of the resources and what resources are required for a particular application.
  • By provisioning the resources, the QoS parameters like availability, throughput, security, response time, reliability, performance etc must be achieved without violating SLA

There are two types Provisioning

  • Static Provisioning
  • Dynamic Provisioning

Static Provisioning

  • For applications that have predictable and generally unchanging demands/workloads, it is 
  • possible to use “static provisioning" effectively.
  • With advance provisioning, the customer contracts with the provider for services.
  • The provider prepares the appropriate resources in advance of start of service.
  • The customer is charged a flat fee or is billed on a monthly basis.

Dynamic Provisioning

  • In cases where demand by applications may change or vary, “dynamic provisioning" techniques have been suggested whereby VMs may be migrated on-the-fly to new compute nodes within the cloud.
  • The provider allocates more resources as they are needed and removes them when they are not.
  • The customer is billed on a pay-per-use basis.
  • When dynamic provisioning is used to create a hybrid cloud, it is sometimes referred to as cloud bursting.

Parameters for Resource Provisioning

  1. Response time
  2. Minimize Cost
  3. Revenue Maximization
  4. Fault-tolerant
  5. Reduced SLA Violation
  6. Reduced Power Consumption

Response time: The resource provisioning algorithm designed must take minimal time to respond when executing the task.
Minimize Cost: From the Cloud user's point of view, cost should be minimized.
Revenue Maximization: This is to be achieved from the Cloud Service Provider’s view. 
Fault-tolerant: The algorithm should continue to provide service in spite of the failure of nodes. 
Reduced SLA Violation: The algorithm designed must be able to reduce SLA violations.
Reduced Power Consumption: VM placement & migration techniques must lower power consumption

Dynamic Provisioning Types

  1. Local On-demand Resource Provisioning
  2. Remote On-demand Resource Provisioning 
Local On-demand Resource Provisioning
  1. The Engine for the Virtual Infrastructure
The OpenNebula Virtual Infrastructure Engine
  • OpenNEbula creates a distributed virtualization layer
    • Extend the benefits of VM Monitors from one to multiple resources
    • Decouple the VM (service) from the physical location
  • Transform a distributed physical infrastructure into a flexible and elastic virtual infrastructure, which adapts to the changing demands of the VM (service) workloads
Separation of Resource Provisioning from Job Management
  • New virtualization layer between the service and the infrastructure layers
  • Seamless integration with the existing middleware stacks.
  • Completely transparent to the computing service and so end-users

Cluster Partitioning

  • Dynamic partition of the infrastructure
  • Isolate workloads (several computing clusters)
  • Dedicated HA partitions