1. A method for dynamic allocation of cloud resources comprising: receiving by a server, first data requests for a first mobile software application registered with a first service provider and executed on a first mobile device; determining a geographic location of the mobile device when the first data requests are made; determining by the server, a first load balancer to receive the first data requests based on the first mobile software application and the geographic location of the mobile device wherein the first load balancer is part of a cloud provider that is closest to the geographic location of the mobile device; forwarding the first data requests from the server to the first load balancer; extracting by the first load balancer, first tokens from the first data requests, the first tokens identifying a first service plan associated with the first mobile software application, the first service plan having a first predetermined data rate; forwarding the first data requests from the first load balancer to a first server cluster specified by the first service plan and the first mobile application identity; performing the first data requests by the first server cluster at or below the first predetermined data rate; receiving by the server, second data requests for the first mobile software application; forwarding the second data requests from the server to the first load balancer; extracting by the first load balancer, the first tokens from the second data requests; forwarding the second data requests from the first load balancer to the first server cluster; determining by the first load balancer, that a first data rate of the second data requests for the first mobile software application is above the predetermined data rate and above the capacity of the first server cluster; performing the second data requests by the first server cluster at or below the first predetermined data rate; receiving by the server, a service plan change request that replaces the first service plan with a second service plan associated with the first mobile software application, the second service plan having a second predetermined data rate that is faster than the first predetermined data rate; determining by the first load balancer, that a first data rate of the second data requests for the first mobile software application is below the second predetermined data rate and above the capacity of the first server cluster; forwarding a portion of the second data requests from the first load balancer to a second server cluster; and performing the second data requests by the first server cluster and a second server cluster at or below the second predetermined data rate.