A system and method deploys components such as computer programs on one or more of computing devices such as servers in a server farm. A deployment system communicates with the computing devices over a computer network. As a result, a data set is received for each computing device and the data set contains information indicative of characteristics of the computing devices. Computer-executable instructions capable of comparing characteristics of the at least one computing device to a set of predefined characteristic constraints are executed to determine whether the computing device meets predefined installation rules. Installation proceeds if the characteristics meet the predefined characteristic constraints.