Unless you’ve just started a brand-new organization, your IT environment is currently running a diverse collection of last-generation and older applications that were deployed with the one-application-per-server approach that unleashed the server sprawl that most organizations are still recovering from.
The full potential of cloud computing, however, will only be realized through advances in lean/agile development of applications that can fully leverage the cloud environment. Instead of having to over-buy to support peak demands, the new generation of applications are capable of automatic self-provisioning and can expand and contract as business requirements change.