1. A method comprising the steps of: obtaining a plurality of application profiles, for a plurality of applications, each of said profiles specifying a list of resources, and requirements for each of said resources, associated with a corresponding one of said applications; facilitating specification of a plurality of constraints associated with said applications; facilitating obtaining a plurality of cost models associated with at least two different kinds of servers on which said applications are to run; generating a recommended server configuration for running said applications, by formulating and solving a bin packing problem, wherein: each of said at least two different kinds of servers is treated as a bin of a different size, based on its capacity, and has an acquisition cost associated therewith, said size being substantially equal to a corresponding one of said resource requirement as given by a corresponding one of said application profiles; each of said applications is treated as an item, with an associated size, to be packed into said bins; and said bin packing problem develops said recommended server configuration based on reducing a total acquisition cost while satisfying said constraints and said sizes of said applications; measuring performance of said recommended server configuration, wherein said performance measurement comprises at least one of a total number of said servers turned off, a number of violations of said constraints per unit time, and a time required to generate said recommended configurations.