Cloud computing allows application developer to deploy the service they developed as a SaaS without having to worry about the data center and other hardware issues. This provides a semblance of infinite resources which can be provided to the user on demand therefore users need not plan ahead. Companies who want to deploy their application on cloud can start with small set of resources and scale as the need arises. It also allows users to pay for the resources on a short term basis i.e. user need to pay only for the time they used the resource. The discussion implies that companies using a cloud can be benefited. Building and providing cloud computing services requires billions of dollars as investment.
The important question is who would invest and what return of investment do they get. Some companies to support their business already have large datacenters and have software that helps them handle that large infrastructure. These were the companies that initially came forward to provide cloud services. The resources with these companies can be distributed among different users for different amount of time. The companies charge a rate for using the resource for that amount of time. Cloud providers build datacenters at strategic locations. They choose places where cost of electricity is less, cooling process (cools down the heat generated by the processers) becomes simple and cost of labor is cheap .