A method for scaling computing resources for a plurality of network devices over a network, wherein at least one network device is operative to perform actions, comprising: monitoring at least one performance metric for at least one critical path for at least one application instance, wherein the at least one performance metric is external to the at least one network device, and wherein the at least one critical path is defined by one or more web documents (420, 424, 426, 428) performing operations critical to one or more functions of the at least one application instance; monitoring at least one performance metric for at least one resource (410, 412, 414) that is internal to the at least one network device; monitoring data regarding the at least one application instance that is internal to a virtual machine that is hosting the at least one application instance, wherein the internal data is adjustably normalized to produce values for a defined range; generating at least one application scaling score based on the at least one external performance metric, the values for the defined range, and a determined application scaling threshold; generating at least one resource scaling score based on the at least one internal performance metric and a determined resource scaling threshold; if the at least one application scaling score exceeds the determined application scaling threshold, provisioning at least one additional application instance based on the at least one application scaling score; and if the at least one resource scaling score exceeds the determined resource scaling threshold, scaling an allocation for the at least one resource (410, 412, 414) based on the resource scaling score. monitoring at least one performance metric for at least one critical path for at least one application instance, wherein the at least one performance metric is external to the at least one network device, and wherein the at least one critical path is defined by one or more web documents (420, 424, 426, 428) performing operations critical to one or more functions of the at least one application instance; monitoring at least one performance metric for at least one resource (410, 412, 414) that is internal to the at least one network device; monitoring data regarding the at least one application instance that is internal to a virtual machine that is hosting the at least one application instance, wherein the internal data is adjustably normalized to produce values for a defined range; generating at least one application scaling score based on the at least one external performance metric, the values for the defined range, and a determined application scaling threshold; generating at least one resource scaling score based on the at least one internal performance metric and a determined resource scaling threshold; if the at least one application scaling score exceeds the determined application scaling threshold, provisioning at least one additional application instance based on the at least one application scaling score; and if the at least one resource scaling score exceeds the determined resource scaling threshold, scaling an allocation for the at least one resource (410, 412, 414) based on the resource scaling score.