1. A method of managing computing infrastructure costs, comprising: defining a set of computing classes, each computing class associated with a per user cost; accumulating a usage history corresponding to each user in a set of users, the usage history indicative of computing demands of each user; analyzing the computing demands to define a user profile for each user, the computing demands indicative of a provisioning cost of the user; provisioning each user in a particular computing class based on the user profile, the per user cost and the provisioning cost; and periodically reanalyzing the computing demands to selectively reprovision the user.