Saturday, December 12, 2009

Structure and unStructure

At the end of the first day of IGT2009 conference, a meeting called CloudCamp was organized.
The meeting was organized by Reuven Cohen who is the founder and CTO of Enomaly.
CloudCamp is actually an unconference on Cloud issues. Reuven told us that it was first came into being when a group of people tried to answer the question of "What is Cloud Computing?".
The idea of an unconference is not new. There are many unconferences around the world on various subjects. Unconference is an informal meeting which lacks a rigid predefined agenda and schedule. Only the topic is defined and the discussion can go wherever the audience wants to take it.
I didn't stay for the whole meeting, But I stayed enough to enjoy the idea of an unconference, even though it was the first unconference I participated.
The meeting began with 3 lightning talks from the three funding companies. A lightning talk is a five minutes talk which is not supposed to be the company pitch, but often it is.
Then there was an unpanel. The idea was to choose five people from the crowed who will be the panelists. The remaining crowed is asking the questions and the unpanelists should answer them to the best of their ability. To my surprise this was a very interesting panel discussion. The idea of giving a small amount of structure to the crowed was very helpful. When you compare it to a regular talk you realize that the structure of a panel really helps the discussion even if the panelists are just members of the crowed.
I think the whole idea of CloudCamp and unconference can be compared to the idea of Cloud Computing itself. In the CloudCamp the droplets are people, while in Cloud Computing the droplets are computing nodes. The idea is putting enough structure to make it interesting, but not too much structure. This idea of going on the boundary of Structure is shared between CloudCamp and Cloud Computing. The surprisingly good things that come out of unStructure elements are also shared between CloudCamp and Cloud Computing.
This tension between Structure and unStructure is a recurring theme in other ideas which became popular in recent years. Such ideas include the agile development methodology, Free Software bazaar, the Dynamic Infrastructure pushed by IBM and NOSQL.
As an architect, this is one of the most interesting tensions, if an architect solves this tension he can do wonders to the system. Since this tension involves a lot of non-linear phenomena, it is very hard for the human mind to understand all implications of this tension. We need to develop better conceptual tools in order to analyze and control the tension between Structure and unStructure. These tools will enable us to architect robust and long lasting systems of many kinds.

Khen Ofek

Saturday, December 5, 2009

The joy of collaboration

I went to the IGT2009 conference. This was an international Cloud Computing conference. The conference went very well. It lasted for two full days with a lot of interesting speakers and a lot of things to think about.
I am planning a series of posts which will tell you about the things that were going on there and try to analyze them.

The first thing I would like to talk about is Yossi Vardi's keynote which was titled "The joy of collaboration".
I think it was very insightful talk. He actually didn't talk about Cloud Computing. He said he is talking about a deep reason we are all in the conference, and I think he was right in not only one plane, but in three different planes.

The first plane was explicit in his talk. The killer-apps of SaaS are collaboration applications such as Email, Social Networking and IM. We are social animals, and we get joy from collaborations. This was the main theme of the talk. Vardi showed some very nice videos showing collaborations in action. The nicest video I remember showed the patterns formed by a flock of starlings, see for example this video. At the end of his talk he tried to show us and talk about the beauty of collaboration. I think he somewhat missed the point with the videos at the end since they showed only few individuals collaborating, and the whole idea of the Cloud revolves around massive scale.

The second plane is the structure of Cloud Computing. Here we are talking about computing nodes that are collaborating. To an architect like myself this collaboration has its own inner beauty. The formations and patterns in the Computing Cloud can also be regarded as elegant and joyful like the formations of the starlings.

The third plane is the conference itself. Here again, we are talking about people's collaboration and it were two joyful days indeed.

Khen Ofek

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.