- The NIST definition of cloud computing is concise and uses industry-standard terms.
- Exploring the five characteristics, three service models, and four deployment models for the cloud in the NIST definition clarifies cloud concepts.
- Examples of cloud-based technologies explained in this article promote a better understanding of the cloud.
- The more informed IT departments are about the cloud, the better their position when making decisions about deploying, developing, and maintaining systems in the cloud.
While many talk about the cloud, few actually understand it. Three organizations' definitions come to the forefront when defining the cloud: Gartner, Forrester, and the National Institutes of Standards and Technology (NIST). Although both Gartner1 and Forrester2 provide definitions of cloud computing, the NIST definition3 is concise and uses industry-standard terms.4
This article takes an in-depth look at the NIST definition of cloud computing. Each of the NIST definition's points is defined in greater detail, and examples of cloud-based technologies will help the reader gain a better understanding of the cloud.
NIST defines cloud computing as:
...a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.5
The remainder of this article discusses these five characteristics, three service models, and four deployment models.
Five Characteristics of the Cloud
When people think of the cloud, they often think of software as a service (SaaS). However, the service used to supply technology doesn't define the technology. The following five characteristics are how NIST describes cloud computing.
Characteristic: On-Demand Self-Service
When an institution develops or deploys a new application, they first must jump through a number of hoops. For example, if an institution decides they would like to install the learning management system Moodle, they might have to order a server, wait for the vendor to ship it, install the server in the data center, provision an IP address for the server, set up the DNS for the new IP address, install the operating system, etc.
While virtualization tools have improved this workflow dramatically, the process can still be cumbersome. With cloud-based services, many of these steps can be eliminated. Interaction with the service provider is minimized, and with a few clicks of a button, an application can be up and running in a matter of minutes.
In the example below, I use the cloud-based service Heroku to deploy a basic blog application. Prior to creating the video, I installed Ruby on Rails, Heroku's Ruby Gems, and Git on my computer and developed the application. Once these few simple set-up steps were accomplished, deploying the application into Heroku's cloud took a matter of minutes.
Characteristic: Resource Pooling
With current systems and data centers, IT departments often get stuck in a silo of their own creation. Institutions rarely share computing resources, and if they do, it is cumbersome to create and manage workflows that utilize these shared resources.
With the cloud, multi-tenancy rules. Users of the cloud can provision computing resources based on their needs, and then destroy those resources, giving them back to the shared pool once their needs are met. Additionally, users can share resources amongst themselves. For example, if an institution has developed a new piece of software and would like to share it with other institutions, they can create a template for that system in the cloud and allow other institutions to use that template as they see fit.
This example demonstrates Amazon's Elastic Compute Cloud, or EC2. This service allows IT departments to choose from a shared pool of Amazon Machine Images (AMIs) and start up a server with a few clicks. AMIs offer users of Amazon EC2 a quick and easy way to set up systems and servers, with little to no intervention from channels one might normally need to go through.
Characteristic: Rapid Elasticity
Systems change constantly. To create the best experience for users, IT departments often must scale or update systems to meet user demand. Scaling or upgrading a system currently in production can be cumbersome and resource intensive for an IT department.
The cloud provides ways of rapidly scaling to meet user demand. If a system requires more computing resources, an IT department can easily scale the technology to meet those demands. For IT departments that use the cloud, it seems as if they have an endless supply of computing resources available.
In the video below, I use Suchi Software's S3Fox Organizer, a Firefox add-on, to access Amazon Web Services' Simple Storage Solution (S3). S3 allows users to upload files to Amazon's servers and access those files through Amazon web addresses or API calls. S3 plug-ins are available for the blogging software WordPress and the web-based project management application Redmine. In addition to its use within applications, S3 is often used to back up files. A number of scripts,6 add-ons,7 and plug-ins8 help you back up your files on any type of server to Amazon S3.
Characteristic: Broad Network Access
Traditionally, software like Microsoft Word or PowerPoint has been offered as client-based software. Users have to install software to their computers and upgrade systems to handle the programs. If you're away from your computer, you may not have access to the software, which can cause frustration.
Today, much of the software we use is available over the Internet. Many people believe that having a resource available via the Internet is the defining characteristic of the cloud, but it is just one of the five characteristics.
In the example here I demonstrate Google Docs, a web-based document creator and editor. Google Docs is a slimmed down version of Microsoft Office, which also has a web-based version known as Microsoft Office Web Apps 2010. Both products allow you to access and edit files from any computer with an Internet connection, eliminating the need for access to a particular computer to edit documents.
Characteristic: Measured Service
To monitor network, server, and application usage, IT departments employ many different monitoring tools and reporting systems. The cloud, however, allows both cloud providers and IT departments to monitor usage. Cloud providers charge IT departments based on their use of computing resources. On the other hand, IT departments can use these metering (or measured) services to scale resources up and down based on information gathered from these particular tools.
The following demonstration discusses a bill from an Amazon Web Services' account. In addition to this bill, I will also briefly discuss Amazon Web Services' CloudWatch, a monitoring tool that not only allows you to monitor your system but also, in conjunction with other services, helps you scale your AWS-based system. Information on Amazon's pricing schema for different services, including CloudWatch, can be found on the Amazon Web Services' website.
Three Service Models for the Cloud
The three types of cloud-based services are software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Remember that although computing resources may be delivered through one of these three models, it doesn't mean "cloud" provision. Virtual private servers are also IaaS, but virtual private servers do not possess the five characteristics of the cloud.
Service Model: Cloud Software as a Service
SaaS is common in the IT community. Usually software companies that provide such SaaS host their software themselves, and then upgrade and maintain it for their customers. Cloud SaaS combines this hosting practice with the five characteristics of the cloud described above. Software supplied via the cloud is often easy to use and requires little intervention from the user to get the service up and running.
Service Model: Cloud Platform as a Service
"In computing, a platform describes some sort of hardware architecture and software framework (including application frameworks) that allows software to run."9 A common platform in computing is the LAMP stack, or the Linux, Apache, MySQL, and PHP stack.
Cloud PaaS supplies these familiar platform stacks to users, without the need for them to maintain the underlying hardware or upgrade the supporting software. This next example discusses Heroku, a Ruby on Rails cloud platform. Other cloud platform providers include Google App Engine, which supports Java and Python, and Engine Yard, which supports Ruby on Rails.
Service Model: Cloud Infrastructure as a Service
When people think about infrastructure, if they consider it at all, they think of servers, wires, cooling systems, and all the other things necessary to run today's data centers. But when infrastructure is purchased through the cloud, none of these components are necessary; instead, users of cloud-based infrastructure only need to concern themselves with developing platforms and software.
In the following video, I discuss Rackspace, a provider of cloud-based infrastructure as a service. Competitors to Rackspace include Amazon Web Services and GoGrid.
Four Deployment Models for the Cloud
Just as there are multiple ways to deploy a system within your data center, there are multiple ways to deploy a system in the cloud. The four deployment models described in the NIST definition of cloud computing are public cloud, community cloud, private cloud, and hybrid cloud. While each of these models and the examples used have associated problems and issues (security, feasibility, etc.), this article does not cover them.
Deployment Model: Public Cloud
A public cloud is a cloud made available to the general public for use and is the most common type of cloud. Users of a public cloud sign up with the cloud provider and make payments based on the provider's pricing schema. Examples include Amazon Web Services, Google applications, or similar cloud-based services.
Deployment Model: Community Cloud
A community cloud is a cloud made available to a certain group or association. For example, a consortium of schools might decide to create a community cloud. Payments for use of the cloud might be made via dues to the consortium or through some other equitable pricing schema.
Deployment Model: Private Cloud
A private cloud is a cloud made available at only one particular institution. If an institution chooses to create its own private cloud, they might create a charge-back pricing schema for the different departments that use the institution's cloud. This would allow the different departments to gain access to the IT resources they need, while at the same time allowing an IT department to create a sustainable support model.
Deployment Model: Hybrid Cloud
A hybrid cloud combines two or more of the other cloud deployment models. Perhaps part of the system lives inside a community cloud, while the remainder lives in a private cloud. Another way of doing this is through cloud bursting, which occurs when your system or service is too large to be maintained in just your private cloud, so you allow the system to spill over into, say, a public cloud. Eucalyptus software, for example, allows IT departments to deliver their own private cloud and burst into Amazon's cloud if they need to scale beyond what their private cloud offers them.
Cloud computing is complex (see Further Resources). While many people have concerns about its current uses, there is no doubt that it is changing the way we provide systems and services. The more informed IT departments are about the cloud, the better the position they will be in when making decisions about deploying, developing, and maintaining systems in the cloud.
- Daryl C. Plummer, Thomas J. Bittman, Tom Austin, David W. Cearley, and David Mitchell Smith, "Cloud Computing: Defining and Describing an Emerging Phenomenon," Gartner, June 17, 2008.
- Frank E. Gillett with Eric G. Brown, James Staten, and Christina Lee, "Future View: The New Tech Ecosystems Of Cloud, Cloud Services, and Cloud Computing: Understanding, Segmenting, and Competing in the Next Computer Revolution," Forrester Research, August 28, 2008.
- "Cloud Computing," National Institute of Standards, Computer Security Division, Computer Security Resource Center, May 11, 2009.
- Dmitry Sotnikov, "Cloud Definitions: NIST, Gartner, Forrester," CloudEnterprise.info, August 4, 2009.
- Peter Mell and Tim Grance, "The NIST Definition of Cloud Computing," ver. 15, National Institute of Standards and Technology, Information Technology Laboratory, October 7, 2009.
- Eric Nagel, "FTP or Amazon S3 Server Backup PHP Script," blog entry May 8, 2009.
- S3, Google Chrome Extensions, January 22, 2010.
- Adam Greene, "S3_Rake_Tasks," GitHub, May 5, 2008.
- This definition of computing platform comes from Wikipedia.
© 2010 Rosalyn Metz. The text of this article is licensed under the The text of this article is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 license..