For the past few years, the buzz around cloud
computing has been growing. While many are talking about the cloud, few
understand what the cloud is. Three organizationsÕ definitions come to the
forefront when defining the cloud: Gartner, Forrester, and the National
Institutes of Standards and Technology (NIST). While both Gartner(Plummer,
2008) and Forrester(Gillett, ) provide definitions of cloud computing, the NIST
definition(National Institute of Standards and Technology's Computer Security
Division - Computer Security Resource Center, ) is concise and uses industry
standard terms(Sotnikov, 2009).
The following article takes an in-depth look at the
NISTÕs definition of cloud computing. Each of the definition's points will be
defined in greater detail and examples of cloud-based technologies will be
utilized to help the reader gain a better understanding of the cloud.
The National Institutes of Standards and Technology
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.(Mell & Grance, 2009)
The remainder of this article will discuss these
five characteristics, three service models, and four deployment models.
When people think of the cloud, if they consider it
at all, they often think of software as a service. However, it is important to
remember that the service used to supply technology doesn't define it. The
following five characteristics are how the National Institute of Standards and
Technology describe cloud computing.
When an institution develops or deploys a new
application, there are usually a number of hoops that they must jump
through. 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,
setup 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 vendor is minimized greatly; and with a few clicks
of a button, an application can be up and running in a matter of minutes.
In the example below, we use the cloud-based
service Heroku(0RW1S34RfeSDcfkexd09rT2Heroku ) to
deploy a basic blog application. Prior to the video, Ruby on Rails(Ruby on rails ), HerokuÕs Ruby
Gems(0RW1S34RfeSDcfkexd09rT2RubyGems.org ), and Git(Git - fast version control system ) were installed on the userÕs
computer, and the application was developed. Once these few simple set up steps were accomplished,
deploying the application into Heroku's cloud took a matter of minutes.
With current systems and data centers, IT
departments are often stuck in a silo of their own creation. Sharing of compute
resources is rarely done amongst institutions, and if it is, it is cumbersome
to create and manage workflows that utilize these shared resources.
With the cloud, multi-tenancy is king. Users of the
cloud can provision compute resources based on their needs, and then destroy
those resources, giving them back to the shared pool once their needs are met.
Additionally, users are able to 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.
Below is a demonstration of Amazon's Elastic
Compute Cloud, or EC2(Amazon elastic compute cloud (amazon EC2) ). This service allows IT
Departments to choose from a shared pool of Amazon Machine Images
(AMI)(Wikipedia contributors, ) and start up a server
with a few simple 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.
Systems are constantly changing. In order to create
the best experience for users, IT departments are often required to 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 compute resources, an IT Department can
easily scale the technology to meet those demands. For IT Departments that use
the cloud, it seems as if there is an endless supply of computing resources
available to them.
In the video below, we use the Firefox Add-On S3Fox
Organizer(S3Fox
organizer(S3Fox) ) to access Amazon Web Services' Simple Storage Solution
(S3)(Amazon simple storage service
(amazon S3) ). S3 allows users to upload files to Amazon's servers and
easily access those files through Amazon web addresses or API calls.
Amazon S3 has become a popular way of providing
storage for systems that require large amounts of storage. Currently there are S3 plugins
available for the popular blogging software Wordpress (WordPress Ý amazon S3 for WordPress Ç WordPress plugins
), and the web based project
management application Redmine (Redmine -
plugin list - redmine ). In
addition to its use within applications, S3 is often used to back up
files. There are a number of scripts(Nagel, 2009), addons(Andrews, 2010), and
plugins(Greene, 2008) available to help you back up your files on any type of
server to Amazon S3.
Traditionally software like Microsoft Word,
PowerPoint, etc. has been offered as client based software. Users are required
to install software to their computers and upgrade systems. If youÕre away from your computer, you
may not have access to the software, which can cause frustration for many
users.
Today so 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, however it is just one of the five characteristics.
In the example below we demonstrate Google Docs(Google documents.),
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(Microsoft office web apps 2010 beta.). Both products allow you to access and
edit files from any computer with an internet
connection, removing the need to have access to a particular computer in order
to edit documents.
In order 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 compute resources. On
the other hand, IT Departments are able to use these metering (or measured)
services to scale resources up and down based on information that is gathered
from these particular tools.
Below is a demonstration and discussion of a bill
from an Amazon Web Services' account.
In addition to this bill, we will also briefly discuss Amazon Web
Services' CloudWatch(Amazon CloudWatch ), a monitoring tool that not only allows you to
monitor your system, but in conjunction with other services, helps you scale
your AWS based system as well. Information on Amazon's pricing schema for
different services including CloudWatch, can be found on the Amazon Web
Services' website(Amazon
web services ).
The three types of cloud-based services are
software as a service (SaaS), platform as a service (PaaS), and infrastructure
as a service (IaaS). The three different service models and examples of those
services are explained below.
It is important to remember that although computing
resources may be delivered through one of these three models, it doesn't mean
that it is the cloud. Virtual private servers are also infrastructure as a
service, but virtual private servers do not posses the five characteristics of
the cloud.
Software as a Service is common in the IT
community. Usually software
companies that provide software as a service host their software within their
own data and then upgrade and maintain it for their customers. Cloud software as a service combines
this hosting practice with the five characteristics of the cloud we described
above. Software that is supplied
via the cloud is often easy to use and requires very little intervention from
the user in order to get the service up and running.
In the example we once again discuss Google
Docs. Similar cloud based software
as a service applications include Microsoft Web Apps 2010(Microsoft office web apps 2010 beta.) and Zoho(Zoho.).
ÒA platform describes some sort of hardware
architecture and software framework (including application frameworks), that
allows software to run.Ó(Wikipedia contributors, ). A common platform in computing is the
LAMP stack, or the Linux(The linux home page at linux online ), Apache(Welcome! - the apache software foundation ), MySQL(MySQL :: The world's most popular open
source database ), and PHP(PHP:
Hypertext preprocessor ) stack.
Cloud platform as a service supplies these familiar
platform stacks to users, without the need for them to maintain the underlying
hardware or upgrade the supporting software. In the example below, we discuss Heroku, a ruby on rails
cloud platform. In addition to
Heroku, there are a number of other cloud platform providers including Google
App Engine(Google
app engine - google code ), which supports Java(Java.) and Python(Python
programming language -- official website ), and Engine Yard(0RW1S34RfeSDcfkexd09rT2Rails
in the cloud ), which supports Ruby on Rails(Ruby on rails ).
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, we discuss Rackspace, a
provider of cloud based infrastructure as a
service. Competitors to Rackspace
include Amazon Web Services(Amazon web services ) and GoGrid(Cloud hosting, cloud computing, hybrid infrastructure from GoGrid ).
Just like 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Õs definition of cloud computing are Public Cloud,
Community Cloud, Private Cloud and Hybrid Cloud.
While there are many problems and issues associated
with each of these models and the examples used (ie. security, feasibility,
etc.) this article does not focus on those issues. Instead, the resources section below provides a number of
different reading materials that further discuss these issues and more.
A public cloud is a cloud that is made available to
the general public for use. Users
of a public cloud would sign up with the cloud provider and make payments based
on the providers pricing schemas.
Public clouds are the most common types of clouds. When users use Amazon Web Services,
Google applications or similar cloud based services, they are utilizing the
public cloud.
A community cloud is a cloud that is made available
to a certain group or association.
For example a consortium of schools might decide to get together 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.
A private cloud is a cloud that is 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 utilize
the institutionÕs cloud. This
would allow the different departments to gain access to the IT resources they
may so desperately need, while at the same time allowing an IT department to
create a sustainable support model.
A hybrid cloud is a cloud that utilizes two or more
of the other cloud deployment models.
There are of course a number of ways to do this. Perhaps a portion of the system lives
inside a community cloud, while the remainder lives in your private cloud. Another way of doing this is through
cloud bursting. Cloud bursting
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(0RW1S34RfeSDcfkexd09rT2Eucalyptus
), a software that allows IT departments to deliver their own private cloud,
allows users to burst into AmazonÕs cloud if they need to scale beyond what
their own private cloud offers them.
Cloud computing is complex. 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 it comes time to make decisions about deploying, developing, and
maintaining systems in the cloud.
Alvarez, V. (2010). SiliconANGLE — blog. Retrieved 5/12/2010,
2010, from http://siliconangle.com/blog/author/vanessaalvarez/
Amazon CloudWatch Retrieved 4/29/2010, 2010, from
http://aws.amazon.com/cloudwatch/
Amazon elastic compute cloud (amazon EC2) Retrieved
4/29/2010, 2010, from http://aws.amazon.com/ec2/
Amazon simple storage service (amazon S3) Retrieved
4/29/2010, 2010, from http://aws.amazon.com/s3/
Amazon web services Retrieved 4/29/2010, 2010, from
http://aws.amazon.com/
Amazon web services blog. (2010). Retrieved
5/12/2010, 2010, from http://aws.typepad.com/
Andrews, J. (2010). S3 - google chrome extension
gallery. Retrieved 5/11/2010, 2010, from
https://chrome.google.com/extensions/detail/appeggcmoaojledegaonmdaakfhjhchf
Box.net | simple online collaboration: Online file
storage, FTP replacement, team workspaces ~ free version Retrieved 5/9/2010,
2010, from http://www.box.net/
Cloud hosting, cloud computing, hybrid
infrastructure from GoGrid Retrieved 5/9/2010, 2010, from
http://www.gogrid.com/
Cohen, R. (2010). ElasticVapor ::
Life in the cloud. Retrieved 5/12/2010, 2010, from http://www.elasticvapor.com/
Debian -- the universal operating system Retrieved
4/29/2010, 2010, from http://www.debian.org/
Dedicated server, managed hosting, web hosting by
rackspace hosting Retrieved 4/29/2010, 2010, from
http://www.rackspace.com/index.php
Dropbox - home - online backup, file sync and
sharing made easy. Retrieved 5/9/2010, 2010, from https://www.dropbox.com/
Eucalyptus | your environment. our industry leading
cloud computing software. Retrieved 4/29/2010, 2010, from
http://www.eucalyptus.com/
George reese Retrieved 5/10/2010, 2010, from
http://www.oreillynet.com/pub/au/429?#Blog
Gillett, F. Future view: The new tech ecosystems of
cloud, cloud services, and cloud computing - forrester research. Retrieved
4/29/2010, 2010, from http://www.forrester.com/rb/Research/future_view_new_tech_ecosystems_of_cloud,/q/id/45073/t/2
Git - fast version control system Retrieved
4/29/2010, 2010, from http://git-scm.com/
Google app engine - google code Retrieved
5/11/2010, 2010, from http://code.google.com/appengine/
Google app engine blog. (2010). Retrieved 5/12/2010, 2010, from
http://googleappengine.blogspot.com/
Google documents. Retrieved 4/29/2010, 2010, from
http://docs.google.com
Greene, A. (2008). Adam greene's
S3 rake tasks - GitHub. Retrieved 5/11/2010, 2010, from http://github.com/skippy/s3_rake_tasks
Heroku | ruby cloud platform as a service Retrieved
4/29/2010, 2010, from http://heroku.com/
Hoff, C. (2010). Rational
survivability - THE cloud & virtualization security blog. Retrieved
5/12/2010, 2010, from http://www.rationalsurvivability.com/blog/
Jackson, K. L. (2010). Cloud musings. Retrieved
5/12/2010, 2010, from http://kevinljackson.blogspot.com/
Java. Retrieved 4/29/2010, 2010, from
http://www.java.com/en/
JavaScript tutorial Retrieved 4/29/2010, 2010, from
http://www.w3schools.com/js/default.asp
The linux home page at linux online Retrieved
4/29/2010, 2010, from http://www.linux.org/
Mell, P., & Grance, T. (2009). The NIST
definition of cloud computing
Microsoft office web apps 2010
beta. Retrieved 4/29/2010,
2010, from http://www.microsoft.com/office/2010/en/office-web-apps/default.aspx
MySQL :: The world's most popular open source database
Retrieved 4/29/2010, 2010, from http://www.mysql.com/
Nagel, E. (2009). FTP or amazon S3 server backup
PHP script. Retrieved 5/11/2010, 2010, from
http://www.ericnagel.com/2009/05/ftp-or-amazon-s3-server-backup-php-script.html
National Institute of Standards
and Technology's Computer Security Division - Computer Security Resource
Center. Cloud computing.
Retrieved 4/29/2010, 2010, from http://csrc.nist.gov/groups/SNS/cloud-computing/index.html
PHP: Hypertext preprocessor Retrieved 4/29/2010,
2010, from http://www.php.net/
Plug into the cloud. (2010). Retrieved 5/12/2010,
2010, from http://www.informationweek.com/cloud-computing/
Plummer, D. (2008). Cloud computing: Defining and describing an
emerging phenomenon. Retrieved 4/29/2010, 2010, from
http://www.gartner.com/DisplayDocument?id=697413
PostgreSQL: The world's most advanced open source
database Retrieved 4/29/2010, 2010, from http://www.postgresql.org/
Python programming language -- official website
Retrieved 5/11/2010, 2010, from http://www.python.org/
Rails in the cloud | ruby support | engine yard
Retrieved 5/11/2010, 2010, from http://www.engineyard.com/
Redmine - plugin list - redmine Retrieved
5/11/2010, 2010, from http://www.redmine.org/wiki/1/Plugin_List#S3-plugin
Ruby on rails Retrieved 4/29/2010, 2010, from
http://rubyonrails.org/
RubyGems.org | your community gem host Retrieved
4/29/2010, 2010, from http://rubygems.org/
S3Fox organizer(S3Fox)
Retrieved 4/29/2010, 2010, from http://www.s3fox.net/
Sotnikov, D. (2009). Cloud definitions: NIST,
gartner, forrester. Retrieved 4/29, 2010, from
http://cloudenterprise.info/2009/08/04/cloud-definitions-nist-gartner-forrester/
Thin - yet another web server Retrieved
4/29/2010, 2010, from http://code.macournoyer.com/thin/
Urquhart, J. (2010). The wisdom of clouds - a blog
about cloud computing. Retrieved 5/12/2010, 2010, from
http://news.cnet.com/the-wisdom-of-clouds/
Voegels, W. (2010). All things distributed.
Retrieved 5/12/2010, 2010, from http://www.allthingsdistributed.com/
Watters, J. (2010). SiliconANGLE — blog. Retrieved 5/12/2010,
2010, from http://siliconangle.com/blog/author/jwatters/
Welcome! - the apache
software foundation Retrieved 4/29/2010, 2010, from http://www.apache.org/
Wikipedia contributors. Amazon machine image , 2010, from
Wikipedia contributors. Computing platform , 2010, from
Willis, J. M. (2010). IT
management and cloud blog. Retrieved 5/12/2010, 2010, from
http://www.johnmwillis.com/
WordPress Ý amazon S3 for WordPress Ç WordPress
plugins Retrieved 5/11/2010, 2010, from
http://wordpress.org/extend/plugins/tantan-s3/
Zoho. Retrieved 4/29/2010, 2010, from
http://www.zoho.com/