Han Ping Fung's answer is good because it's unambiguous. I also like the equivalence made between provision and provide. Unfortunately, "to provision" has become a verb in place of the perfectly suitable "to provide".
Reducing Han Ping Fung's answer to the barest form to facilitate formation of a concept, I'd offer that:
"Resource allocation is the process of reservation that demarcates a quantity of a resource for a tenant's use."
"Resource provision is the process of activation of a bundle of the allocated quantity to bear the tenant's workload."
I would also like to add the concept of the available resource, in addition to that of the allocated resource and that of the provisioned resource.
Immediately after allocation, all the quantity of a resource is available. Provision removes a quantity of a resource from the available set. De-provision returns a quantity of a resource to the available set.
At any time:
Allocated quantity = Available quantity + Provisioned quantity
Not much sure, however provisioning signifies the total/max resources that an entity could hold, where as allocation signifies resources currently held by the entity.
1) Resource Allocation - the allocation of a pool of cloud resources e.g. CPU, Memory, Storage & Network in IaaS context to a tenant (from public cloud service provider perspective) or to a department / group of users (from private cloud administrator perspective). Resource allocation normally based on policy set e.g. gold customer have larger resource pool vs bronze customer etc.
2) Resource Provisioning - Once the pool of cloud resources have been allocated to a tenant for example, the tenant cloud administrator under his or her disposal can provision / provide bundled resource e.g. VM which consists of certain vCPU, Memory, Storage, Network (Ports, IP Address / Subnet Mask, VLAN) etc. to the actual user of the VM. The provisioning normally based on template / image set & carry out using orchestrator automated flows or directly via Virtual Machine Manager (e.g. VMware vCenter, Microsoft SCVMM, RHEVM etc)
I would say that from a practical point of view allocation="requirement of an application/user" whereas provisionning="assignment of resources to the application/user". With this in mind an application cannot provision more than it has allocated, Taking EC2's example each user has allocated at most 20 on demand instances and even fewer for newer instance types, but he can provision as many as his application needs.
Han Ping Fung's answer is good because it's unambiguous. I also like the equivalence made between provision and provide. Unfortunately, "to provision" has become a verb in place of the perfectly suitable "to provide".
Reducing Han Ping Fung's answer to the barest form to facilitate formation of a concept, I'd offer that:
"Resource allocation is the process of reservation that demarcates a quantity of a resource for a tenant's use."
"Resource provision is the process of activation of a bundle of the allocated quantity to bear the tenant's workload."
I would also like to add the concept of the available resource, in addition to that of the allocated resource and that of the provisioned resource.
Immediately after allocation, all the quantity of a resource is available. Provision removes a quantity of a resource from the available set. De-provision returns a quantity of a resource to the available set.
At any time:
Allocated quantity = Available quantity + Provisioned quantity
Not much sure, resource provisioning is to provision the resources by service provides to users based upon their demand. After provisioning the resources, use the scheduling algorithm to allocate the request at VMs. So, provisioning comes before the scheduling/allocation.
A resource provisioning mechanism is used in cloud computing to enable cloud consumers to rent a set of resources on a short term or a long term bases
Cloud service providers such as Amazon EC2, generally offer pricing schemes in the form of
Allocation is the provision of resources--CPUs, RAM, disk capacity, network bandwidth (even power and cooling) to support user(s) or shared set of applications .