Hybrid algorithms for placement of virtual machines across geo-separated data centers