1. A method comprising: identifying virtual machines currently operating in a network; surveying the virtual machines to determine current resource usage data of the virtual machines; ranking, by a processing device, the virtual machines in view of the current resource usage data, wherein a rank of each virtual machine corresponds to available resources of a respective virtual machine, wherein ranking of the virtual machines comprises averaging the current resource usage data of the virtual machines over the number of virtual machines; assigning profiles to the virtual machines in view of the current resource usage data; identifying a plurality of business application service groups (BASGs) to be paired with the virtual machines based on performance data of the plurality of BASGs; and assigning, by the processing device, each of the virtual machines to at least one of the plurality of BASGs based on current resource requirement of the at least one BASG and one or more of a rank or a profile of the corresponding virtual machine indicating resource availability of the corresponding virtual machine.