Friday, November 27, 2009

Paradox of the Cloud

The question which everybody seem busy trying to answer is "What is Cloud Computing?"
There are many answers and opinions about it. The answers are influenced by a lot of forces and my intention is to analyze this question in some future posts.

But, as good philosophers, before we go into the exact definition of Cloud Computing, we should ask ourselves "Is Cloud possible?"
Now, this seems like a provocative question, but I am really serious about the question. The problem comes from a famous paradox that is sometimes called "Paradox of the heap" and the Greeks called it "sorites paradox". I really like paradoxes since they force me to think and often reveal deep things about the fundamental structure of theories.
The paradox is described in Wikipedia as follows:
"One might construct the argument, using premises, as follows:
1,000,000 grains of sand is a heap of sand (Premise 1)
A heap of sand minus one grain is still a heap. (Premise 2)
Repeated applications of Premise 2 (each time starting with one less grain), eventually forces one to accept the conclusion that a heap may be composed of just one grain of sand (and consequently, if one grain of sand is still a heap, then removing that one grain of sand to leave no grains at all still leaves a heap of sand)."

Obviously, if you replace heap with Cloud and grain of sands with droplets you will get the "Paradox of the Cloud". I don't think we will regard one droplet as a cloud or one computing node as a Computing Cloud. Note that the paradox is described going down to show that the problem is not a problem of induction. One can also describe the paradox going up from one droplet.

This paradox is an instance of a class of logical paradoxes which deal with vagueness. It is not a coincidence we have such a paradox for the Computing Cloud. The Computing Cloud is also a vague concept and everyone dealing with it is using this vagueness to pull the concept in the direction that suits himself. For example, Amazon is taking the Cloud to the Infrastructure as a Service, while Google is taking the Cloud to the Platform as a Service. There are some companies today that are thinking about Industrial Cloud and there is the famous Private Cloud where the borderlines between cluster and Cloud are really getting foggier.

All this pulling and pushing is very nice from the marketing point of view, but "The paradox of the Cloud" is of a logical kind and marketing have a small chance of answering logical questions. If anything, marketing and business are better in raising logical questions not answering them.

There are many proposed resolutions to the Sorites Paradox. Most of them involve all kinds of fancy logics. These logics are very interesting from logical and philosophical point of view, but I don't think they are interesting for the practice of Cloud Computing.

There is one proposed resolution that can be interesting to the practicing of Cloud Computing. The resolution is labeled "Group Consensus". This proposed resolution claims that a collection of droplets is as much a Cloud as the proportion of people who believe it to be so. That is very interesting since it actually brings the Community as a resolution to the paradox, and not just any Community, but one that reaches decisions through consensus.

The conclusion is very important, to solve the Paradox of the Cloud we need a strong community which defines its concept through consensus. This brings the importance of Open APIs and open field to all players. As bigger and as open the Cloud community will be the Paradox of the Cloud will be solved in a better way.

Khen Ofek

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

Monday, November 16, 2009


Welcome to my blog.
My name is Khen Ofek and I live in Israel. I am currently holding the position of SW Architect in the Israeli branch of Applied Materials. I have 14 years of experience as a SW professional and manager in the semiconductor equipment industry.

The two main subjects of this blog will be technology and philosophy.
As you probably heard, Cloud Computing is the hottest topic nowadays in computing technology. The "Cloud" in the name of my blog indicates that my interest in technology centers mainly on computing technology. But, I don't want to stay in the bounds of traditional Cloud Technology (if there is such a thing). I would like to stretch the idea of the Cloud to its limit, and of course, the sky is the limit.

In the philosophical part I am mainly interested in philosophy of science.
The fusion of these two subjects will lead to posts that deal with the philosophy of computing and technology. I would also like to explore the idea of taking some Cloud Computing themes and applying them to philosophy and especially to the philosophy of science.
There are many themes in this fusion. A prominent one is dealing with SW and system architecture. In the layer of system architecture, one is trying to reason in a highly abstract manner. Doing system architecture is actually practicing philosophy in the realm of technology.

Another important theme of this fusion is the subject of Freedom. The fascinating phenomena of Open Source and Free Software has always intrigued me. I really believe that the way to produce high quality SW infrastructure is to go by the way of Free Software.
A related and not less important element is Open Standards. This is also a fascinating world of cooperation and competition that is very valuable for human kind.

My mother's tongue is Hebrew, but I decided to write this blog in English since I hope to interact with international audience. The two main subjects of this blog are truly international and I feel I will miss too many people if I will write in Hebrew. So, you will have to excuse my imperfect English.
Obviously, I should state the regular disclaimer, that all things that I write in the blog are my own opinions and I am not representing anything or anyone else.
This blog will be licensed under the "Creative Commons - Attribution Non-Commercial Share Alike" license. This license connects nicely with the ideas of Freedom and Free Software.

I hope to see you as my regular readers and commenters.
Khen Ofek
Creative Commons License
Cloud Computing Blog by Khen Ofek is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Israel License.