Everyone's had the experience of discussing a concept with someone and suddenly seeing the look of understanding appear on their face as the meaning of the concept sinks in. I engage in a lot of conversations with IT managers about cloud computing, and have encountered many interesting reactions.
It can be intriguing to observe how IT executives perceive cloud computing will affect their organization's processes and people. Most seem to regard cloud computing simply as a technology development that will affect one or perhaps a couple aspects of their organization. For example, some CIOs think of cloud computing as something that supports developer agility by providing the self-service of virtual machines. Others think of it as an infrastructure improvement that will reduce the cost of supporting legacy applications.
In short, most executives think of cloud computing as a drop-in replacement for some aspect of the existing IT environment, but don't view it as a transformative technology with an overarching impact that will affect the entire organization. That perspective is understandable. IT has a long history of absorbing innovation and slotting it into the existing environment, swapping one existing element for a new one that provides better functionality or performance. Virtualization, the foundation of cloud computing, is one such swap-in. The genius of virtualization is that it can be inserted between servers and the supported operating systems, disrupting very little of the existing environment while providing tremendous financial benefits.
It's a mistake, though, to think that cloud computing will conform to the established adoption pattern of IT innovation.
The reason is straightforward: Cloud computing brings automation to the mix, and in every industry that automation has touched, profound disruption has followed. IT will be no different. Those who think of cloud computing as a segregated innovation, like virtualization, fail to recognize how profoundly it will change enterprise IT as we know it.
As background for this profound disruption, consider that IT funding is going to remain under pressure, but that pressure is going to change. In the past, it's all been about cutting costs. In the future, there will still be cost pressure, but as business units realize that IT can enable business initiatives (think mobile and consumerization), there will be plenty of money available for IT investment linked directly to business outcomes. The challenge for CIOs will be to respond to this revenue-oriented demand while addressing the cost-cutting pressure that will remain.
Cloud computing is not going to solve legacy application challenges and costs. I recently talked with the CIO of a large media company who commissioned a study of his legacy apps to determine how many could operate in a cloud environment. The results: 10 percent. That means that 90 percent of those applications will go forward with the same inflexibility and high costs that they've had in the past. There is no cloud dividend available to make existing applications cheaper and free up money to invest in business-focused initiatives. This also means that the pressure to reduce costs in the legacy environment will continue unabated.
What all of this means is that IT is going to have to be rebuilt for cloud computing. Every group, every process, every skill will have to be re-evaluated in light of the need to reduce cost, implement automation and support revenue-focused business initiatives.
What will this look like? Here are some areas that CIOs will have to focus on:
Chopping Legacy Cost
It will be impossible to rebuild for cloud computing if you carry forward a huge technical and financial debt of legacy applications. For one, the cost will dominate your budget and hinder your ability to adapt in the future. Just as important, legacy applications require you to keep staff on hand with lower-level skills to perform manual interaction.
This cost-cutting will play out in two ways: re-architecting home-grown apps to be truly cloud-based (more on that below), and shifting to on-demand SaaS applications to replace on-premises packaged applications.
Down the road, only a very few on-premises applications will be kept in the legacy format. These will be applications that have high security or privacy aspects or those that provide competitive differentiation such that IT organizations can justify the continued maintenance of a high-cost installation. But keeping an on-premises standard package like email? There's no future for that kind of thing.
I'm actually a bit heartened about progress on this front. I recently spoke to a gathering of CIOs and was surprised at how aggressively most of them are pursuing SaaS initiatives. This group was looking to get out of the non-value adding IT business as soon as possible.
Make no mistake: Absent an aggressive push to get out from under the legacy burden, all your cloud computing plans will wither on the vine.
Re-architecting the Application Development Process
Many IT organizations decide to pursue cloud computing through a develop-and-test cloud initiative. Often the impetus is that software engineers are turning to Amazon Web Services and IT management wants to prevent it. The thinking goes that by offering developers a local cloud, they can be dissuaded from using a public offering.
That's OK as far as it goes, but it misses the far larger point. Most IT organizations rolling out a developer cloud have only thought about optimizing one facet of applications: developers getting access to resources. They haven't thought about the other two elements of applications -- the development process and operating applications once in production.
Leveraging cloud computing for accelerated access to resources is a big win, but optimizing this element without optimizing the others does not speed applications into production or make them easier to update once in production. Speeding up one part of a process (and that's what application development is, a process) and leaving the other parts unchanged does not appreciably reduce overall deployment time.
At a minimum, to rebuild the application process requires a move to agile development in which overall development duration is trimmed through short development cycles and intense communication. That's just the start, though. The processes underlying development also need to be updated to support agile development. Continuous integration and deployment within a development environment reduce the errors that occur when developers attempt to merge code artifacts that have been developed in isolation for weeks or months.
Only by marrying quick resource availability with agile development practices will IT organizations achieve real application benefits from cloud computing.
Restructuring IT Operations
IT operations are going to have to undergo enormous change as well. Taking applications that have been developed with agile methods and then placing them into a slow-moving operations environment in which every change is implemented manually creates a mismatch in the organization, and, crucially, hinders overall business agility.
IT operations will need to be restructured and automated to support cloud computing. This goes well beyond using tools to support dynamic application deployment to virtual machines in the cloud. This means modifying the processes by which IT infrastructure itself is installed and configured. The catch phrase is "infrastructure as code," and it means using tools to install and configure operating systems, networks, and storage implementation.
At the very least, manual installation and configuration of all software assets must shift to automation. The cloud environment itself should be able to absorb additional hardware assets as they are added to the environment.
Frankly, this is the area that is most likely to require radical rethinking on the part of IT executives. I've seen many people proclaim that they are going to run an "enterprise" cloud. In part, that presumes the use of expensive, high resiliency equipment, but it also implies that the cloud environment will support custom, one-off infrastructure configuration and unique application requirements.
This is admirable, but it's not cloud computing. It is virtualization yoked with traditional system administration practices. Long-term, this approach is unsustainable and any IT organization that doesn't realize it is going to be left behind as application groups embrace other alternatives. Failure to adopt the infrastructure management practices pioneered by the large public providers will consign an operations group to slow, reactive and expensive processes, which are unacceptable in a world that has embraced automation as a quotidian practice.
Finance and Pricing
The third element of an IT organization that must be rebuilt for cloud computing is finance. Obviously, there is the pressure to be as inexpensive and transparent as the public alternatives -- that goes without saying. The opaque, mysterious and highly lumpy forms of IT cost allocations will no longer be tenable in an environment where alternative providers publish price lists on the Web.
Just as important, though, will be a financial approach that provides real-time feedback and analytics to enable application groups to assess the tradeoffs in terms of deployment location, load variation, time-of-day load shaping, and other factors.
To be blunt, the kind of crude assertion that an internal storage deployment can undercut a public storage provider based on the cost of an array fails to comprehend how revolutionary a transformation is required in terms of IT finance. This is not about proving that one alternative is cheaper than another -- it's about ensuring that the right alternative is selected based on application characteristics, and ensuring that any of those applications can be deployed into environments that support the necessary functionality at an appropriate price. Any CIO who cannot support such a sophisticated analysis of overall application costs is assuring his or her own obsolescence.
In my view, cloud computing represents a step change in IT. We've had lots of experience bringing in new generations of technology -- the shift from mainframe to mini, from custom RISC chips to commodity x86 chips and so on. The list is lengthy.
But cloud is the first technology shift that implements automation, thus removing human intervention from the equation. The logic of automation requires a radical rethinking of every aspect of IT processes and operations. Those who recognize this imperative can succeed in the future. Those who insist on cramming it into existing constraints will find the future a much less friendly environment.