Saturday, November 21, 2009

Cloud and Freedom

What is the connection between Cloud Computing and Freedom?
On first sight these two concepts seem quite separate. I would like to argue that there are some abstract ideas that Cloud Computing shares with Freedom, and both concepts influence one another.
As an analytical philosopher I should now define the term Cloud Computing and the term Freedom and only then start to deal with their relationships. I am planning to make those definitions in future posts, but for now I will settle for an informal discussion.

The first facet of the connection I would like to discuss is structure. One of the essential properties of the Cloud is that its structure is flexible. This property gives the users of the Cloud a lot of freedom. Cloud Freedom is the basic ingredient of making the Cloud analogy so powerful as a computing paradigm

So, what is the Clouds structure and what makes it so flexible?
The Cloud is built out of droplets. There is no consensus on the nature of those droplets. Are they computing resources, computing nodes, services, applications, or some other abstraction? In a future post I am planning to discuss the nature of droplets, but for current discussion it is enough to agree that the Cloud is made out of droplets.
But the droplets in themselves are not the Cloud. There is also structure in the Cloud. Clouds differ by the properties of the droplets and the properties of their structure. We can find different Clouds with the same droplets properties and very different structure.

The Cloud's structure is not really free (as in free will or output of a quantum measurement). The Cloud's structure is actually influenced by external forces. For example, for real clouds, a wind can change its structure. Also temperature and humidity conditions will influence its structure. The same should go with Computational Cloud. Its structure should be influenced by the external forces. In the case of the Computational Cloud the external forces are its users needs, technological environment and overall system principles.
Meteorology is the science which tries to understand how do the real clouds change their properties and structure in relation to the external forces that act on them, I think we should develop a Computational Meteorology to construct the appropriate theories for understanding and defining the Computational Cloud given a certain computational external forces. Computational Meteorology will let us configure our Computational Clouds in an efficient way, either statically (at compile time) or dynamically (at run time) or at deployment time.

Another important facet of the discussion on the connection between Cloud Computing and Freedom, is the user's freedom. Computational Clouds have a lot of users. There are two main groups of Cloud users, the Cloud builders and the Cloud consumers.
For the Cloud consumers, one of the most important element of Freedom is Open APIs. The openness of an API is a matter of scale. The scale is even a multi-dimensional scale, so it is pretty complicated. Unfortunately, the openness of an API is also a very delicate matter, with a lot of nuances which influence it. It is very important for Cloud consumers to be aware of these issues and to be on the guard from commercial interests which will take away consumer Freedom. Take for example the mess of the Open Cloud Manifesto, the fact that the big players like Amazon, Microsoft and Google won't sign the Manifesto says a lot about their intentions regarding how Open and Free their APIs will be. I am not sure how pure IBM's intentions are, but the principles in the Manifesto are very important for Cloud users and we should not forget to demand them from the Cloud providers.

The Cloud builders don't really like the Freedom that is inherent in the Cloud idea. I think they won't be able to fight it for long, its better for them to agree on a really Open API for applications so they can build a lot of Clouds and run a lot of applications. For Cloud builders, the question of inner Cloud interfaces is also interesting. If we will have a robust enough interfaces inside the Cloud, we could have a real integration of Cloud builders of many kinds. For example, we cloud have a higher level Cloud provider which will integrate other types of Cloud providers such as Cloud DataStore providers and Cloud Processing providers and even Cloud network providers, all working in concert to run many applications.

There are many more facets to the connection between Cloud Computing and Freedom. For example, data freedom (freedom from structure and freedom from lock-in). Computing HW freedom is also interesting, we are starting to see heterogeneous Cloud environments. And we didn't even talk about Open Source and Free Software in the context of Cloud technology. But, since this post is already long enough, I will leave the discussion of these facets to a future post.

Khen Ofek

No comments:

Post a Comment

 
Creative Commons License
Cloud Computing Blog by Khen Ofek is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Israel License.