One of the first things you may think of is how on Earth are you supposed to manage all those computing and storage resources? All cloud computing services providers offer basic web-based control panels, which are good enough as general administration dashboards, but most probably won't meet your needs, if you want to create a dynamically reconfigurable virtual server farm.
A better way to manage your cloud is via a set of scripts that communicate with your cloud provider's infrastructure. This is done via a Programming Application Interface (API), which is offered by virtually any cloud computing provider.
The problem with APIs is that there are so many of them. Every cloud provider's infrastructure is different and that fact is reflected in the functionality exposed via their APIs. Although the fragmentation of the cloud management APIs is genuinely justified, it doesn't make any easier for cloud server farm administrators to deploy their servers on different cloud infrastructures.
