Cloud Computing frequently is taken to be a term that simply renames common technologies and techniques that we have come to know in IT. It may be interpreted to mean data center hosting and then subsequently dismissed without catching the improvements to hosting called utility computing that permit near realtime, policy-based control of computing resources. Or it may be interpreted to mean only data center hosting rather than understood to be the significant shift in Internet application architecture that it is.
Perhaps it is the name. Certainly it is more nebulous than mnemonic, if you’ll pardon the poor pun. We happen to think so too. We’d rather use the term service grid, frankly, but that name also has its problems. The fact is that cloud and service grid computing are paradigmatically different from their common interpretations, and their use can shed light on how internet architectures are constructed and managed.
Cloud computing represents a different way to architect and remotely manage computing resources. One has only to establish an account with Microsoft or Amazon or Google to begin building and deploying application systems into a cloud. These systems can be, but certainly are not restricted to being, simplistic. They can be web applications that require only http services. They might require a relational database. They might require web service infrastructure and message queues. There might be need to interoperate with CRM or e-commerce application services, necessitating construction of a custom technology stack to deploy into the cloud if these services are not already provided there. They might require the use of new types of persistent storage that might never have to be replicated because the new storage technologies build in required reliability. They might require the remote hosting and use of custom or 3rd party software systems. And they might require the capability to programmatically increase or decrease computing resources as a function of business intelligence about resource demand using virtualization. While not all of these capabilities exist in today’s clouds, nor are all that do exist fully automated, a good portion of them can be provisioned.
Are the services that are provided by the cloud robust in the enterprise sense?
Absolutely ... especially if you mean the enterprise as we know it today. While there are important security, privacy and regulatory issues that enterprises need to sort through before full migration to the cloud, and cloud vendors need to strengthen cloud capabilities in these areas before enterprise applications can be effectively hosted in the cloud, there are benefits that cloud technologies do offer today that can be leveraged in the deployment of many enterprise applications. Further, cloud vendors are likely to offer virtual private cloud functionality that quite possibly will (at least temporarily) compensate for current deficiencies as cloud vendors work to address them in a more strategic and long-term way.
Migration to the cloud will not be immediate because of issues noted above, and because enterprises need to approach migration in a staged fashion, just as they would undertake any significant technology transition. The first stage of migration is to determine what enterprise infrastructure and applications can be reliably rearchitected using cloud computing technologies today to gain experience with a cloud-oriented way of organizing and accessing digital technology. This stage may include development of a migration path that progressively transitions more of the enterprise infrastructure and applications to cloud providers as they evolve more robust services that can support a broader range of enterprise IT activities. The key goal of this stage is to define the roadmap to replicate what is available on premise today using cloud technologies (public or private) where this makes sense, and to define fundamentals that will guide future architecture efforts. The second stage begins a period in which explicitly policy based architectures that help to support agility and innovation are designed. The third stage is the period in which implementation of these fundamentally new architectures – that are designed to support scalable networks of relationships across large numbers of very diverse and independent entities (i.e., possibly leveraging a more fully developed service grid) – takes place.
It is critical to give explicit attention to architecture when preparing to migrate to the cloud, since this represents an opportunity for corporations to rearchitect themselves as next generation enterprises. These globalized and distributed enterprises must scale process and practice networks (ultimately comprising an entire ecosystem) to include thousands to tens of thousands of members, with the number of users increasing to the millions. This type of scale requires an architecture and interoperability strategy modulated by harmonized technology and business policies to scale business elastically. Widespread adoption of clouds as a computing platform will require interoperability between clouds and management of resources in one cloud by another. Since current-day architectures are not structured to externalize policy, the typical architecture fundamentals of applications that enterprises deploy must be modified to effectively use and exploit new cloud capabilities.
In this context, we urge executives to develop more explicit cloud computing strategies based on a more explicit and longer-term view of the likely trajectories of cloud computing evolution. There are undoubtedly compelling benefits to participating in clouds today. But the real power of cloud computing platforms stems from the potential over time to re-think and re-design IT architectures at a more fundamental level. Companies that gain early experience with this new infrastructure will be in the best position to harness these new architectural approaches to re-shape the broader business landscape.
To seed this effort, we cull from various candidate definitions for both cloud and service grid computing a set of concepts to be used as a thoughtful framework of discussion for what happens next in Internet-based computing. We present, here, a set of three papers that discuss:
Characteristics of what we believe to be next generation architectures that will support substantive changes in global enterprise constructs and operations;
- Transformation from existing to next generation architectures to simplify the architectures and better align them with the businesses they enable, and provide the means to externalize and manage policy across all architecture layers; and
- Pain points that might be eliminated altogether by migration to next generation architectures.
We understand that cloud and service grid computing, in their present state, do not meet all distributed computing or enterprise needs. However, they do meet many of them in a way that will provide a smooth transition to whatever next generation distributed computing becomes, and they already are significantly helpful in modulating the technology changes that enterprises face today. The rapid pace at which cloud vendors are systematizing their platforms and attracting stalwart industry supporters and users confirms that ecosystems are forming that are based upon the capabilities that cloud computing enables. The speed with which they are forming strongly suggests that cloud computing will not only meet many of the needs of enterprise computing as we have come to know it, but also could form the digital platform for a shaping strategy guiding next generation enterprises in their migration to and participation in such ecosystems. Hence our optimism of things to come, and our contribution to a discussion that we hope readers will find helpful.