Cloud computing: Myths and realities
By Tomi Davies
Cloud computing is currently making information and communications technology headlines, and vendors are aggressively promoting the many benefits it can provide organizations. These benefits appear so compelling that on the surface it seems all ICTs can and should be moved “into the cloud”.
On closer inspection, however, for every benefit cited, questions can also be raised. This article addresses the claims and questions that are often raised in relation to cloud computing and provides a clear view of what the cloud can—and can’t—deliver in today’s reality.
Claim 1: Cloud Computing technology is revolutionary!
Cloud computing itself is not a technology. It is the combination and integration of a number of technologies, none of which are new. Rather, cloud computing can be considered an evolutionary stage based on the maturity of a number of technologies. Key technologies that have facilitated cloud computing include:
Extremely powerful and low-cost compute power and memory
Virtualisation technology—processors, memory and networks
Software that manages large-scale virtualised systems
Stability and wide acceptance of the Internet, including mobile Internet usage
The progress of these technologies has coincided with a period where global economic conditions have forced organisations to streamline and maximise cost efficiencies; therefore, business needs have driven the evolution of ICT delivery into what is now called cloud computing rather than it being a new revolutionary technology.
Claim 2: All software applications delivered over the internet are cloud computing
Software applications have been delivered over the internet for years by vendors known as Application Service Providers (ASP) whose customers benefit from reduced on-premises IT infrastructure and administrative support with features:
Software runs on a fixed-capacity server that can experience overload during periods of high usage
Provisioning requires dialogue with sales representatives and a commissioning period before software is available
Payment model is typically an annual license based on a fixed number of users
Cloud computing delivers software across the internet. The term for this is Software as a Service (SaaS). But SaaS is very different from ASP and has a number of key characteristics that distinguish it from ASP implementations, including:
SaaS is instantaneously self-provisioned—no setup is required, the software is immediately available
SaaS is elastically scalable—capacity will automatically adjust in response to varying loads
SaaS is payment model proportional to usage, although some SaaS is free to use, e.g., Google Apps
Claim 3: Cloud computing removes the need for an internal IT department
To consider cost reduction by cloud computing in detail requires examination of which IT services can be delivered via the cloud. Earlier, we defined SaaS and in addition to SaaS, computing platforms can also be delivered from the cloud. Platforms incorporate the execution environment for applications as well as the tools used to develop the applications.
A typical platform may be comprised of an operating system, a database, server software and application software. The delivery model for this type of service is known as Platform as a Service (PaaS), and examples include Microsoft Azure and the Google App Engine.
The cloud can also deliver Infrastructure as a Service (IaaS). With IaaS, servers, networks and load balancers can be instantaneously self-provisioned from the cloud on a pay-per-use basis. An example of this kind of provider is Amazon. IaaS requires on-premises network and development machines, and the administrative tasks are similar to on-premises hosting.
The only difference is the physical hardware being administered is off premises. Whether or not an organisation can reduce its IT department depends on the level of services being used from the cloud. SaaS—requires on-premises networks and low-power, low-cost machines; PaaS—requires on-premises network and development machines, and fewer administrative server tasks.
In summary, the requirements placed on the IT department and any associated administrative support depends on the types of services being leveraged from the cloud. One thing that is clear, however, is that the IT department cannot be completely eliminated.
Claim 4: Applications can be moved to the cloud without change
A common misconception is that in-house applications can be moved without change to the cloud. This is potentially possible, but depends on the motivation for the migration. Objectives for transferring an on-premises hosted application to the cloud include:
lReducing application-hosting costs
lMaking use of the transparent scalability of the cloud
lLeveraging the scalable storage of the cloud
All of these can be achieved through appropriate deployment of IaaS or PaaS. Reducing application-hosting costs is achievable without application modification as long as a cloud vendor provides server images that can host the application. As an example, consider a Microsoft.
NET Web application using a SQL Server database. This could be moved to Amazon EC2, which provides self-provisioned servers that can execute such applications. In such a case, the application can be moved without modification.
This is similar to outsourcing application-hosting to a third-party provider but with the major advantage that the server(s) can be instantaneously provisioned and payment is by CPU hour compared to a provisioning time (typically one or two days) and an annual contract. A cloud environment can also be configured to make use of the elastic scalability of the cloud, with more servers being added and removed automatically to meet variations in application load and satisfying objective B.
Objective C requires modification to the application code base and possibly the underlying architecture. Major global vendors including Amazon, Google and Microsoft all provide scalable storage solutions that require using the vendor-specific APIs and only run on the vendor’s own cloud.
When exploiting PaaS, an application must be modified or specifically developed for that platform. Microsoft with Azure and Google with the App Engine, for example, have specific requirements detailing how applications must be packaged and what the code can do, so an existing code base may require modification to meet these requirements. For instance, moving a .NET Web application to Microsoft Azure requires the code to be packaged as Web roles, which will then execute in the Azure cloud.