Cloud Computing, by Rounak Agarwal and Pankaj Goyal
Posted on July 16, 2012
“Cloud computing refers to the delivery of computing and storage capacity as a service to a heterogeneous community of end-recipients. The name comes from the use of a cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system diagrams.” – Wikipedia
The first known academic use of the term ‘cloud computing’ is attributed to Prof. Ramnath Chellappa. He suggested that this would be a new “computing paradigm where the boundaries of computing will be determined by economic rationale rather than technical limits alone.” But the idea that computing could be sold as a utility (like water or electricity) was suggested way back in 1961 by John McCarthy, who coined the term “artificial intelligence”.
The three main Cloud Computing services are
- Software as a Service (SaaS)
- Platform as a Service (PaaS) and
- Infrastructure as a Service (IaaS)
The three are sometimes collectively referred to as SPI.
Software as a Service is a software distribution model in which applications are hosted by a vendor or service provider and made available to customers over a network, typically the Internet. It is offered as a service on demand, or through a subscription or sometimes at no charge when there is an opportunity to generate revenue through advertisements. The cloud users do not manage the infrastructure and platform on which the application is running. The end-users need not worry about upgrading, patching and the like. All of this is taken care of by the vendor. Examples of SaaS are Google Apps, Salesforce.com etc.
In case of Platform as a Service instead of a finished software product, a platform for developing a software product is delivered through the cloud. PaaS allows the creation of web applications quickly and easily and without the complexity of buying and maintaining the software and infrastructure underneath it. It can also support development team collaboration. The computing and storage capacity scale up or down automatically following changes in demand, without intervention from application developers. Examples are Google App Engine and Microsoft Azure.
This is the most basic cloud service model. The responsibility of maintaining equipment (servers, storage media, etc.) is outsourced to vendors. Consumers install operating system(s) and application programs required by them. The consumers are responsible for patching and maintaining the OS and application programs. But the hardware is maintained by the service providers. This is a very useful service for startups that lack funds to purchase new hardware. Two of the largest players in this field are Amazon Web Services and Rackspace.
The following image very effectively summarizes the above three services:
Nowadays more cloud related services like MaaS, CaaS, XaaS are becoming popular. MaaS is Monitoring as a Service. Businesses can outsource the job of monitoring their infrastructure and key application programs to vendors. Communication as a Service (CaaS), enables the consumer to utilize Enterprise level VoIP, VPNs, PBX and Unified Communications without the costly investment of purchasing, hosting and managing the infrastructure. XaaS is ‘anything as a service’. It is basically a combination of one or more of the service described earlier.
Comparison of SaaS, PaaS, IaaS:
In terms of flexibility, SaaS is the least flexible. The end users have no control on the capabilities and features of the application. IaaS is the most flexible, with users having complete control of the software environment. Flexibility of PaaS lies somewhere in between that of SaaS and IaaS.
In terms of maintenance cost, SaaS is the cheapest because it requires no maintenance effort from the end users. PaaS requires some maintenance effort like upgrading, patching the software. IaaS requires maximum maintenance effort as both the operating system and all application programs are maintained by the consumer.
Portability is relatively easy in case of IaaS. If the hardware is provided in the form of virtual machines following some open standard like OVF (Open Virtualization Format), then the consumer can move from one vendor to another. In case of PaaS portability is possible between vendors which provide mutually compatible development environments. SaaS users find it very difficult to change vendors because it involves moving a lot of data which can be in a format not supported by other vendors.
Virtualization technology allows servers and storage devices to be shared and utilization to be increased.
Device And Location Independence:
Enables users to access systems via the Internet regardless of their location or what devices they are using.
Enables sharing of resources and costs across a large pool of users thus allowing for centralization of infrastructure in locations with lower costs, increment in peak-load capacity, more utilisation and efficiency.
Maintenance of cloud computing applications is easier, because they do not need to be installed on each user’s computer and can be accessed from different places.
Issues involved in the use of Cloud Computing:
This is the primary concern of the consumer. They wouldn’t want vendors to look into their data. The vendor may lawfully or unlawfully access and/or modify their data.
Consumers entrust the security of their data to the vendors. They depend on the vendors to take adequate measures to keep their data safe from unauthorized access. Its in the interest of the vendors to put strong security measures in place lest they lose customers and tarnish their reputation.
This is a concern for vendors. Some consumers use cloud services for nefarious purposes like launching attacks on other websites. The vendors have to figure out a way to stop such abuse of their services.