In 1961 at the MIT Centennial, John McCarthy opined “if computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility…. the computer utility could become the basis of a new and important industry” [1]. In 2006, Amazon Web Services was launched providing computing on a utility basis. Since that time the notion of cloud computing has been emerging and evolving.
Cloud computing is a paradigm that makes the notion of utility computing a reality. Instead of Information Technology (IT) organizations investing in all of the hardware, software and infrastructure necessary to meet their business needs, cloud computing makes access to hardware, software and infrastructure available through the internet, generally utilizing a pay for use model. Basically cloud computing allows an organization to adopt a different economic model for meeting IT needs by reducing capital investments and increasing operational investments, a model which is likely to offer cost savings to many organizations.
There is still a great deal of hype around cloud computing, as many vendors have their marketing engines further into the clouds then their technology supports. Despite this Gartner predicts that by 2012 one in five businesses will not own its own IT assets. [2]. In late 2010 the Office of Management and Budget (OMB) under direction from the White House told federal agencies that starting in 2012 they are expected to consider cloud first “whenever a secure, reliable, cost-effective cloud option exists.” [3]
There are certainly many reasons why an organization would consider moving at least some of their IT functions into the cloud. In addition to potential cost savings the cloud offers the possibility of increased availability, easier collaboration, lower capital costs, scalability and virtualization. There are of course concerns as well. The technology is still relatively immature with no definitive set of standards for interface or compliance with regulations. Businesses lose hands on control of their IT resources with little recourse if their IT vendor shuts down or goes out of business. Additionally, there are security and data privacy concerns. There is also the fact that not all ventures into the cloud will be cost effective for the business.
This article introduces the concept of cloud computing and discusses the potential benefits for a business as well as those things which could be barriers to adoption. It examines the types of applications where cloud computing is an efficient cost effective solution and the types of applications where its use could be problematic or costly. Several examples of successful cloud implementations are presented and discussed.
Cloud Computing
“Cloud computing embraces cyber-infrastructure and builds upon decades of research in virtualization, distributed computing, grid computing, and more recently networking, web and software services.” [4] In other words, although the term cloud computing is relatively new, the concepts and technologies behind cloud computing have been emerging and evolving for some time. Consumers of cloud computing access hardware, software and networking capabilities from third party providers.
So what is “the cloud” anyway? The cloud refers to the resources and applications that are available on the Internet or other network via any device that connects to the internet or other network. The term cloud originates from the diagrams that are often used to portray the reaches and capabilities of the Internet. According to the National Institute of Standards and Technology (NIST), cloud computing delivers five key features; on-demand self-service, ubiquitous network access, location independent resource pooling, rapid elasticity and measured service [8].
Cloud computing providers offer Internet connected servers which house applications and can store data. They also provide needed capabilities such as virtualization, grid management, database, and communications infrastructure. Usage monitoring and billing mechanisms are also required. Through virtualization, multiple customers can access the same piece of physical hardware through separate server instances – allowing them to share hardware resources while isolating their operations and data from one another. The process for scaling and provisioning to meet changing customer demand is usually fully automated through software designed for that purpose. Application Program Interfaces (APIs) or web services provide control and access for the cloud.
There are four types of clouds discussed in the literature. Some consider only public clouds to be cloud computing but there are many instances where cloud computing technology is being applied to other types of clouds as well:
- Public cloud – Available to any user of the Internet willing to meet the terms and conditions of the cloud service providers. The public cloud is owned by the organizations selling cloud services
- Private cloud – Cloud computing infrastructure and technologies are maintained and operated for a specific organization, department or agency. The private cloud is owned by the organization, department or agency that utilizes it. It may be run by them or a 3rd party organization. A private cloud makes sense to bring some cloud computing benefits to an organization that for security or legal reasons cannot have their data in “the cloud”
- Community cloud – Cloud infrastructure that is established and maintained where several organizations, departments or agencies have similar concerns, security requirements, or compliance requirements.
- Hybrid cloud – There are multiple interpretations for what specifically constitutes a hybrid cloud but it clearly denotes the combined use of multiple types of clouds linked together through unique interfaces to allow organizations to optimize their use of the cloud without exposing themselves to potential risks of a public or community cloud.
In addition to there being various types of clouds, there are also several types of cloud computing offerings described in the literature:
- Software as a Service (SaaS) – Applications that are accessed via the cloud. End users access commercially available software applications remotely through the internet. Typical examples of SaaS include collaboration, project management, document management, social networking, customer relationship management (CRM) and Human Resource (HR) applications.
- Infrastructure as a Service (IaaS) – Computer Infrastructure is accessed via the cloud. Rather than purchasing, provisioning and maintaining servers, data center and network equipment, end users utilize computer infrastructure, generally through a platform virtualization environment, through the Internet. IaaS is usually purchased on a utility computing basis where the user only pays for the resources that they utilize such as processing by the hour or storage by the day. Typical examples of IaaS include backup and recovery, storage, content delivery networks, service management and computation.
- Platform as a Service (PaaS) – Development platform is accessed via the cloud. End user has access to the hardware, software and infrastructure necessary to develop or test applications. Typical examples of PaaS include database, development and testing, and business intelligence environments
Benefits
One could easily see the value cloud computing might bring to organizations – particularly small to medium enterprises (SMEs) that may not have the capital to invest in the IT infrastructure that might take their business to the next level. Some benefits will be also be attractive to larger organizations although there may be additional barriers to their adoption.
One oft cited benefit of cloud computing is the cost savings that can be offered to organizations that chose to take advantage of cloud services. Potential cost savings come from several sources. Certainly an organization can expect to save money on both hardware and software. As less hardware is being used, maintenance costs on existing hardware will reduce and less new hardware will be acquired. Software license and maintenance fees will be eliminated. These benefits are particularly important in organizations where needs for hardware and/or software peak and ebb over time. Instead of resourcing to peak needs, they have the opportunity of only paying for what they actually use. This will not only offer savings for hardware and software but also has the potential to reduce an organizations need for space, power consumption and IT staff. According to James Staten of Forrester, “Most enterprise data centers are using less than 50 percent of the total capacity of their resources.”[5]
Because cloud technology provides for automatic or near automatic scaling and provisioning, the cloud can add agility to an organization as their needs for IT change. Reliability and availability may be significantly improved because large, well established cloud providers have equipment and redundancy built into their offerings. Dynamic provisioning makes it possible for cloud providers to offer Infrastructure on Demand (IOD). Portability is increased because IT resources are no longer tied to a location, data and applications are available wherever the Internet is available.
Cloud providers and consumers benefit from the fact that software is located in one central location. Updates and repairs are accomplished easily and can be delivered to all clients as soon as they are available with no installation dramas on the end user’s side.
Finally, if all of the worlds computing can be done with fewer servers running at any given time, the world benefits through a reduced carbon footprint. A study recently conducted by Microsoft, Accenture and WSP Environment and Energy found that for large deployments (10,000 users) energy use and carbon emissions could be reduced by more than 30% while for small deployments (100 users) the improvement could be as much as 90%.[6]