When we think of the cloud often we have to think of the negative consequences, of diminishing the rights of users and removing their control even over their own computing. When combined with an illegitimate surveillance state and abusive monopolies that believe they have the right to look at people’s private data and communications at whim, this puts basic liberty, and even the life, of people engaging in entirely legitimate activities in danger from that most basic human need, that of communicating and sharing with each other. However, not all ideas for cloud computing need be based on or potentially offer anti-social and otherwise destructive outcomes.
Much of cloud computing infrastructure of course also uses free software. True software freedom even includes the freedom of some to misuse. The GNU General Public License deals with a very specific form of misuse, where anti-social parasites could try to create proprietary versions of existing free software and thereby deny their own downstream users the same freedoms they themselves received. However, the potentially malicious aspects of cloud computing use is different, and, for example, like free software used in military systems, is one which to solve potentially has the unintended consequence of destroy freedom for many others. We simply cannot of course predefine for others what are legitimate uses for our software, we can only assure that people who receive it have the same freedoms we ourselves received, whether we feel they use it for what we may deem as good or bad purposes. If we act otherwise and define for others what we consider “permitted” uses we would in doing so destroy freedom 0.
However, it is worth noting that not all uses of cloud computing need have negative social consequences, and I wished to spotlight a specific example which I think shows a better way to go forward. This particular one is a service and software stack for cloud services offered by RedHat known as Openshift. I do not choose to endorse particular companies, products, or services, but I wished to highlight what RedHat is doing in the context of this discussion because they are doing something very relevant and interesting that may offer a means for addressing the anti-social and more destructive aspects of cloud computing.
Openshift itself was originally called Makara and part of a company that RedHat acquired in 2010. Having done so, they made the entire stack available on a free software license (Apache 2.0) last year. Of course as noted other cloud computing stacks are available on free software platforms, and at least some with liberal/free software licenses. This is not the problem. However, there are several essential things that RedHat is doing differently that are worth noting.
First, they make use of git and shell access to deploy applications. This solves one important issue; data migration. Often cloud computing providers lock your application services on their platform, and you cannot then easily get your computing back or otherwise migrate it, for example even to another provider, and even if they both use the same base software stack. This makes application migration as easy as setting a different remote git repository and pushing. However, the real problem in cloud computing is not in being able to migrate from one potentially abusive external entity to another all under the watchful eyes of a surveillance society, but also in being able to regain full control of your computing if you so choose or otherwise need to. It is in this I think Openshift offers an interesting solution that I think should be a default behavior for all legitimate cloud computing services.
Starting, I believe with Fedora 19, the entire Openshift stack is being included in the Fedora repository as a simple set of packages anyone can download and install. There is also online resources and documentation for building the infrastructure from source. This means if you do not wish your computing externally hosted, you could, with relatively modest resources, host your own cloud computing directly. And since simplicity of data and application migration is already part of that infrastructure, it also should be very easy to migrate services and applications back to your own facilities anytime you may wish. To me this helps to mitigate an essential risk in cloud computing.
The Openshift infrastructure of course itself somewhat complex to setup and configure, and this I do not see as avoidable. However, having the freedom to do so, and the means to find expertise to help as needed, as well as very simple application migration, are essential elements missing in many cloud computing services. Having the means to do so with pre-packaged components in a distribution repository and under a free software license also will make that freedom much more realizable than simply theoretical freedom.
I see much less risk in having the freedom and means to host with an external cloud computing provider, so long as one can reclaim control and local ownership of one’s hosted computing if so choosing, and can do so relatively easily. Nor do I see any problem with using cloud computing tools for local infrastructure so long as they are provided as free software that runs on free software platforms. There is certainly room for improvement, though. Elasticity should mean seamless migration from local facilities on demand and by desire entirely under the users control, rather than by first requiring external migration. That is, the cloud elasticity should be an adjunct resource for times and workloads when desired, rather than an either/or choice. Having matching infrastructure locally could help eventually make seamless operations possible, certainly it is the place to begin.
RedHat itself offers some infrastructure for the community to experiment with Openshift, and we have been using this for a few things. In particular we are using it to host a bug tracking system and a friendika instance. In some ways this is better than a some kinds of more traditional external hosting provider because we do have the means to easily maintain our applications, as well as having the freedom to easily migrate and have these things hosted elsewhere if we do so need. This I think is at least closer to how cloud computing services should be offered.