1. A method for providing on-demand resource allocation in a cluster having at least one initial virtual machine, comprising: creating the at least one initial virtual machine by invoking a virtual machine process; installing a clustering process on the at least one initial virtual machine for managing cluster functions, wherein the cluster functions include node membership in the cluster, failover processing, and load balancing; using the clustering process on the at least one initial virtual machine to create the cluster using the clustering process on the at least one initial virtual machine and to add the at least one initial virtual machine as a node to the cluster; determining that resource requirements have increased or decreased since initial resource requirements for the at least one initial virtual machine were received; and in response to the determination, creating at least one new virtual machine on at least one physical machine based on the increased or decreased resource requirements by invoking the virtual machine process; installing a clustering process on the at least one new virtual machine to manage cluster functions, wherein the cluster functions include node membership in the cluster, failover processing, and load balancing; adding the at least one new virtual machine to the cluster that includes the at least one initial virtual machine by invoking the clustering process on the at least one initial virtual machine and the clustering process on the at least one new virtual machine; and failing over transactions for the at least one initial virtual machine to the at least one new virtual machine in the cluster to perform workload balancing based on the increased or decreased resource requirements, wherein the at least one new virtual machine processes the transactions, wherein failing over transactions further comprises performing a resource move, wherein performing the resource move includes shutting down an application process on the at least one initial virtual machine and restarting the application process on the at least one new virtual machine, wherein a client computer submits the transactions to a virtual cluster IP address of the cluster, and wherein the clustering process on the at least one new virtual machine intercepts the transactions to the at least one initial virtual machine submitted to the virtual cluster IP address.