A small note about a popular expression "Cloud Computer".

Today, there are no people who haven’t heard about this popular expression, which came instead of a previous “3D” and "Digital" popular sentences.

So, what does it mean?
Actually, not so much. It’s a regular ability of remote server to process the stream of information.

The only difference from regular server is the ability to connect several other servers to help itself (in case of  lack of resources).
As a result, big number of people can receive service from the server.

One of the examples is a popular on-line game which is able to process simultaneously requests from 10 players that are placed in one virtual room.
If 11-th player joins the game, a new server gets up and runs an additional room (a clone of the existing one) for him, as a result, he can’t  see anyone in the room.

Nowadays, there are many ways to synchronize data between all the servers, but we are not speaking about this.

One of fundamental goals of Cloud Computing today is to try to teach a programs to detect a critical moment of  lack of resources and automatically send request to run an additional servers, deploy a program to them and synchronize with them.
At the moment of decrease of amount of work, the central server must automatically stop excessive servers.
Therefore, companies can save a lot of money, by paying only for really necessary servers.

One of the official definitions:
Cloud computing - a model for enabling convenient, on-demand network acccess to a
shared pool of configurable computing resources that can be rapidly deployed and/or
released with minimal management effort or service provider interaction.

Google's view on the topic:
"Not too long ago, many of us worried about losing our documents, photos and files if something bad happened to our computers, like a virus or a hardware malfunction. Today, our data is migrating beyond the boundaries of our personal computers. Instead, we’re moving our data online into “the cloud”. If you upload your photos, store critical files online and use a web-based email service like Gmail or Yahoo! Mail, an 18-wheel truck could run over your laptop and all your data would still safely reside on the web, accessible from any Internet-connected computer, anywhere in the world."


Other definitions we can be found here:
Twenty-One Experts Define Cloud Computing



What kind of clouds are there?
In fact, there are only 4 types of clouds:
   Private – enterprises create private clouds for exclusive use.
   Public – a company buys services from an external vender, such as Amazon. Usually it will be small amount of servers (until 20).
   Hybrid – a company has its own cloud, but if it is not enough, it takes services from an external venders.
   Community cloud -a community cloud may be established where several organizations have similar requirements and seek to share infrastructure so as to realize some of the benefits of cloud computing. With the costs spread over fewer users than a public cloud (but more than a single tenant) this option is more expensive but may offer a higher level of privacy, security and/or policy compliance. Examples of community cloud include Google's "Gov Cloud".


Why do so many companies want to move to cloud?

I see a few main reasons. Money is one of them.
    1. Why should you buy a program, which you are going to use only several times, if you can run it on-line on the cloud and pay only for the time you used it.
     2. The second reason is the company doesn’t want to give a program to its clients. It’s one thing if a program is deployed in your server, and you can dictate your conditions and it’s another thing when a program is deployed in the client’s server.

     3. Scalability.

     4. Access to Resources on-demand.
For example, company may provide their employees access to their working place via the cloud and thus save money on office lease.

What do we pay for?
It depends on the service provider. Let’s take Amazon as an example. 
On Amazon, we pay for memory storage (30 cents per 1G per month) and for a running server (2$ per hour).

Pay attention, that we also pay for memory storage on stopped (from our point of view) servers, which have our code.  Additionally we pay for memory storage occupied by snapshots.

In addition, we can buy deferent PaaS (Platform as a service) services, for example, a data base server which is fully controlled by Amazon.

How long does it take to run a server?
It takes less than 10 minutes.  I watched the server being run, it took less than a minute.

Cloud Service Types:
Software as Service  (SaaS):  applications delivered as a service to end-users over the Internet. Example: Google, Sales Force.

Platform as Service (PaaS): App development & deployment platform delivered as
a service. It is closer to the developer/user. Example: Google App Engine, force.com
Infrastructure as Service (IaaS): Server, storage and network hardware and
associated software delivered as a service. It is closer to the SysAdmin. Example: amazon, Google App Engine.

Notice a number of achievements.
  - Microsoft has already built a possibility of running and testing an application in Visual Studio without deploying, which significantly reduces the time of developing.

  - In case of a problem with an email server of a client, google can redirect all the requests to its email server until the client’s server is repaired.

  - HP has learned on hardware level to detect the problems with a server and send the alerts to the main controller which will switch the problem server to another one, isolating the bad servers.

Asure get started: www.microsoft.com/windowsazure/getstarted/
OWASP App Sec 2010 - Securely Architecting Your Application for the Cloud: www.slideshare.net/astamos/owasp-app-sec-2010-securely-architecting-your-application-for-the-cloud
Digital Ecosystems in the Clouds: Towards Community Cloud Computing: arxiv.org/PS_cache/arxiv/pdf/0903/0903.0694v2.pdf

Cloud on Amazon : aws.amazon.com/