1. A method comprising: identifying, by the processor, virtual machines and virtual network functions to provide a service; obtaining, by the processor, a first policy that defines allocation of hardware resources to host the virtual machines and the virtual network functions; obtaining, by the processor, a second policy that defines deployment of the virtual machines and the virtual network functions to the hardware resources; allocating, by the processor, the hardware resources based upon the first policy; and deploying, by the processor, the virtual machines and the virtual network functions to the hardware resources based upon the second policy.