Computing's new frontier

Cloud computing is a powerful way to achieve massive scale at the lowest possible cost. But there are programming challenges to be met...

The world of computing is undergoing a massive change, and it’s going to affect every one of us. It’s called cloud computing, and it’s a really different way of thinking about the use of computers and networks.

In the past, we’ve seen the rise of personal computers on the one hand, and its offshoots like mobile computing. We’ve also seen the rise of the Internet, with servers offering us content from every imaginable source. The new thing is how some of the masssive applications we enjoy – like Google or Amazon – are implemented.

Google’s back end is built out of something like a million computers. Each one is not very powerful. But together, they can satisfy a planet’s worth of curiosity. Google now takes on more than 50% of the world’s searches, and each search is computationally intensive, and memory intensive.

It’s just not possible to do this with a few big machines. You can’t make them big enough. So Google has learned to manage with a lot of smaller machines. They are able to take this cloud of computational capability, and share the work across all these resources. Amazon and Yahoo do the same. So do a number of smaller sites. These systems are good because they are massively redundant, and they rely on mass-produced (therefore low-cost) hardware that can be easily replaced.

The importance of cloud computing is that sites like Amazon and Google are now making this huge resource available to the rest of us. In order to take it on, we will need applications that are structured for this massively redundant cloud of computers, rather than for single, huge computers. This change will require new algorithms, new data structures, and new ways of thinking about problems.