Google Operating System has a recent article about a presentation made by Google China’s President Dr.Kai-Fu Lee on cloud computing. Cloud computing is what is gradually making Google a powerful force on the planet. The idea is to reduce a user’s dependence on any one computer or device. All data and applications are stored “in the Cloud”, so to speak. Everything is backed on multiple servers and is easily accessible from an Internet connected device. This means that you can use your data and the applications to manipulate that data from almost anywhere in the world (anywhere that has a decently fast internet connection at least). It’s an extremely powerful idea, which has numerous benefits both for the users and for whoever supplies your software.
As the user, the most obvious benefit is that you can access (your often very important) data from a lot of various places. Also important is that you can take advantage of the massive amount of powerful hardware and computing resources that are available in the cloud. You no longer need a 3Ghz processor with 4GB of RAM just to edit that letter to your boss, you just need enough power to run a modern browser and handle a fast internet connection. The results of having so much power is of course obvious right now: any web-based search is much faster than any desktop search due to much more hardware and powerful algorithms to take advantage of that hardware (Google’s MapReduce comes to mind). For the company providing the cloud services the advantages are just as attractive. There aren’t a dozen different versions to support with all the related compatibility issues. Once bugs are tracked down and fixed, the patches can be rolled out without having to bother the user. Google has being using in this in the gradual upgrades to Gmail and Google Documents and has been working quite well. For every piece of software that the user sees there is a lot more that is carefully hidden away. When you’re running a cloud, you have control over the what the user sees as well as what is behind the scenes. With some care you can make sure that both the software systems remain essentially separate but still work well together (unless you don’t control the cloud software, but that’s a different matter entirely).
Cloud computing seems to be the wave of the future, and with ubiquitous broadband, I think this will be a very efficient way of utilizing powerful computing resources. At the same time, cloud computing reminds me of the old days of time sharing computing (which I was born far too late to be a part of). Data and software was in a large mainframe (later minicomputers) either at a company’s computer headquarters or a college campus. To access them users could log from a remote terminal, sometimes dialing in over the phone lines. Of course in those days, users shared processor time and memory on just one computer and data transfer speeds were slow, even for the plain text that went around. But the user’s data and applications were still centrally located, accessible uniformly from any terminal connected to the system.
How different is this from today’s cloud computing? Well, very. Data speeds are higher. Communication is available not just for connected terminals but for any internet connected device, and there is far more computing power available for users. But the core concepts are nevertheless, essentially the same: data located in one place, but uniformly accessible from multiple separate locations. In many ways it’s like the saber-tooth: a design that has appeared many times throughout evolution exactly because it is a good design. Cloud computing too is a good design, which is going to stay with us for a long time to come.