Cloud Computing – Part One

Introduction

What exactly does the term “cloud computing” mean? Most likely you’ve heard the term “Cloud” before, but put together with “computing” it most likely gets big and fuzzy. Analyst’s and vendor’s still argue over how broad the term actually is, but here we will use the broad term. Basically the term means Internet (“Cloud”) development and computer (“computing”) technology. It’s a relatively new form of thinking and developing, and contains “Service oriented architecture” (SOA) and technology terms such as “Software as a Service” (SaaS), “Platform as a Service” (PaaS) and “Infrastructure as a Service” (IaaS). It’s important to understand that “Cloud computing” isn’t SOA, whereas SOA is an development approach such as “Object Oriented Programming” (OOP) and is used for creating and maintaining IT systems. “Cloud computing” however is about the technology behind, such as client/server and the drivers aren’t necessarily development, but more as to cost and time efficiency.
 

File:Cloud computing.svg
Created by Sam Johnston using OminGroup‘s OmniGraffle and Inkscape (includes Computer.svg by Sasa Stefanovic)

“Cloud computing” brings forth a paradigm shift, in which the users no longer need expertise in or control over the system “Cloud” infrastructure1. A typical cloud computing provider delivers one of the already mentioned new technologies such as SaaS, where the users/customers can access software via their web-browser, while the software and/or data are stored on the server which is part of the “Cloud”. Large companies which deliver cloud computing services today, and have done so for some time now are: Google, Amazon and IBM.
 
The whole idea of “Cloud computing” and it’s potential power can be summarized and compared to a rubber band. If the processing needs are low it can throttle down and save power, while if the processing needs are high it can scale back up. Much like a rubber band, if you were to try and hold 5 pens together with a rubber band, you could fold the rubber band to better fit the 5 pens. But if you were to hold 100 pens together you would need to stretch out the rubber band. Much like the rubber band, the cloud is also elastic2.

Background

History

Back in the 60′s J.C.R Licklider, who was in charge of enabling the development of ARPANET, introduced the idea of an “Intergalactic Computer Network”3. His vision was what we’ve been seeing a lot of in science fiction movies and books for the last 30 years, a global network where everyone is connected and can access programs and data at any given time or place. In the same time period someone else proposed an idea similar to cloud computing, and he has gotten most of the credit behind the idea. His name is John McCarthy, and he came up with the idea of computation being delivered as a public service, similar to the service bureaus which are from the same time period (note that SaaS has their business model from these bureaus).

In 1999 Salesforce.com started delivering applications to corporations through their web-site, today this has the term, SaaS. They were a pioneer in the field, and soon other companies followed. In 2002 Amazon brought forth its Web Services which included many cloud-based services, such as storage and computation. And again in 2006 Amazon released a addition to the cloud called “Elastic Compute Cloud (EC2)” which were a way to earn money on the excess computing power they had. EC2 were a way for companies and individuals to rent computing power through the delivery model “Infrastructure as a Service” (IaaS)4.

Delivery Models

When looking at companies which deal with “Cloud computing”, one notice the term service quite frequently. A service is what a cloud service vendor delivers to customers, and can be visualized as the following picture. In reality the lines between the different services are blurred because many companies decide to deliver more than just one of these services.

image0.jpg
2

SLA

Along side these services, companies use something called a “Service level agreement” (SLA) which is a negotiated agreement between two parties, a contract which defines the level of service, delivery time, guarantees, warranties etc. It can also be explained as the (minimum) level of expected service. In IaaS this could be things as minimum update percentage, and what rights the user has if something were to happen with the infrastructure service. In “Cloud computing” SLAs are very important, and are widely used as a legally binding contract. In the model above it would reside in the “Management and Administration” category.

Infrastructure as a Service

This type of cloud service delivery model is as it’s name implies, renting of infrastructure such as servers, network hardware and storage, and some even offer data center space which can hold all the hardware. It can be a package deal, which means the user doesn’t only rent the hardware but also the operating system and/or virtualization technology to manage the infrastructure. The users pay for this service on usage basis, and usually the providers offer a dynamic scaling service which means the users can get more power if they should need it, but most likely will have to pay extra. As mentioned earlier SLAs are widely used, and with IaaS uptime, and dynamic resources (ex: how much extra power can be offered without extra costs) are typical SLA list items. 

Amazon’s Elastic Compute Cloud (Amazon’s EC2) is one of the most high profiled IaaS and deliver a elastic (not dynamic) infrastructure service5. It’s not dynamic because the user has to manually request more power if its needed, unlike dynamic where it’s automatically provided.

Software as a Service

Among the different cloud services SaaS is among the most popular. SaaS was the service which   was first introduced and implemented into the cloud as a cloud service. SaaS is usually business applications which are hosted by the provider and delivered as a service, such as Google Docs or Google Mail which are both SaaS although free.

SaaS has its roots with “Application Service Providers” (ASP) which consisted of different “Customer Relationship Management” (CRM) applications2.. CRM software is the most common form of SaaS with Salesforce.com as a market leading vendor. Buying software as a service, has gotten increasingly popular over the last years due to companies such as Salesforce which have captured clients from large companies such as SAP6.The idea behind SaaS is allowing companies to rent a service on a per-use basis, which allows companies to test the software properly first to see if they like it or if it actually fits their business. Typical SaaS software are CRM and “Enterprise Resource Planning” (ERP) software.

Platform as a Service

PaaS delivers more than just IaaS, it delivers not just the processing power, but also software for development and/or runtime. Everything a developer would need to build and/or run its application, for both development and runtime. In many ways its similar to what we have come to know as web-hosting, but it doesn’t just host web-sites but it can host tools for the developer to develop software such as Java or Python, and even host the software on the server. PaaS can host the entire software life-cycle7 which are useful as the developers saves the costs in buying expensive servers and using time to set them up, both for testing and production environments.

PaaS is an effective way to announce and distribute different web-service like programs to the masses. An example of a widely distributed and developed system is Google App Engine. Google App Engine allows a user to create 9 applications for free, if more is needed one can buy more space, bandwidth or CPU cycles8. Google App Engine is a platform for developing or hosting Python or Java (and many frameworks or extensions based on the two) applications. Other PaaS providers include Microsoft’s Azure Services Platform 

Facebook is also a PaaS (or at least to some degree) which offer a platform for developing and hosting applications. Applications such as Scrabulous which had a user base of 20 000 on their own website, had almost one million users with over 50 000 users active on a daily basis. Without the Facebook platform they would never have such a large user base. Although Facebook isn’t a pure PaaS its worth mentioning.

Closing

This was my first part of the subject, I’ll be releasing the next and final part of this short overview of the cloud computing topic in the not too far a distant future. We’ll be discussing different risks and benefits, and possible economic factors, and try to sum it all up. Hope you enjoyed it and if you have any questions, as usual leave a comment below.

Updated: Second part of the article has been released, Cloud Computing – Part Two

Sources

1 Wikipedia.org. 2010. Cloud Computing

2 Hurwitz, Judith, Robin Bloor, Marcia Kaufman, and Dr. Fern Halper. 2010.

Cloud Computing for Dummies. Indianapolis: Wiley.

3 Licklider, J.C.R. 1963. Topics for Discussion at the Forthcoming Meeting

4 Mohamed, Arif. 2009. A History of Cloud Computing

5 Amazon.com. 2010. Amazon EC2 FAQ.

6 Wainewright, Phil. 2008. SaaS star leaves SAP for Salesforce.com

http://blogs.zdnet.com/SAAS/?p=548 (accessed February 24, 2010)

7 Schofield, Jack. 2008. Google angles for business users with ‘platform as a service’

8 Google.com. 2010. Google App Engine General Questions

About Torstein Skulbru

23 year old, Bachelor ICT(Information and Communication Technology) student at University of Bergen (NO)