Friday, June 8, 2012

What does the cloud provide?

OK. We have seen that the cloud is a nickname for the potentially changing and somewhat mysterious connections that allow equipment (and people) to talk and send data to each other. The modern cloud will usually make direct use of the Internet Protocol (IP) network -- although that is not mandatory. The advantage to using the IP network is that each request can be routed to a different location.

In the old cloud, you basically had a direct connection (often called "point-to-point") between two pieces of equipment (possibly phones). With an IP network, since each message contains the address of the originator and the address of the destination, the resulting connections are "many-to-many". Your local equipment probably has a single IP address but the IP address is used in conjunction with another piece of information called the "port". The IP address identifies the physical device that is receiving and transmitting data and the port is used for routing the data to the right application or task.

What does this mean in real life? Let's say that you have a word processing application open and you also want to listen to music while you are typing on the document. The word processing app might be using a combination address of "53.13.18.01:2022" where the part before the colon (":") is the IP address and the part after is the port number. The music application makes use of "53.13.18.01:1954" (these are arbitrary numbers). Since the two apps are making use of two distinct ports, the data can be routed appropriately.

On the other end, the word processing app might be connected to "103.44.17.34:1113" and the music app is getting the music (data) from "87.19.33.92:1954". Note that the music app and its data are using the same port number -- it's not required but it does simplify some of the interactions. We can see from the addresses that we have two applications on a single physical device connected to two separate data providers which are likely on separate physical devices.

This is the power of the cloud -- the physical and logical separation of the data from the applications making use of the data. The data storage might be of music, documents, spreadsheets, ebooks, or whatever else you can imagine.

Next, what about applications in the cloud (sometimes referred to as "Software as a Service" or SaaS)? Well, actually, the data providers are applications and are interpreting the data coming from the "local" application in order to retrieve and route data appropriately. SaaS moves most of the processing of the data to the remote server. It isn't actually in the cloud but, from the point-of-view of the local user, it may still be located anywhere and, thus, part of the cloud from one endpoint's point-of-view.

Finally, the cloud can provide alternative paths and destinations. This can provide data transparent backup. Let's say that you have your endpoint making use of data stored at location C. Unknown to the user, C is constantly backing up ("mirroring") the data at location D. If the physical device hosting C goes down (is now unavailable) then the local app can be routed to D without the user even knowing anything has gone wrong.

The cloud provides many services and will provide even more in the future. However, with this complexity comes different types of vulnerability. I will address that in the next blog.

Interrupt Driven: Design and Alternatives

       It should not be surprising that there are many aspects of computer architecture which mirror how humans think and behave. Humans des...