1. A method for sharing resources in a network, the method comprising: creating, by an abstraction layer, a single virtual resource corresponding to a task to be performed by the network on behalf of a customer; mapping, by a network device, the single virtual resource to two or more different types of physical resources, in a resource pool, required to perform the task, the single virtual resource being mapped to a respective number of physical resource units for each of the different types of physical resources; detecting a variation in a workload associated with the task; and dynamically updating numbers of physical resource units for the different types of physical resources mapped to the single virtual resource in accordance with the variation in the workload associated with the task.