By definition, cloud computing is meant to be flexible and elastic. Most of its power comes from the fact that most of the components that constitute the infrastructure are loosely coupled. Devices can be plugged in, removed, reconfigured, and realigned without any effect on the overall cloud infrastructure.
Most cloud management systems recognize this fact and try to offer management tools that give the most flexibility to the end-user. However, there will always be cases when you will require a more fine-grained programmatic control over your cloud infrastructure. It is difficult to imagine the current state of cloud computing without the maturity of the underlying programmatic interfaces provided by the cloud providers.
All large cloud providers like Amazon AWS provide an extensive set of programming interfaces in the form of APIs or web services to configure and utilize the infrastructure and build custom interfaces.
As we are moving towards a completely connected...