How does one go about building a public computing grid? Lets start with the smallest workable solution and then work up from there.
Ill start with our own office. We have a staff of about 45. For the past two years, we have been using network computers (thin clients) on the desktop with all computing and storage taking place on two thick servers. Each of the servers can handle about 30 users, and cost us about Rs 75,000 implying a per-user capital expenditure of about Rs 2,500 ($55). The servers have plenty of memory, RAID disks (which automatically mirror data), and run a Linux distribution with Linux Terminal Services (LTSP). All applications run on the servers, and every users home directory secured by password is also on the servers. The thin clients cost about Rs 6,000-10,000 ($130-$220) depending on the configuration and newness. They can either boot directly off the network, or have a small footprint of the OS locally. Users get a Linux desktop on their display.
(Note: It would have possible to create a similar server-centric computing platform with Windows also using Microsofts Windows Terminal Services or Citrixs Metaframe. It is just that the open-source equivalent is much cheaper!)
The benefits of an architecture like this is that not only does the user computer cost come down (even though there is some investment on the server-side), there is a dramatic improvement in manageability. The only systems that need to be managed are the two servers. In case one of the thin clients fails, users can just go to any other machine and start working their data is on the server. What users see on their desktops can be controlled from the server. This creates, in my opinion, a better managed environment. This is a small start towards addressing the twin issues of cost and complexity.
So, what are the per user costs in a set-up like this? The server costs about Rs 2,500 per user while the client costs about Rs 10,000 for a total of about Rs 12,500 per user. And then, there will be the software costs (in the case of open-source software, this will be near-zero). While one can argue that a regular thick desktop can come for as low as Rs 15,000 in India today, that is missing one of the key benefits of server-centric computing the manageability.
This is not to say that our current architecture does not have a problem there is now a single point of failure in the server. And that is the first challenge to overcome. How to create a LAN-grid for tens of users that is both scalable and reliable? Server hardware could be added as users grow, and in a manner such that even if one server is not available, the users data is available at all times. What this means is that data has not be mirrored across disks in different systems in near real-time. A storage area network (SAN) does exactly this, but can be quite expensive. The challenge is to do this via software using off-the-shelf commodity hardware.