Tuesday, October 25, 2011

Spiral evolution: The network is the computer

Decades ago, Sun Microsystems tagline was The network is the computer.

At that time, I believe, Sun was aiming for a holistic computing infrastructure which could be treated wholly as one single entity, a computer.

That dream, I believe, failed somewhat. Surely Sun made great architectures, good hardwares, and wonderful softwares but the network part was mostly not realized. Computers was not able to work with each other as one. It was difficult to program applications that could work across different network segments, leave alone different cities, or countries. The software stack was not conducive, almost all products must have re-invented distributed computing primitives that were fragile and too low level to build robust applications from. And most importantly, the link was slow. Before the advent of dotcom bubble, the link was limited to ISDN, probably 128kbps. This was the hard limiting factor for Sun to fully realize its dream and therefore the major architecture of that time was still very much centralized with big boxes crunching numbers by themselves.

Nowadays, we are seeing distributed computing almost everywhere. Big data companies have big pipes connecting them to almost everywhere in the world. Their computing grid could easily span across three different continents. All of these achievements are largely thanks to better networking technologies. At the same time, better software libraries have made it easier for developers to roll out distributed applications. Among them are great infrastructures such as Hadoop, Cassandra, HBase and more low level nuts and bolts such as ZeroMQ. They all have enabled a more reliable stack that frees us from having to take care of minute details and allows us to focus more on the business logic. Our applications now can be composed of literally hundreds of nodes, each doing different tasks at once in a coordinated manner regardless of where they are physically hosted. They can grow or shrink as easily as flicking a palm. They enable the network is the computer thinking.

As an analogy, glues like ZeroMQ are the data buses and the nodes are the RAM, the peripheral devices, the GPU and the main application (the coordinator) is the CPU of this new machine. I think that makes a lot of sense.

No comments:

Post a Comment