1. A method comprising: detecting, at a processor, an event relating to a service; identifying, by the processor, virtual machines and virtual network functions to provide the 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.