Thursday, July 29, 2010

Clouds in my coffee, and my future

Just what is cloud computing? It's a little early to say, but here's my prediction:

Cloud computing is a configuration of hardware and software that offers new possibilities for applications.

We've been here before. In the early 1980s, the IBM PC and its clones offered a new combination of hardware and software. That combination opened the way for new applications, from word processing and spreadsheets to personal information managers. The model was personal computing, with programs and data for an individual. The computers were isolated (no networks) and considered "islands of automation".

The second wave was client/server applications. Made possible by network hardware and software, these applications served businesses. Thet let multiple people share a common set of data. (In limited ways, perhaps, but the sharing was the key to client/server.)

The third wave was web applications.. These applications were made possible by the internet, connecting corporate and personal networks. (Most personal networks were a single computer, but work with me on this.) Hardware and software for servers, combined with hardware and software for the remote computers made Yahoo and web shopping possible.

Cloud computing is the fourth wave. It follows the same pattern as previous waves: new hardware and software that enables new types of applications. For cloud computing, the new hardware and software is:

- Pervasive network (including mobile communications)
- Inexpensive servers (processors, disks, memory, operating systems, and web servers)
- Inexpensive and mobile clients
- Virtualization technologies
- Programming languages that support the scaling of applications

The pervasive network is clearly needed. You need access to apps not just from your desktop, but from your phone.

You need the abilitiy to scale up an application. Facebook has 500 million users, a number that was unthinkable for the previous generations of technologies.

The programming languages and the constructs they offer will support the cloud. The scale issues of the cloud require that processes move from one server to another (or be capable of moving) to handle load distribution and hardware failures.

The big difference between a web app and a cloud app is that the processing for a cloud app can move from one processor to another. Traditional web apps are limited to a single server.

And we have seen this transition before. Unless you are new to the industry, you've been through the mainframe-to-PC transition, the PC-to-client/server change, and the web revolution.

Each change brings new types of applications and uses without killing the previous set. PCs grew but did not kill off mainframes. (Eventually they did take some "business" from the mainframes, but not so much as to drive them to extinction.) The web did not kill off client/server apps (client/server vendors did a pretty good job of killing themselves with their arrogance and expensive support services), and cloud computing will not kill off PC apps or web apps.

After the cloud revolution, we will still use Microsoft Office and Google search.

And we'll use a bunch of new applications too. I don't know what they will be. Facebook and Twitter are the pioneer apps, just as Visicalc was the pioneer PC app. Facebook and Twitter may thrive in the Cloud Age or they may fade. That's what makes it exciting!


No comments: