One Server Per Person
The cloud is changing computing. Where our data lives and how we access it is increasingly dependent on mobile computing platforms. Even open platforms like Android depend on server-side components, and while the cloud platform itself is most likely built on Linux and other open source software, the operation and access to the core of the system is most decidedly closed. The control we give to cloud computing platforms like Google and Amazon negates the efforts of open source to put the control of their computing environment in their own hands. What we need are open servers.
I have always been a bit curious of the open source communities support of Google. I have even seen distros include “web apps” that launch a browser to open Google Docs or Gmail. I can understand the reasoning, to a point. Good desktop applications are difficult to come by on Linux, (seriously, you can’t argue this point, don’t try.) while Gmail is an absolutely best of breed email client. However, given that you use a Linux desktop for the control over the platform it gives you, it is a curious choice to relinquish that control, especially over such personal information as email, to a closed source solution that just happens to be hosted on a server instead of your local machine.
To be fair, most servers are open, to a point. I manage a data center full of Linux servers, and regularly comb through the source code of the kernel or some other application to determine what it is doing. But, while the platform is open, the applications are not. How can we change this?
It seems natural now for a person to buy a computer, and it is beginning to seem natural to expect each person we meet to own a smart phone or a tablet. What if it became natural for each person, or each family at least, to also own a server? A personal, dedicated server that could host their web site, email, tent server, and any other dedicated web based application that they wanted to use. I’m aware that this might be pie-in-the-sky thinking, but ponder it a moment.
Even with the benefits of a personal server, it is easy to understand why more people do not do this now. As a sysadmin, I’m intimately familiar with the complexity of keeping web applications running. This is not for the faint of heart, if you are digging into linux systems administration you had best strap on your terminal emulator and ready your bash scripts. For the one server per person, or, more likely, per household, to be even remotely possible, the user interface must be simplified.
Another obstacle to the idea is cost. Is it worth the price of a server, in addition to colocation or the hassle of setting it up at home? Luckily, I think this is a much easier obstacle to overcome than the HCI problems mentioned above. A server does not need a lot of horsepower, it is not going to be playing games or doing any demanding computing tasks. So, a relatively low end computer could be purchased and put in a closet at home, then it is just a matter of assigning it a static, public IP address, or using a dynamic DNS service. Again, the hardware and bandwidth is not really the problem. The problem is getting the software setup to take advantage of it.
Even the process of getting dynamic DNS setup or ordering a static IP from an ISP can be a hassle. We should be able to build a system optimized to run in someone’s basement or closet to be their personal connection to the outside world. The protocols are either being built to be open, or already are open, to make this a reality, what we need is a serious, concerted effort in the server-side HCI space. This is Google’s worst nightmare, taking all of our data out of their servers, and putting it all in our own. Taking back control of our personal information.