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.
- 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
- On-Demand self-service via Automatic Provisioning of required services - No Manual Intervention
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 access
to a shared pool of confugurabke computing resources (e.g. networks, storage, applications and Services
that 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.
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.
- Infrastructure-as-a-Service - Iaas is used mostly by operations team (IT Infrastructure Personnel, System Managers/Administratrs) to create platforms for service and application test, development, integration and deployment. e.g. Virtual machines, operating systems, message queues, networks, storage, CPU, memory, backup services.
So when we say cloud, who are the actors involved?
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.
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.