Cloud Computing: Good or Bad for Open Source?

Cloud computing: you may have heard of it. It seems to be everywhere these days, and if you believe the hype, there's a near-unanimous consensus that it's the future. Actually, a few of us have our doubts, but leaving that aside, I think it's important to ask where does open source stand if the cloud computing vision *does* come to fruition? Would that be a good or bad thing for free software?

"Somebody is saying this is inevitable – and whenever you hear somebody saying that, it's very likely to be a set of businesses campaigning to make it true."

The 55-year-old New Yorker said that computer users should be keen to keep their information in their own hands, rather than hand it over to a third party.

Go on, Richard, tell us what you really think.

The problem is that even if – or may be even though – he is right, people are going to use cloud computing solutions because they are so convenient (well, that's my excuse). Obviously, we need to mitigate the risks of doing so, for example by insisting on the right to move our data out from such services, and requiring stringent privacy safeguards. So, again, re-framing my question: assuming we can sort out issues of security, privacy and the rest, and use cloud computing as well as it can be used, it it good or bad for open source?

At one level, it looks pretty good. Cloud computing is about harnessing economies of scale; that, in its turn, almost forces suppliers to deploy free software, because the licensing costs for the software that keeps the cloud humming (or whatever noise clouds make) do *not* scale for traditional closed-source software (unless, of course, you are Microsoft, and can use the code for free). And indeed, we find that much of Amazon's and Google's cloud computing infrastructure is based on free software.

So in that sense, cloud computing is a huge win for open source. As a result, it will always be cheaper to run enterprise applications running on GNU/Linux in the cloud, for example, so this may be enough to steer cost-conscious companies in that direction given that they also won't have to worry about the messy hands-on stuff like installing or maintaining free software.

What's more problematic is that the use of free software by cloud computing providers does not trigger the the distribution clause of the basic GNU GPL. This means that any cloudy tweaks made to free software by companies like Amazon or Google are not necessarily contributed back to the community. The use of the GNU Affero GPL solves that in theory, but not in practice, since the core infrastructure programs – Linux, MySQL etc. - don't use it.

So this would seem to suggest that a move from on-premises to cloud computing would actually *reduce* the contributions of code back to these projects. Now, it's plainly not in the interests of the cloud computing providers to kill off the very applications they depend on, so presumably some kind of compromise will be found whereby they contribute back some of their tweaks to help improve the code they run. But the more pervasive cloud computing becomes, the fewer the on-premise deployments of free software, and the fewer the number of independent external contributions back to those projects there are likely to be.

The situation for general users of Gmail and Google Docs, say, is even worse. There, they are unlikely even to be aware that they are running on free software – at least companies migrating to the cloud have to choose which platform to run their apps on. This makes me wonder whether the open source world needs to address this problem directly. I think it does, if it wants to remain relevant to vast majority of computer users; the question is how.

Ideally, what we need is a completely open source cloud computing infrastructure on which applications providing people with things like (doubly) free email and word processing services could be offered. Now, it's clearly not possible to create the kind of huge facilities that Amazon, Google and Microsoft are building around the world. Not even Mr Shuttleworth, with all his millions, could sustain that for long without charging somewhere along the line. So simply running open source programs like Eucalyptus is not going to work. The trick here is not to fight the battle on the opponents' terms, but to come up with something completely different.

For example, how about creating an open source, *distributed* cloud? By downloading and running some free code on your computer, you could contribute processing power and disc space that collectively creates a global, distributed cloud computing system. You would benefit by being able to use services that run on it, and at the same time you would help to sustain the entire open source cloud ecosystem in a scalable fashion. Collateral benefits would be resilience – it would be almost impossible to take down such a cloud – plus integral privacy if data is scattered across thousands of machines in the right way.

Is there something like that already? The nearest thing I could find is Swarm, “a true, distributed programming language.” This comes from Ian Clarke, probably best known for his Freenet, which is:

free software which lets you anonymously share files, browse and publish "freesites" (web sites accessible only through Freenet) and chat on forums, without fear of censorship. Freenet is decentralised to make it less vulnerable to attack, and if used in "darknet" mode, where users only connect to their friends, is very difficult to detect.

There's clearly a lot of commonality between Freenet and distributed cloud computing systems. And as far as I can tell from Clarke's video on Swarm, it seems to be addressing the right issues, although I'd be interested to hear the views of people whose programming skills are better than mine, which never progressed beyond Fortran.

So, is Swarm the way forward for open source cloud computing? Or are there other, better projects out there that might solve some of the issues raised? Or should we just stick to Google and be grateful? Your comments, as ever, are welcome.

Comments

Comment viewing options

Some have said hat open source doesn't matter in the cloud. I think that what was meant was that once your computing workloads are hosted on a remote service, the most important things to you as a customer are reliability, uptime, scalability, interoperability and manageability - not whether or not the cloud infrastructure or application provider is running on open source. I think this is true. Cloud computing does not make open source irrelevant. The enormous value that cloud computing is generating, and the rate at which it is changing, demands that open source plays a ubiquitous role. It will not always be a flashy role and may not seek the limelight, but it will be the glue that lets the whole system evolve and mature.

I was invited to give a talk before RMS last yeat at a peruvian university and after RMS's talk we went to have lunch with the organizers.

I asked Richard what he thinked about cloud computing and he explained to me that what he sees as stupidity is doing what he called "your personal computing" (e.g. personal documents, spreedsheets, etc) but thought the cloud was perfectly OK for applications like search.

I asked what he thought then of social networks and social computing in general but in this personal style he simple replied something like "I don't do social networks" and the conversation drifted to some other topics.

So maybe it's excessive reductionism but you can somewhat say RMS thinks Google Docs is evil but Google Search is just fine :)

Cloud computing is going to end up meaning less data silo's, and that's about it. The question of privacy is not even going to be asked because it's going to be up to the user to choose how private they want their data. Their PC is not going to participate in "the cloud" in any way, but they will choose what data is allowed to roam throughout the cloud. I also happen to believe the world will eventually move away from the browser, and instead merge desktop with the internet.

Having said that, it's reprehensible that you're putting the perceived needs of OSS before users. In general "the cloud" in this respect is going to be very good for users, and OSS be damned (I think OSS will continue to be relevant, but even if it isn't, then so be it).

It seems to me that there is a very fine line between distributed cloud computing and running (whether willingly or not) as part of a botnet. If I were to contribute some of my PC cycles to a distributed cloud, would I know what program was running on those cycles?

If you cannot conceive of existing in anything other than a hive, then cloud computing is for you. After all, in a hive, there is no privacy; all is known to everyone. A hive is the ultimate in 'openness' where there is no private data, there is no private software, there is no private ownership of anything; all belongs to, and all belong to, the hive. There is no individuality. "We are the Cloud. Resistance is futile."

If you cannot conceive of existing except as an individual who sometimes contributes to society, then you should stay as far away from cloud computing as you possibly can. Your data are your own; your systems are your own; your software is your own. Share if you choose to, don't if you choose not to. "I will not comply. I will not conform."

Alas, there are too many arrogant busybodies in this world who think that they know what's best for everyone else. Some'll insist on controlling and maintaining your data because you are too stupid to do it or to learn to do it yourself. Others'll insist on holding your data hostage and making you utterly dependent on their systems which they call 'clouds'. "We control your identity; we control your data. You cannot exist outside our cloud."

In the hive scenario, there is no need for open sources software, because there is no need to program or debug or develop, because all the software is contained within the cloud.

In the individualist scenario, open source software is paramount, because they want to keep their data to themselves and do not wish to become dependent on any third parties.

In the bully scenario, open source software is immaterial, unless it can be more easily modified than in-house software to make proprietary file formats. And they'll find reasons to avoid sharing the open source software they use with anyone else.

Does this support anyone joining those grids - in other words, can you just hook up random personal computers anywhere in the world, join them to the grid/cloud and then run other people's tasks on them securely?

it is a good post and I like the idea of open services. Though, I think there are various motives for people using free and open source software (and for those that author this software). I think of people that just want free software (as in free beer), others want long standing access to their data, even others think of improved code quality and reducing development costs and then, there are people that want to modify and remix the actual code.

So, for some users, ad-sponsored web apps are just fine. Others want or need to run their own services and patch the code as they need it. To deal ith these issues, we try to run free services like 301.sicos.org and give away the source code. It is fine for us because we do not deal with competition or commercial reuse, but I am amazed to how others take on the clould challenge and what will evolve from this debate.

...there's a spectrum of needs. But what I wanted to explore was the effect of cloud computing on the development process as much as anything. In other words, if there aren't so many patches coming in, what happens, and does it matter?

....I mean, really--it's like asking Pat Buchanan what he thinks of undocumented workers with Hispanic surnames. Stallman can *always* be counted on for a snarky paranoid rant that can pretty well be counted on to miss the point.

In this case, the point being missed is that the move to "the cloud" very much does represent a real opportunity for advocates of free/open source software.

Before computers, data was stored in paper-based filing systems and controlled by the owners of the data. Even if it was created by a machine (typewriter) produced by, say IBM, the result was clearly owned by whomever possessed the copy.

Computers made it possible for the suppliers of the "typewriter" (word processor, etc.) to hold data hostage by encoding it in proprietary formats and to hide the implementation of those formats in binary-only proprietary code. The purpose in doing this was simple--force customers to purchase "upgrades" again and again just to maintain access to "their" data in order to build and maintain an endless revenue stream.

Free software short-circuited that stream by making it possible to create and store data without paying software companies a dime. Cloud computing is only an attempt to take back control of user's data to restore that revenue stream and to maintain it indefinitely into the future.

I think you've clearly highlighted a very important subject that needs to be discussed more vigorously and openly. The need of the hour is to empower people to freely use the internet in ways they see best for them. Open source was the free person's alternative to restrictive closed source software. If software has transformed itself into a service the open source movement should strongly consider transforming into an open service movement. We have a pressing need for the Freegles, Freemails and Freebooks of the future to emerge as true alternatives to the invasive services on offer from the likes of Google and Facebook.

Maybe we need new terminology, too, like "open services", as you suggest, because it won't be the open source bit that's visible, even though it's there. There are certainly lots of issues around this.

I do agree with Stalmam:
"...
It's worse than stupidity: it's a marketing hype campaign," ..."
"...
"Somebody is saying this is inevitable – and whenever you hear somebody saying that, it's very likely to be a set of businesses campaigning to make it true."

And, complimentary I would say: This hype technology, developed at a marketing Lab, is one of those ones that would let you to "reduce" your cost of operation. But, be noticed, NOT before you increase your operational costs to became able to come aboard of a cloud!!!!!

Just turn the calculator on and do the calculus... 10 years to amortize. For something you absolutely needn't for.

I'm not sure I understand the problem you are trying to address. Cloud services vendors are not to be trusted because they don't share their operation software secrets? Yet, you want me to trust a bunch of teenage and college kids running "Swarm" software with my data? Create a business plan, present this to come CIO and security managers and let me know what they think.

And as for security, my (vague) idea is that data is chopped up and encrypted before it is sent out; it is unencrypted in a secure container, processed, then encrypted before being sent back and re-assembled. Of course, I'm making this up as I go along...

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.