A method performed by a computing device in a computing system having a plurality of servers interconnected by a computer network, comprising: receiving, via the computer network, a user request from a user to instantiate a virtual machine configured to perform a task; and in response to the received request from the user, determining whether the task to be performed by the requested virtual machine is user-facing, wherein the task is user-facing when the task is configured to receive a user input from the user, process the received user input to derive an output, and provide the derived output to the user via the computer network in response to the received user input; and in response to determining that the task is user-facing, allocating the requested virtual machine to a server in the computing system, the server having computing resources not oversubscribed by additional virtual machines, and preventing the user from experiencing service delays or interruptions due to oversubscription of resources during execution of the task by the allocated virtual machine, wherein determining whether the task to be performed by the requested virtual machine is user-facing is based on checking if historical utilization data of the task has a periodic temporal pattern, wherein if the historical utilization data has a periodic pattern, it is indicated that the requested task is user-facing. receiving, via the computer network, a user request from a user to instantiate a virtual machine configured to perform a task; and in response to the received request from the user, determining whether the task to be performed by the requested virtual machine is user-facing, wherein the task is user-facing when the task is configured to receive a user input from the user, process the received user input to derive an output, and provide the derived output to the user via the computer network in response to the received user input; and in response to determining that the task is user-facing, allocating the requested virtual machine to a server in the computing system, the server having computing resources not oversubscribed by additional virtual machines, and preventing the user from experiencing service delays or interruptions due to oversubscription of resources during execution of the task by the allocated virtual machine, determining whether the task to be performed by the requested virtual machine is user-facing, wherein the task is user-facing when the task is configured to receive a user input from the user, process the received user input to derive an output, and provide the derived output to the user via the computer network in response to the received user input; and in response to determining that the task is user-facing, allocating the requested virtual machine to a server in the computing system, the server having computing resources not oversubscribed by additional virtual machines, and preventing the user from experiencing service delays or interruptions due to oversubscription of resources during execution of the task by the allocated virtual machine, wherein determining whether the task to be performed by the requested virtual machine is user-facing is based on checking if historical utilization data of the task has a periodic temporal pattern, wherein if the historical utilization data has a periodic pattern, it is indicated that the requested task is user-facing.