Fashion is fickle. One day thin clients and clusters are the fashion de jour, the next it's Web 2.0, Virtualisation or distributed computing and Grids. They who live by the sword of fashion will surely perish by it but a new model has been strutting its stuff along the catwalk of web fashion and she goes by the name of Cloud Computing. Like all fashions there is a deal of hype surrounding it but there is a consistent concern emerging from all that hype and is about the dangers of proprietary cloud computing. Richard Stallman has called it a "trap". He is right--but it is more than that. It is a well-baited, DRM-like honey trap for the unwary. That is not immediately obvious. Like all good traps it suckers you in before the wire noose tightens around your neck. You don't have any wire cutters in your rucksack but you do have the GPL and free software to effect an escape. Can it save us from vendor lock in and proprietary software?
What's wrong with proprietary clouds
when presented with the shiny baubles of cloud computing users can take a rush of blood to the head
The hobbled nature of proprietary software is too well known to need detailed reprising here: cost, interoperability, restrictions on use, licences etc. Yet, when presented with the shiny baubles of cloud computing users can take a rush of blood to the head like lovers in the first flush of romance. They see a useful product, they want it and they are in too much of a hurry to read the small print. Well, we've all done it but that's no excuse. Usually, you read the small print after the website hosting you valuable data has folded, hiked up the costs or you discover it has allowed data mining and search engines indexing the site.
Here is a quick thumbnail list of what is wrong with proprietary clouds:
- inability to control costs--fees, subscriptions
- no control over choice of hardware specifications
- no control over connection protocols
- no right to change applications or access source code--or write new ones
- problems encrypting your own data (except during transmission)
- some cloud hosts are free, as in beer but not speech
- inability to control the economic business model determining a host's viability
- you can't host the cloud where you want it
- unable to scale hardware and software configurations
Oranges aren't the only fruit
I'm sure you can add many more to that list but you get the picture. At a time when the cost of storage on removable media is sinfully cheap, with even external Terabyte drives (1024 Gigabytes) being eminently affordable, you are probably asking why you would want to go to the bother and possible expense of hosting your data remotely with all these catches. Well, as far as just backing up music, videos, configuration files and indeed whole hard drives, it really is better for the average user to do it all locally. For them cloud computing is probably unnecessary and arguments against it are moot. Being local not only avoids Stallman's trap, it also frees you from the vagaries of network connections too. Nevertheless, there will be times when cloud computing could be useful and just because many clouds are proprietary doesn't mean we're out of luck. Well, oranges aren't the only fruit.
If you are working on a project, software or otherwise, collaboration is in order and many people set up wikis and mediawikis but you may need to scale up for big projects like software development or writing books. This is where open source cloud computing offers a solution that guarantees security and total ownership to the last nut and bolt. Cloud computing is not a threat to free software--unless you knowingly embrace the proprietary model. The FOSS model ensures that you can avoid that Faustian pact.
our freedoms will depend on the kindness of strangers donating their modifications to our code back to us
Others have understood this and launched an open cloud manifesto. This can be seen as a response perhaps to Tim O'Reilly's belief that we need a set of guidelines for open services to avoid open source licences becoming obsolete and to others GNU/Linux luminaries like Jeremy Allison (of SAMBA fame and principled opposition to the MS/Novell patent deal) who described the gap, now filled by AGPL, as the GPL's fatal flaw:
If I ever work on cloud computing code, I'd like to see it under the AGPL, in order to preserve the freedoms I've been able to enjoy in conventional software development these many years. Without the AGPL, our freedoms will depend on the kindness of strangers donating their modifications to our code back to us, as they did in the days before the GPL license and the FSF was born.
Some believe that the flaw would facilitate the use of GPL code in exactly the same way tha BSD code is used in proprietary software.
The manifesto does not seem to be aimed primarily at the individual but the manifesto principles scale equally well for a group of non-commercial collaborators in the free software community. However, this manifesto is not some kind of technical standard like ISO; so, free software cloud computing needs a little more robust protection and it has it in the form of the AGPL--the Affero General Public Licence, version 3.0. The AGPL has specific provisions relating to the use of software over a computer network (Section 13 of the licence refers).
It is GPL compatible and permits linking to GPLv3'd works in the sense that you are permitted to combine separate modules or source files released under the GPL and the AGPL in a single project. Importantly, the AGPL is a strong copyleft licence which means that derived works must retain the terms of the licence and that you must make the source code available too (useful if you want to check code to make sure no one has smuggled in a trojan horse or rootkit virus). That should ensure that free software clouds will not be hijacked by maraudering, proprietary hostile take over merchants. The licence has been reported as being used by more than one hundred projects.
Keep your cloud local
Surely that's a contradiction in terms? Let's see. Even if you ensure that the cloud computing you use is full of GPL'd goodness, uploading data to third-party servers just plain unnerves some folk. They prefer something akin to the peer-to-peer file sharing model where, once the necessary (free) software has been installed, users can share/exchange files. Of course, free software cloud computing requires more sophisticated tools than file sharing but both models cut out the middle man.
Your home computer effectively becomes a storage server. Yes, you can enjoy cloud computing from the comfort of your laptop or desktop and if you project collaborators have installed the software too you now have the same facilities as the captives helots to the proprietary clouds infesting hired domains and servers on the internet. The only downside is the need for home machines which are not net-facing servers to be always on.
So who and where exactly are these free software clouds?
Outsourcing your digital rights to third parties is like advocating big government, you barter away your rights and freedoms in a chaotic, uncertain world for the drab and penal certainties of life under the shelter and protection of Big Brother
Richard Stallman said that cloud computing was a trap, not just because the software running the cloud may be proprietary but for all the other obvious reasons about safety, access, security, interoperability and ownership but simply because the very act of "hosting" anything on a third-party server makes users hostage to fortune. Outsourcing your digital rights to third parties is like advocating big government, you barter your rights and freedoms in a chaotic, uncertain world for the drab and penal certainties of life under the shelter and protection of Big Brother. You may never want for anything--except the freedom that makes you fully human and life worth living.
Even if cloud computing is all hype, mostly hype, a passing fad or a fast forward button away from the past of thin clients, the free software community cannot afford not to get in on the ground floor (if you'll excuse the double negative). If it really becomes a new paradigm shift it needs to get to the dining table before the feast is scoffed by the corporate raiders of commercial, proprietary software. Don't believe me? Well, Dell actually tried to trademark the term "cloud computing". Thankfully the application was refused but it does give you some idea of the sheer effrontery of hardware vendors.
Even Microsoft might have blushed at that and they realise that as people are increasingly reluctant to lock themselves into expensive software/hardware upgrades (especially in the current economic climate), they have to survive by renting software and selling it as a service (SAAS)--and calling it cloud computing. Microsoft has LiveMesh and Apple has Mobile Me. Both are of course proprietary. The only true protection from all of this is dedicated free software and it's starting to appear out there.
If you want to own the hardware and the software and choose who gets to access it all Tonido may be one solution. It has all the usual features you would expect of cloud computing (for God's sake, when are we going to invent a better term than that? Every time I hear it, say it or write it I see think of Aristophanes' The Clouds.)
With Tonido your computer is the storage server and it also hosts the applications. It is probably better and more accurate to call applications like this "Personal Cloud Computing". Some have even called it "cloudless private file sharing". Cloudless cloud computing, Who knew? Tonido describes itself as an extensible personal web application development and the developers don't like the buzz term cloud computing at all. The main function of Tonido is for it's servers to track your IP for remote logins. Tonido has modules for things like music, blogs, photos, calendars and file sharing and more importantly, a built-in P2P service that facilitates file sharing in collaborative projects. As I said earlier, the only downside is that you will need to leave your computer on. Even so, Tonido looks like a solution for user who fall into the SOHO (small office, home) category. There is a problem though.
The Tonido platform is free software--but the applications shipped with it are not. Developers are free to add their own free applications and release them under a pure, undiluted open source licence if they so wish. The platform is available under a number of licences, including the GPLv3. Currently Tonido is availabe for Ubuntu 8.04 (Ubuntu, Kubuntu Xubuntu). A Firefox plugin Tonidofox has just been released which allows to access many Tonido features directly from that browser. It is downloadable from their site and is, I suspect, proprietary too.
In GroundOS, OS stands for open source, not operating system. GroundOS is not available yet. It is due for launch on 1st May this year. It is for individuals, groups and organisations which means that it is highly scalable. It can be set up at home for personal private use, on a web server or in collaboration with friends or project workers.
The developers describe it as fully free and open source. It has been released under an MIT/BSD licence. Examples of software using the MIT licence are Fluxbox, QTorrent, Banshee and Ruby on Rails. If you visit and read the front page of the website it is clear that the developers are committed to plucking cloud computing from the clutches of commerce and their detailed explication of it shows real commitment to the philosophy and practice--but I would have been happier if they had released their software under the banner of an unalloyed GPLv3 licence.
Many people who want to use it might be thwarted by their lack of knowledge and experience in setting up a web server if they have no experience of PHP5, Apache and MySQL but the developers have catered for that by their intention to release a simpler setup program (presumably a point and click wizard) to install it for you. They are going to cater for end users and webmasters, the latter being highly configurable with drag and drop and easily installable scripts to create applications from IDE, FTP, mail, blogs, forums etc. It's very early days but if you want to avoid vendor lockin and proprietary software, GroundOS, if it lives up to the pre-publicity, could be your get-out-of-jail free card that escapes the Stallman trap and the marketing hype invented to disguise the ugly truth about SAAS and rented software.
Ubuntu: hey you, get on our cloud
Koalas are cute and cuddly and they like Eucalyptus leaves. They're not the only ones. Ubuntu do too. Ubuntu 9.10 (Jaunty Jacklope) has just been released and it comes with Eucalpytus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems. Phew!) designed for cloud computing on clusters on local networks with protection from an external firewall and compatibility with Amazon's EC2 Service. I'll let Mark Shuttleworth say it better than I can (in his usual metaphorical style):
A good Koala knows how to see the wood for the trees, even when her head is in the clouds. Ubuntu aims to keep free software at the forefront of cloud computing by embracing the API’s of Amazon EC2, and making it easy for anybody to setup their own cloud using entirely open tools. We’re currently in beta with official Ubuntu base AMI’s for use on Amazon EC2. During the Karmic cycle we want to make it easy to deploy applications into the cloud, with ready-to-run appliances or by quickly assembling a custom image. Ubuntu-vmbuilder makes it easy to create a custom AMI today, but a portfolio of standard image profiles will allow easier collaboration between people doing similar things on EC2. Wouldn’t it be apt for Ubuntu to make the Amazon jungle as easy to navigate as, say, APT?
What if you want to build an EC2-style cloud of your own? Of all the trees in the wood, a Koala’s favorite leaf is Eucalyptus. The Eucalyptus project, from UCSB, enables you to create an EC2-style cloud in your own data center, on your own hardware. It’s no coincidence that Eucalyptus has just been uploaded to universe and will be part of Jaunty - during the Karmic cycle we expect to make those clouds dance, with dynamically growing and shrinking resource allocations depending on your needs. A savvy Koala knows that the best way to conserve energy is to go to sleep, and these days even servers can suspend and resume, so imagine if we could make it possible to build a cloud computing facility that drops its energy use virtually to zero by napping in the midday heat, and waking up when there’s work to be done. No need to drink at the energy fountain when there’s nothing going on. If we get all of this right, our Koala will help take the edge off the bear market.
Not quite in the same territory as Tonido or GroundOS I'll admit but it shows that Ubuntu can see where things may be going and as it is free and open we will doubtless see distros which traditionally fork from Ubuntu deploying it too and taking it in directions for which it was never originally envisaged. That's the GNU/Linux way.
like yesterday's newspaper, cloud computing may become tomorrow's fish and chip wrapper
If the spirit and philosophy behind software like Tonido and GroundOS, particularly GroundOS, are anything to go by then it might be that for once free software is on the crest of a curve, or even ahead, instead of lagging behind it. I will not ever be trusting personal, stand alone data and backups on anything other than my own removable media but for collaborative projects free software "clouds" would be an acceptable solution.
Maybe it is all just hype and like yesterday's newspaper it will become tomorrow's fish and chip wrapper, but if so-called free software cloud computing is the real deal then you might want to give it the benefit of doubt. Think of it like a technical version of Pascal's wager. Nothing to lose and everything to gain. Let me put it this way: I'm making a note in my desk diary for 1st May. It could be the start of something beautiful.