1. 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; monitoring at least one performance metric for at least one resource that is internal to the at least one network device; generating at least one application scaling score based on the at least one external performance metric 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 based on the resource scaling score.