In a recent blog I summarized the discussions around cloud computing at the conference I had just attended by writing that "something big and profound seems to be going on, although we are not totally sure what it is yet."
Cloud computing is the kind of wide-ranging initiative that different people can look at from their own point of view and come up with their own, somewhat different definitions. This is not surprising in the early stages of such a comprehensive initiative. When the Internet first broke into the wider world in the mid 1990s, you similarly heard lots of different opinions on what it was and what it would be good for.
In reading through the assorted cloud definitions, five key themes keep coming up. Let me say a few words about each of them.
Well designed consumer and business services
Most definitions of cloud computing are wrapped around the notion of services over the Internet. Amazon Web Services, which provides on demand access to IT services in Amazon's infrastructure, is one of the best known cloud applications. Software as a service is associated by many with cloud computing.
Given this view, people wonder if cloud computing can be simply viewed as a kind of 21st century version of time sharing that allows users to get virtual access to different kinds of IT resources and software capabilities without having to own computers. By this view, cloud represents a kind of return to centralized computing driven by the rising complexities, systems management costs and energy inefficiencies of client-server and distributed computing.
In my opinion, while there is nothing wrong with these views, they don't quite capture the excitement, disruptive innovation potential, and business opportunities of cloud computing. They are too technology centric. Explicitly accessing IT resources, hardware and software services is only of interest to a very important but relatively small number of people. The vast majority of people out there - the users - want only the services they are interested in as a service - banking, healthcare, communications, entertainment, and so on. The hardware and software enabling those consumer and business services should never show through if the applications are well designed.
For example, I really like Google Maps. I know that there is lots of software underlying Google Maps, and I am sure that lots of computing goes into supporting this application in Google’s clouds. But I think of Google Maps as Maps as a service. As a frequent user of Google Maps, I like it because it is all about dealing with maps, finding directions, computing distances and driving times, and similar capabilities. It totally hides the underlying software and hardware. This is what I would call a well designed application. Over time, we would want just about all user oriented IT applications to be equally well designed.
The evolution of the Internet
Bear with me as I quickly recap the evolution of the Internet in order to place cloud computing into its overall context.
The original Internet was primarily developed as a TCP/IP network. It later added a number of communication oriented applications like e-mail and file transfer. The advent of the World Wide Web in the early 1990s transformed the Internet into a huge source of information and content, and coupled with the browser, ushered the Internet into the wider commercial world a few years later. Later in the decade, companies started to leverage the Internet for all kinds of business applications, in what became known as e-business. Irrational exuberance and the dot-com bubble followed.
The bursting of the bubble barely slowed down the continuing technical advances of the Internet. A number of new initiatives were aimed at making it easier to access and share IT resources and applications over the Internet, including grid computing, service oriented architectures, and utility computing. Other initiatives focused on making the Internet much more pervasive and accessible over a wide variety of devices beyond personal computers.
Cloud computing should be viewed as part of this evolution of the Internet, significantly extending and improving the technologies and capabilities first introduced in these earlier initiatives. That is why it is not surprising to see them referred to in the various cloud definitions: "Cloud computing is ... the user-friendly version of grid computing."; “The cloud is a virtualization of resources that maintains and manages itself."; and "Cloud computing is the realization of the earlier ideals of utility computing without the technical complexities or complicated deployment worries."
Gartner defines cloud computing as "a style of computing where massively scalable, IT-enabled capabilities are provided 'as a service' to external customers using Internet technologies." Most of us closely associate clouds with both the ability and need for massive scalability, driven by increasingly inexpensive and powerful IT components as well as the huge demands of cloud workloads.
Cloud applications are aimed at supporting billions of people using their mobile devices all over the world, not just the smaller number of people who access the Internet via their personal computers. In order to offer those users a high quality of experience, cloud applications tend to make more extensive use of visual interfaces than older applications. These applications involve a lot more sharing and collaboration among their users, being highly influenced by Web 2.0 and social networks. Advances in video games and massively multiplayer online games will undoubtedly be reflected in the kind of user experiences offered by leading-edge cloud-based services.
Clouds not only connect to people via their various devices, but also to the huge numbers of sensors out there that are becoming part of a hybrid Internet - part physical, part virtual. The physical world is being instrumented via hundreds of billions of Internet-enabled sensors, and all the information they produce needs to be accessed, analyzed and managed - often in real time. Congestion management in cities, smart power grids, and global supply chain management are among the real-time applications that we see emerging in the relatively near future.
All those online services delivered to billions of people around the world, as well as the real-time analysis and optimization of huge amounts of information, will require IT scalability on a scale far bigger than anything that we have seen up to now.
Well engineered cloud delivery centers
The basic digital technology components - micros, memory, storage, networking - have advanced so much in the last decades that aggregated in sufficient numbers they should be able to handle just about any workloads thrown at them. The future holds more of the same. The technology is all there. Not so for engineering and management discipline.
It is well known in complex engineering systems that as the system gets larger and larger the overall system can become dynamic and unpredictable. We have long known about large system effects in IT. A computer system can be operating smoothly at a certain size, but as the demands on it grow, the same system will often become unstable and crash - unable to deal with the larger workloads. The same very positive forces that are driving the growth of the IT industry are also responsible for its biggest problems, namely the non-linear growth in complexity, and the rising costs of managing this complexity.
I think that cloud computing is driving a much needed industrialization of IT data centers and IT infrastructures in general. Twenty five years ago, we saw something similar happen in manufacturing. Before that time, most manufacturing plants were fairly inefficient by almost any measure, and were turning out products of varying quality. Then, driven by the huge success of Toyota and other companies around the world, the industrial sector and academia discovered the merits of applying engineering discipline as well as a holistic, systems-wide approach to manufacturing processes.
Company after company embraced the Toyota Way, Six Sigma, Lean Production and similar methods in their manufacturing and logistics operations - resulting in major improvements in their productivity and quality over the last few decades.
Data centers are the manufacturing plants of services and information delivery. But, with the exception of relatively young, born-to-the-cloud companies like Google, Yahoo, Amazon and Salesforce, the data centers of most companies are in the same pre-industrialization phase that manufacturing was twenty five years ago. Why is that the case?
IT and services in general are still relatively new subjects compared to the manufacturing of physical goods. Many companies have not exercised the needed discipline in their IT operations, and have enabled different departments in their organization to architect their own systems and applications, so that often their various systems do not interoperate with each other, and application take a long time from development to deployment. Larger enterprises have often grown through mergers and acquisitions, and have been lax in architecting and integrating their disparate systems into a more coherent whole.
Waves of consolidations have attacked the worst excesses of this IT proliferation, but much remains to be done. These problems are exacerbated by the explosive growth of cloud workloads and the cloud data centers needed to support them. IT organizations find themselves in a Through the Looking Glass kind of situation, where, as the Red Queen said to Alice: "Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
How relevant is cloud computing to most companies?
Which leads into the last cloud topic I’d like to discuss in this post. What kinds of companies need to pay attention to cloud computing? Is it only companies like Google, Yahoo, Amazon and Salesforce, whose business models have been based on delivering services over the Internet to their customers from their very beginning? Everyone will agree that cloud computing is important to the even younger Web 2.0 companies like Facebook, and MySpace. Same with IT companies like IBM that have embraced cloud computing so they can offer cloud-based systems, software and services to their customers.
But how about all the companies around the world that make extensive use of IT throughout their operations? Should they also pay attention to cloud computing? I think I have seen this movie before.
When we first started the IBM Internet Division and launched the e-business strategy in the marketplace, many companies were asking us whether e-business was for them or only for the new dot-com companies that were sprouting all around them. Our answer was very simple. The Internet is for everyone. Whether you are a large, medium or small company anywhere in the world, or whether you have been around for one hundred years or one hundred days – you should leverage the Internet for business value and become an e-business.
I feel the same way today. If cloud computing implies delivering high quality consumer and business services to your customers around the world over a variety of channels, as well as operating well engineered, efficient data centers - how can you stay in business and ignore this major marketplace strategy? It would be like an industrial company saying that all the advances in manufacturing and production over the last 25 years are not for them. It would be nearly impossible for a business to stay competitive with such an attitude. In fact, a number of enterprises have already been embracing cloud-like methodologies for delivering services to their customer, even if they don’t call it that.
One of the key lessons we all hopefully learned from the dot-com bubble is that complex, global initiatives take time. It is very nice to be motivated by lofty aspirations, but in the end, it is all about marketplace execution.
Cloud computing is a highly complex initiative - both at the technical and business levels. None of us can predict which way it will go, let alone how quickly things will happen. But that isn’t a reason to sit on the sidelines and wait. It is very important for companies to begin to figure out their cloud strategies, how cloud computing is being used in their particular industry and how it best applies to them. They then need to start implementing cloud-based initiatives in phases, so they can learn from their actual marketplace experiences and are thus able to keep up with whatever direction this exciting initiative takes in the future.