This women's day i.e. 8th of March 2012, I had the opportunity of attending "Enterprise Cloud Conference" by Jason Bloomberg. Jason Bloomberg is a SOA and Cloud thought leader and the president of Zap Think. The conference was aimed at cutting the crap around cloud computing. Cloud has become a much used jargon without many people understanding what it actually means. So as a representative of you all, I would like to share a few takeaways from the conference.The conference was aimed at providing a bird's eye view of cloud computing terminology, what it is and what it is not. I would follow the same pattern used during the training to report my learning. The theory was complemented by a few practical case studies of companies who have used the Cloud to run successful businesses.

The conference was held in 4 cities, Bangalore being one of them and saw several companies participating. There were delegates from IBM, HP, Cisco, Akamail, 3i Infotech, Mphasis, Mindtree, Samsung and Fidelity to name a few.

Module 1 : Cloud Introduction and Definitions

So what is this whole Cloud thing? What are cloud characterisitics?

Cloud Computing is first of all not a computing model. It is essentially a delivery model. It has been existing for decades now, so to say this whole cloud computing thing is Old Wine in New Bottles. What essentially this means is that Cloud Computing is another term for services delivered over the Internet or the World Wide Web. This has been long existent in SaaS applications (Software as a Service). The email and web apps which you have been using for quite some time now are variants of this. Where Cloud goes ahead is delivering an OS or even an entire hardware configuration as a service. This means that small startups can enjoy the advantage of huge computing powers and custom platforms without actually having to buy hardware and set up their own datacentre.

Summing this up, the key characteristics are:

A pay-as-you-go financial model

Rapid Elasticity to scale up to your needs

Multiple users (tenants) can take advantage of the same physical resource

For the more technical definition-savvy, here is the Cloud Computing definition from NIST (National Institute of Science and Technology)"Cloud Computing is a model for enabling convenient, on-demand network accessto a shared pool of confugurabke computing resources (e.g. networks, storage, applications and Servicesthat can be rapidly provisioned and released with minimal management effort or service provider interaction"

What are the Deployment Models for the Cloud?

Deployment model refers to how you want to use the cloud to your organization's advantage more so where does the data resides and who operates the Cloud.

The various Cloud Deployment Models are

Private Cloud - A private cloud is owned and operated solely for an organization.

Public Cloud - This is the other extreme where cloud services are made available to the general public by a large industry group and is owned by an organization selling the cloud services. e.g. Amazon provides its EC2(Elastic Compute Cloud) instances to other organizations or individuals on a pay-as-u-go financial model.

Community Cloud - Shared by several organizations and supports a specific community that has shared concerned. e.g. several educational institues may own a community cloud to share/host resources and knowldege for a particular domain.

Hybrid Cloud - This is a composition of two or more clouds (private,community or public) that remain unique entities but are bound by technologies which enable data and application portability between them. e.g. IBM's Cast Iron help you to integrate your on-premise data (within the enterprise) to data on the cloud.

What are the various XXX-as-a-Service which I keep on hearing? What are the cloud service models?

In Cloud Computing anything which can be delivered to end-users on the Internet becomes a Service Model. The most commonly referred to Service models are SaaS, PaaS, IaaS

Software-as-a-Service - The primary users are Business End users who do not deal with any code or confuguration complexity. Use these to complete end-user tasks. e.g. Email, Office Automation, CRM, Website Testing, Wiki, Blog and Virtual Desktop.

Platform-as-a-Service - Developers and Deployers use PaaS to create and deploy applications and services for users. e.g. Middleware execution stack, service and application test, development, integration and deployment.

A Cloud like any other service has a provider and a consumer. These are the primary actors.

A Cloud Consumer is a person or organization which uses services from a Cloud Provider whereas a Cloud Provider is a person, organization or entity responsible for making a service available to the interested parties.Besides these there may be Cloud Auditor which maintains the regulatory compliance to government guidelines; a Cloud Broker which helps a consumer to select and route to an appropriate provider much like an ESB(Enterprise Service Bus).

The backbone of all these is a Cloud Carrier which refers to the ISPs which provide Internet connectivity. No matter how fast your Cloud might be, if your network is slow, everything is slow in effect.

Is it true that Cloud is an extension of SOA?

Actually No. SOA and Cloud are two different things. Although both are related to services. But SOA is an architectural approach which guides how you should design your enterprise applications as a set of loosely-coupled reusable services; whereas Cloud is a deployment and operational model. Cloud can be host services which have been developed as per SOA philosophy.

Does Cloud provide me infinite resources?Because of the vast computing and physical resources on the side of the cloud provider, the cloud gives an "illusion of infinite capacity". So as a matter of fact Cloud does not literally provide infinite resources. The Cloud characterisitic which gives this illusion is elasticity.