A method for automatically learning an improved hardware profile for an application, the method comprising: collecting, by a processing device of one or more processing devices of an operating environment, performance statistics of the application executing in a plurality of hardware configurations; automatically profiling the application, by a processing device of the one or more processing devices of the operating environment, based on the collected performance statistics to derive an improved hardware profile with respect to the application; scheduling, by a processing device of the one or more processing devices of the operating environment, deployment of a virtual machine on a second processing device of a plurality of second processing devices, the virtual machine having a virtual hardware configuration matching the derived hardware profile; deploying the virtual machine, on the second processing device, for executing the application; monitoring, by a processing device of the one or more processing devices of the operating environment, performance statistics of the application executing on the second processing device; deriving, by a processing device of the one or more processing devices of the operating environment, an updated improved hardware profile based on the monitoring; performing, by a processing device of the one or more processing devices, the scheduling of a redeployment of the virtual machine, a virtual hardware configuration of the virtual machine matching the derived updated improved hardware profile; and redeploying the virtual machine on a second processing device of the plurality of second processing devices, wherein the automatic profiling of the application further comprises: deriving a role associated with the application based on the stored collected performance statistics, wherein roles comprise a front end processor and a SQL protocol server, wherein each of the roles are defined as a range of hardware profiles, and wherein the role is derived based on matching the derived hardware profile to one of the range of hardware profiles corresponding to a role, and associating the role with the hardware profile.. collecting, by a processing device of one or more processing devices of an operating environment, performance statistics of the application executing in a plurality of hardware configurations; automatically profiling the application, by a processing device of the one or more processing devices of the operating environment, based on the collected performance statistics to derive an improved hardware profile with respect to the application; scheduling, by a processing device of the one or more processing devices of the operating environment, deployment of a virtual machine on a second processing device of a plurality of second processing devices, the virtual machine having a virtual hardware configuration matching the derived hardware profile; deploying the virtual machine, on the second processing device, for executing the application; monitoring, by a processing device of the one or more processing devices of the operating environment, performance statistics of the application executing on the second processing device; deriving, by a processing device of the one or more processing devices of the operating environment, an updated improved hardware profile based on the monitoring; performing, by a processing device of the one or more processing devices, the scheduling of a redeployment of the virtual machine, a virtual hardware configuration of the virtual machine matching the derived updated improved hardware profile; and redeploying the virtual machine on a second processing device of the plurality of second processing devices, wherein the automatic profiling of the application further comprises: deriving a role associated with the application based on the stored collected performance statistics, wherein roles comprise a front end processor and a SQL protocol server, wherein each of the roles are defined as a range of hardware profiles, and wherein the role is derived based on matching the derived hardware profile to one of the range of hardware profiles corresponding to a role, and associating the role with the hardware profile.. deriving a role associated with the application based on the stored collected performance statistics, wherein roles comprise a front end processor and a SQL protocol server, wherein each of the roles are defined as a range of hardware profiles, and wherein the role is derived based on matching the derived hardware profile to one of the range of hardware profiles corresponding to a role, and associating the role with the hardware profile..