1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, cause a computing device to: determine a virtual machine profile for a virtual machine running on a host server in a cloud computing environment; determine one or more resource requirements of the virtual machine; determine one or more resource capacity amounts available on the host server for the virtual machine in the cloud computing environment; determine whether the one or more resource capacity amounts available on the host server meet the one or more resource requirements of the virtual machine; if the one or more resource capacity amounts available on the host server do not meet the one or more resource requirements of the virtual machine, allocate different resources of the cloud computing environment to the virtual machine; receive one or more resource usage amounts for a plurality of virtual machines in the cloud computing environment; identify a pattern among the one or more resource usage amounts for the plurality of virtual machines in the cloud computing environment over a period of time; and create a new virtual machine profile type based on the identified pattern among the one or more resource usage amounts for the plurality of virtual machines in the cloud computing environment.