You are on page 1of 30

Cloud Computing

R.K.Das

Cloud Definitions
Gartner a style of computing in which massively scalable IT-related capabilities are provided as a service using Internet technologies to multiple external customers (Gartner 2008b) IDC an emerging IT development, deployment and delivery model, enabling realtime delivery of products, services and solutions over the Internet (i.e., enabling cloud services) (Gens 2008) The 451 Group a service model that combines a general organizing principle for IT delivery, infrastructure components, an architectural approach and an economic model basically, a confluence of grid computing, virtualization, utility computing, hosting and software as a service (SaaS) (Fellows 2008)

Merrill Lynch the idea of delivering personal (e.g., email, word processing, presentations.) and business productivity applications (e.g., sales force automation, customer service, accounting) from centralized servers (Merrill Lynch 2008)

Based on the findings of the definition analysis, a summary of the defining features of Cloud Computing is provided below
Cloud Computing is a new computing paradigm. Infrastructure resources (hardware, storage and system software) and applications are provided in a X-as-a-Service manner. When these services are offered by an independent provider or to external customers, Cloud Computing is based on pay-per-use business models. Main features of Clouds are virtualization and dynamic scalability on demand. Utility computing and SaaS are provided in an integrated manner, even though utility computing might be consumed separately. Cloud services are consumed either via Web browser or via a defined API.

Web Services
Web Service accepts a request and returns a response They are units of code that can be invoked over the web. Typically, Web Services accept one or more input parameters and invoke processing logic which will result in an output. Web Services are a part of web applications that run on a typical stack that has hardware, a Server OS, application development platform. For a while, think how you can expose every layer that is powering your web application as a Web Service.

As the delivery of IT resources or capabilities as a service is an important characteristic of Cloud Computing, the three architectural layers of Cloud Computing are 1. Infrastructure as a Service (IaaS) 2. Platform as a Service (PaaS) 3. Software as a Service (SaaS)

Infrastructure as a Service
When you are able to delegate a program to execute on a remote OS running on the Web, you are leveraging Infrastructure as a Service (IaaS). This is different from classic web hosting. Web hosting only hosts web pages and cannot execute code that needs low level access to the OS API. Web hosting cannot dynamically scale on demand. IaaS enables you to run your computing task on virtually unlimited number of machines. Remember that through IaaS, you have just moved a server running in your backyard into the Cloud. Amazon EC2 is an example of commercial IaaS offering.

Platform as a Service
Through this, developers can leverage a scalable platform to run their applications. The advantage of PaaS is that the developers need not worry about installing, maintaining, securing and patching the server. The PaaS provider takes the responsibility of the infrastructure and exposes the platform alone as a service. Through this, the developers can achieve higher level of scalability, reliability and availability of their applications. Microsoft Azure and Google App Engine are examples of PaaS.

Software as a Service
It is a silent revolution in the world of traditional software products. With the availability of Intel Atom based Netbooks and abundant bandwidth, most of the applications are moving to the Cloud to be offered as services. Consumers can now use inexpensive devices that are capable of connecting to the web to get their work done. This reduces the upfront investment in software and brings the Pay-as-you-go model. Google Apps, Salesforce.com and Microsoft Online Services are examples of SaaS.

What does Cloud Computing mean to you?

IT Professionals and System Administrators


For IT Professionals, Cloud Computing is all about consolidation and outsourcing the infrastructure. They are typically focused on the Infrastructure as a Service. IT Pros will move away from managing individual servers in their Data Centers to using a unified console to manage, track and monitor the health of the remote server instances running on the Cloud.

Developers and Architects


Platform as a Service is an offering meant for developers and architects. They need to design applications keeping the statelessness of the Cloud. Architects should start thinking about the patterns that will make the applications seamlessly scale on-the-fly across hundreds of servers.

Consumers
Consumers will experience the Cloud through a variety of applications that they will use in their day to day life. If you have ever used Google Docs or Microsoft Live Mesh, you have already leveraging the Cloud. Consumers will subscribe to Software as a Service offerings.

Elasticity
You might start running your application on just a single server. But in no time, Cloud Computing enables you to scale your application to run on 100s of servers. Once the traffic and usage of your application decreases, you can scale down to 10s of servers. All this happens almost instantly and the best thing is your application and your customers dont even realize that. This dynamic capability to scale up and scale down is called Elasticity. Elasticity brings an illusion of Infinity.

Pay-By-Use
As an entrepreneur, you got to balance your investment between human resources and IT resources. The biggest benefit of Pay-By-Use is that it reduces the CAPEX and turns your IT investment into OPEX. With Pay-By-Use, you can subscribe and unsubscribe to the IT infrastructure based on your needs and you only pay for what you use. This is the most optimal way of spending your IT budget.

Self Service
When you are able to enjoy the capability of scaling up and scaling down and only pay for what you use, you never want to wait for someone in the datacenter to add an additional server to your application. Cloud can deliver its promise only when there is Self Service. Through this, you can control the resources all by yourself without an intermediary. When you add a new CPU core, a server instance or add extra storage, you do it by yourself by using the Console offered by the Cloud provider.

Server Configuration @ ElasticHosts. com

Programmability
Developers are familiar with the concepts of multithreading where they spawn new threads to achieve scalability and the responsiveness of the application. They incorporate logic to create additional threads on demand. The programmability aspect of the Cloud adds a new dimension to the development. Developers can now create additional machines and add it to the applications on demand. They can treat the entire data center, servers and machines as an object model that be programmed. They can now do a For-Each loop on every server instance and decide what do with each instance.

The Four Implementations of the Cloud

Public Cloud
This is the most popular incarnation of the Cloud. Many businesses and individuals realize Cloud through the Public Cloud implementation. It needs a huge investment and only well established companies with deep pockets like Microsoft, Amazon and Google can afford to set them up. Public Cloud is implemented on thousands of servers running across hundreds of data centers deployed across tens of locations around the world. The best thing about Public Cloud is that the customers can choose a location for his application to be deployed. This will reduce the latency when the consumers access the application.

Private Cloud
Private Clouds are normal data centers within an enterprise with all the 4 attributes of the Cloud Elasticity, Self Service, Pay-By-Use and Programmability. By setting up a Private Cloud, enterprises can consolidate their IT infrastructure. They will need fewer IT staff to manage the data center. They will also realize reduced power bills because of the low electricity consumption and lesser cooling equipment needs. Private Cloud empowers employees within an organization through Self Service of their IT needs. It becomes easy to provision new machines and quickly assign them to project teams. Private Cloud borrows some of the best practices of Public Cloud but limited to an organizational boundary. Private Cloud can be setup using a variety of offerings from vmWare, Microsoft, IBM, SUN and others.

Hybrid Cloud
There are scenarios where you need a combination of Private Cloud and Public Cloud. Due to the regulations and compliance issues in few countries, sensitive data like citizen information, patient medical history, and financial transactions cannot be stored in servers that physically not located within the political boundaries of a country. In some scenarios, the enterprise customers want to get best of the both worlds by logically connecting their Private Cloud and the Public Cloud. Through this, they can offer seamless scalability by moving some of the on-premise and Private Cloud based applications to the Public Cloud. Security plays a critical role in connecting the Private Cloud to the Public Cloud. Realizing its importance, Amazon Web Services has recently announced Virtual Private Cloud (VPC) that securely bridges Private Cloud and Amazon Web Services. It is almost like extending your infrastructure beyond the organizational boundary and the firewall in a secure way.

Community Cloud
Community Cloud is implemented when a set of businesses have a similar requirement and share the same context. This would be made available to a set of select organizations. For example, the Federal government in India may decide to setup a government specific Community Cloud that can leveraged by all the states. Through this, individual local bodies like state governments will be freed from investing, maintaining and managing their local data centers. Similarly, the Reserve Bank of India (RBI) may setup a Community Cloud for all the financial institutions that share common goals and requirements. So, a Community Cloud is a sort of Private Cloud but goes beyond just one organization.

You might also like