1. A method of providing software, the method comprising: receiving a request for a software appliance, the request comprising functionality to be performed by the software appliance; building the software appliance, the software appliance comprising at least one application capable of performing the functionality and portions of an operating system necessary to provide an execution platform for the at least one application; determining operational requirements for the software appliance, the operational requirements comprising a minimum amount of computing resources to support the software appliance; providing the operational requirements to an initiator of the request; and receiving a response to the operations requirements, the response including at least one of a confirmation to provide the software appliance and a request to modify the software appliance.