Although cloud computing, in its current form, is only a couple of years old with fairly limited adoption, it's already becoming a commodity.
Every hosting company in the planet has already jumped in, trying to forestall any potential loss of market share to any number of emerging cloud computing infrastructure providers. However, given the downturn in the economy and the simple fact that there is a lot more server capacity than applications to run on them, the companies that provide cloud computing services are already engaged in a bruising price war.
In response, some cloud computing service providers such as SkyTap and IBM have been moving upstream. They not only provide raw computation power, they also provide application testing capabilities and host commercial applications in the hopes of developing a portfolio of software-as-a-service applications.
That's all well and good, but cheap computing horsepower derived from cloud computing is not the primary value proposition of cloud computing. In order to drive the next evolution of enterprise computing, cloud computing providers are going to have to evolve in a way that allows services to be dynamically embedded inside customizable business processes that can change in a matter of minutes and days, rather than in weeks and months.
There are a number of things that have to happen before cloud computing really evolves to reach this point. The first of these things involves infrastructure, especially in terms of increased bandwidth, more sophisticated approaches to virtualization and more robust management tools.
The second major thing that needs to happen is that business applications need to become a whole lot more modular than they are today. We have been talking about the need for service-oriented architectures (SOA) and Web services for the better part of 10 years or more. The simple fact of the matter is that the rise of cloud computing will force the adoption of these paradigms in order to achieve the modularity required.
That will mean, for instance, that we'll see certain compute-intensive applications, such as analytics, run on a cloud computing platform capable of harnessing massive amounts of raw computing horsepower in a cost-effective manner. But the results of those analytics will need to automatically kick off a business process that runs locally because the applications that drive that activity typically need to be close the business. At some point that local application may also need to transparently shift to a cloud computing platform during certain hours of the day to guarantee maximum availability, but for the most part it needs to run as close to the business process it supports as possible.
What this brings us to is a blended computing model where various processes, depending on their computational requirements, are loosely coupled across the Internet. What's important about this is that this approach should have enough built-in flexibility to make it a lot easier to modify a business process or create a new one by simply coupling modular components. Instead of thinking about reusing application code, we're going to need to think in terms of reusing processes that will be distributed all across the Internet.
To make that happen IT organizations not only have rethink how they build, acquire and deploy enterprise software, they also have to re-engineer the underlying IT infrastructure. In order to provide maximum flexibility to the business, application workloads will need to dynamically move across local and public cloud computing resources. To accomplish that, the internal IT infrastructure needs to be as dynamic as public cloud service. That means embracing next-generation virtualization technologies and much higher levels of IT automation to create the equivalent of an internal "private cloud."
The important thing to remember is that the various incarnations of cloud computing should be viewed as means to providing the business with unprecedented levels of agility, rather than being an end in of themselves.