Cloud Computing in A Nutshell

chirpskulkInternet και Εφαρμογές Web

3 Νοε 2013 (πριν από 3 χρόνια και 8 μήνες)

66 εμφανίσεις

Cloud Computing in A Nutshell




Paul Chen


Materials Extracted From the
Following Books:


Cloud Computing: A Practical Approach


By Anthony T. Velte, Toby J. Velte, Robert Elsenpeter



Cloud Computing: Principles, Systems and Applications


By Nick Antonopoulos and Lee Gillam



Cloud Computing: Principles and Paradigms


by Rajkumar Buyya, James Broberg and Andrzej M.
Goscinski



Cloud Computing Strategies


by Dimitris N. Chorafas


Part I


Getting Started


Topic 1


Overview


Topic 2
-

What Makes Up A Cloud
Computing System?



Topic 3


Cloud Computing Applications



Topic 4: The Business Case for Going to the
Cloud




Topic 1: Overview


Definition:


Cloud computing is a general term for
anything that involves delivering hosted services
over the Internet. These services are broadly divided
into three categories: Infrastructure
-
as
-
a
-
Service
(
IaaS
), Platform
-
as
-
a
-
Service (
PaaS)

and Software
-
as
-
a
-
Service (
SaaS
). The name cloud computing was
inspired by the cloud symbol that's often used to
represent the Internet in
flowchart
s and diagrams.




Software as a Service


Platform as a Service

Hardware as a Service

Cloud Computing


What, Why, How


When plugging an electric appliance into an outlet,
we care neither how electric power is generated nor
how it gets to that outlet. This is possible because
electricity is virtualized; that is, it is readily
available from a wall socket that hides power
generation stations and a huge distribution grid.
When extended to information technologies, this
concept means delivering useful functions while
hiding how their internals work.

Cloud Computing


What, Why, How


Technologies such as cluster, grid, and now, cloud computing,
have all aimed at allowing access to large amounts of
computing power in a fully virtualized manner, by aggregating
resources and offering a single system view. In addition, an
important aim of these technologies has been delivering
computing as a utility. Utility computing describes a business
model for on
-
demand delivery of computing power; consumers
pay providers based on usage ("pay
-
as
-
you
-
go"), similar to the
way in which we currently obtain services from traditional
public utility services such as water, electricity, gas, and
telephony.


What ? Definition


In its simplest terms, cloud computing can be described as a
way to house data and applications in remote central servers
that can be accessed and updated by multiple users
simultaneously. Essentially, a standard desktop or laptop
computer becomes a portal where users tap into programs or
information through the internet. However, the way that users
access the information or applications is not quite as simple as
logging into a website. The platforms that manage or enable
access, as well as the actual application themselves, and the
infrastructure required to coordinate all of these elements,
form the basic elements of cloud computing.


Why?


Cloud computing has become a great solution for providing a
flexible, on
-
demand, and dynamically scalable computing
infrastructure for many applications. Cloud computing also
presents a significant technology trends, and it is already
obvious that it is reshaping information technology processes
and the IT marketplace
.

How?


Cloud computing can be defined as a new style of computing
in which dynamically scalable and often virtualized resources
are provided as a services over the Internet. Cloud computing
has become a significant technology trend, and many experts
expect that cloud computing will reshape information
technology (IT) processes and the IT marketplace. With the
cloud computing technology, users use a variety of devices,
including PCs, laptops, Smartphones, and PDAs to access
programs, storage, and application
-
development platforms
over the Internet, via services offered by cloud computing
providers. Advantages of the cloud computing technology
include cost savings, high availability, and easy scalability.

Topic 2
-

What Makes Up A
Cloud Computing System?


Applications

Saas

Infrastructure

Iaas

Platform

Paas

Virtualization

Servers & Storage

DSaas

How Cloud Computing Works

Six Phases of Computing Paradigms



Figure 1, adapted from
Voas and Zhang
(2009)
, shows six phases of computing
paradigms, from dummy
terminals/mainframes, to PCs, networking
computing, to grid and cloud computing.

Figure 1
.

Web Services


The emergence of Web services (WS) open standards has
significantly contributed to advances in the domain of
software integration. Web services can glue together
applications running on different messaging product
platforms, enabling information from one application to be
made available to others, and enabling internal applications to
be made available over the Internet.




Grid Computing


A step beyond distributed processing, involving large
number of networked computers (often
geographically dispersed and possibly of different
types and capabilities) that are harnessed to solve a
common problem. Clouds are usually organized as a
computer grid.

Grid Computing


Grid computing enables aggregation of distributed resources
and transparently access to them. Most production grids such
as TeraGrid and EGEE seek to share compute and storage
resources distributed across different administrative domains,
with their main focus being speeding up a broad range of
scientific applications, such as climate modeling, drug design,
and protein analysis.



The development of standardized protocols for several grid
computing activities has contributed

theoretically

to allow
delivery of on
-
demand computing services over the Internet.


Massively Scaled Grid

This is for user population in the tens of millions.



Example: Each query on George search is resolved by
a purpose
-
built grid of up to 1,00 servers. George
routes queries to many search grids.



Yahoo also has a massively scaled
-
out email system.
It caters to more than 260 million users, of which
tens of millions must be active at a time.

Cloud Service Characteristics


A cloud service has three distinct characteristics that
differentiate it from traditional hosting. It is sold on
demand
,
typically by the minute or the hour; it is
elastic

--

a user can
have as much or as little of a service as they want at any given
time; and the service is fully managed by the
provide
r (the
consumer needs nothing but a personal computer and Internet
access). Significant innovations in virtualization and
distributed computing, as well as improved access to high
-
speed Internet and a weak economy, have accelerated interest
in cloud computing.


Private vs. Public


A cloud can be private or public. A
public cloud

sells services
to anyone on the Internet. (Currently, Amazon Web Services is
the largest public cloud provider.). A
private cloud

is a
proprietary network or a data center that supplies hosted
services to a limited number of people. When a service
provider uses public cloud resources to create their private
cloud, the result is called a virtual private cloud. Private or
public, the goal of cloud computing is to provide easy,
scalable access to computing resources and IT services.


A cloud is used in network diagrams to depict the internet

With Cloud Computing, Other Companies
Host your Applications

Clients

Clients are the devices the end users interact with to
manage their information on the cloud. Clients generally
fall into three categories:



Mobile devices
include PDAs or
Smartphones
, like a
Blackberry, Windows Mobile Smartphone, or an
iPhone
.



Thin Clients
are computers that do not have internal
hard drives, but rather let the server do all the work, but
then display the information.




Thick
Clients
:

This type of client is a regular computer,
using a web browser like Firefox or Internet Explorer to
connect to the cloud.
Servers do all the work, but then
display the information.










Infrastructure


Infrastructure
-
as
-
a
-
Service (
IaaS)
like Amazon
Compute Cloud
(EC2) p
rovides virtual server instance
API

to start, stop,
access and configure their virtual servers and storage. In the
enterprise, cloud computing allows a company to pay for only
as much capacity as is needed, and bring more online as soon
as required. Because this pay
-
for
-
what
-
you
-
use model
resembles the way electricity, fuel and water are consumed,
it's sometimes referred to as utility computing.
Another player
in the field is
GoGrid.




Infrastructure


Offering virtualized resources (computation, storage,
and communication) on demand is known as
Infrastructure as a Service (IaaS)

A cloud
infrastructure
enables on
-
demand provisioning of
servers running several choices of operating systems
and a customized software stack. Infrastructure
services are considered to be the bottom layer of
cloud computing systems.


Platform


Platform
-
as
-
a
-
service (
PaaS)
in the cloud is defined as a set of
software and product development tools hosted on the
provider's infrastructure. Developers create applications on
the provider's platform over the Internet.
PaaS

providers may
use APIs, website
porta
l
s

or
gateway

software installed on the
customer's computer.
Force.com
, (an outgrowth of
Salesforce.com) and GoogleApps are examples of PaaS.
Developers need to know that currently, there are not
standards for interoperability or data portability in the cloud.
Some providers will not allow software created by their
customers to be moved off the provider's platform.



Google's App Engine is an example of a platform, where users
may access the apps through the platform

Platform
--

Google's App Engine



Google's App Engine is an example of a platform, where users
may access the apps through the platform. The apps
themselves provide functions or services that are based on
data collected from a variety of different sources. Some
applications are more specific to industry, such as a sales
software suite that tracks the individual calls and progress of
a team of roaming representatives who can input their
information from a mobile device into a centralized
application that displays all information in real time. The fee
systems for these services constitute the infrastructure.

Delivery Platform Options


A central server administers the system, monitoring traffic and
client demands to ensure everything runs smoothly. It follows
a set of rules called protocols and uses a special kind of
software called middleware. Middleware allows networked
computers to communicate with each other. Most of the time,
servers don't run at full capacity. That means there's unused
processing power going to waste. It's possible to fool a
physical server into thinking it's actually multiple servers,
each running with its own independent operating system. The
technique is called server virtualization. By maximizing the
output of individual servers, server virtualization reduces the
need for more physical machines.

Software


In the software
-
as
-
a
-
service
(
SaaS)
cloud model, the vendor
supplies the hardware infrastructure, the software product
and interacts with the user through a front
-
end portal.
SaaS

is
a very broad market. Services can be anything from Web
-
based email to inventory control and database processing.
Because the service provider hosts both the application and
the data, the end user is free to use the service from anywhere
.


Cloud Computing Architecture




When talking about a cloud computing system, it's
helpful to divide it into two sections: the front end
and the back end. They connect to each other through
a
network
, usually the
Internet
. The front end is the
side the computer user, or client, sees. The back end is
the "cloud" section of the system.


Cloud Computing Architecture

-
The
Front End


The front end includes the client's
computer

(or
computer network) and the application required to
access the cloud computing system. Not all cloud
computing systems have the same user interface.
Services like Web
-
based
e
-
mail

programs leverage
existing Web browsers like Internet Explorer or
Firefox
. Other systems have unique applications that
provide network access to clients.


Cloud Computing Architecture

-
The
Back End


On the back end of the system are the various
computers, servers and data storage systems that
create the "cloud" of computing services. In theory, a
cloud computing system could include practically
any computer program you can imagine, from data
processing to video games. Usually, each application
will have its own dedicated
server
.


Cloud Computing Architecture


If a cloud computing company has a lot of clients, there's
likely to be a high demand for a lot of storage space. Some
companies require hundreds of digital storage devices. Cloud
computing systems need at least twice the number of storage
devices it requires to keep all its clients' information stored.
That's because these devices, like all computers, occasionally
break down. A cloud computing system must make a copy of
all its clients' information and store it on other devices. The
copies enable the central server to access backup machines to
retrieve data that otherwise would be unreachable. Making
copies of data as a backup is called redundancy.


Topic 3: Cloud Computing
Applications


The applications of cloud computing are practically limitless.
With the right middleware, a cloud computing system could
execute all the programs a normal
computer

could run.
Potentially, everything from generic word processing software
to customized computer programs designed for a specific
company could work on a cloud computing system.

Cloud Computing Applications



Why would anyone want to rely on another computer system
to run programs and store data? Here are just a few reasons:





Clients would be able to access their applications and data
from anywhere at any time. They could access the cloud
computing system using any computer linked to the
Internet
.
Data wouldn't be confined to a hard drive on one user's
computer or even a corporation's internal network.


Cloud Computing Applications


It could bring hardware costs down. Cloud computing
systems would reduce the need for advanced hardware on the
client side. You wouldn't need to buy the
fastest computer

with the most
memory
, because the cloud system would take
care of those needs for you. Instead, you could buy an
inexpensive computer terminal. The terminal could include a
monitor
, input devices like a
keyboard

and
mouse

and just
enough processing power to run the middleware necessary to
connect to the cloud system. You wouldn't need a large hard
drive because you'd store all your information on a remote
computer.

Cloud Computing Applications


Corporations that rely on computers have to make sure they
have the right software in place to achieve goals. Cloud
computing systems give these organizations company
-
wide
access to computer applications. The companies don't have to
buy a set of software or software licenses for every employee.
Instead, the company could pay a metered fee to a cloud
computing company.

Cloud Computing Applications


Servers and digital storage devices take up space.
Some companies rent physical space to store servers
and databases because they don't have it available
on site. Cloud computing gives these companies the
option of storing data on someone else's hardware,
removing the need for physical space on the front
end.



Corporations might save money on IT support.
Streamlined hardware would, in theory, have fewer
problems than a network of heterogeneous machines
and
operating systems
.




Cloud Computing Applications


If the cloud computing system's back end is a grid
computing system, then the client could take
advantage of the entire network's processing power.
Often, scientists and researchers work with
calculations so complex that it would take years for
individual computers to complete them. On a grid
computing system, the client could send the
calculation to the cloud for processing. The cloud
system would tap into the processing power of all
available computers on the back end, significantly
speeding up the calculation.

Cloud Computing Applications


.
Good performance measures are:



Related to the strategic and tactical goals of the company


Balanced between short
-
term and long
-
term goals


Understandable Easily comprehended by those it affects


Objective Measurable without significant bias


Consistent Used on a regular basis


Actionable Affected by actions of employees


You can't improve what you don't measure. Performance
measurement is vital for the long
-
term success of any
endeavor. In our complex world, everyone has multiple goals
and mechanisms for reaching them. For example, in addition
to financial performance goals, many firms place great
importance on employee satisfaction and community
contribution.


Topic 4: The Business Case for Going
to the Cloud


Whether or not you move to the cloud depends on
your organization, what you need to accomplish,
and whether or not the cloud can help you do it.



We’ll also talk about how different cloud services
(PaaS, SaaS, and so on) can serve you.

Cloud Computing Services


Infrastructure as a Service
--
Amazon EC2


Platform as a Service

RightScale, Salesforce.com


Software as a Service
--
Google App Engine and
Salesforce


Software plus Services
--
Microsoft’s take on SaaS is
slightly different with their Software plus Services
(sometimes they shorten it to S+S).


Infrastructure as a Service


Let’s first talk about Infrastructure as a Service. In
this scenario, you’re using the cloud provider’s
machines. Another term for this type of computing is
Everything as a Service. That is, you are using a
virtualized server and running software on it. One of
the most prevalent is Amazon Elastic Compute
Cloud (EC2). Another player in the field is GoGrid. In
this section we’ll take a closer look at both Amazon
and GoGrid.


Amazon EC2


Amazon EC2’s simple web service interface allows
businesses to obtain and configure capacity with
minimal friction. It provides control of computing
resources and lets organizations run on Amazon’s
computing environment.



Amazon EC2 reduces the time required to obtain and
boot new server instances to minutes, allowing quick
scaling capacity, both up and down, as computing
requirements change. Amazon EC2 changes the
economics of computing by allowing you to pay only
for capacity that you actually use.


Windows and SQL Server Support for
Amazon EC2


Customers can employ Amazon EC2 running
Windows Server or SQL Server with all of the
benefits of Amazon EC2. Windows with Amazon
EC2 has been a common request of AWS customers
since the service launched. Amazon EC2 provides an
environment for deploying ASP.NET web sites, high
-
performance computing clusters, media transcoding
solutions, and many other Windows
-
based
applications.

Amazon EC2 Service Level Agreement


With over two years of operation Amazon EC2
exited its beta into general availability and offers
customers a Service Level Agreement (SLA). The
Amazon EC2 SLA guarantees 99.95 percent
availability of the service within a region over a
trailing 365
-
day period, or customers are eligible to
receive service credits back. The Amazon EC2 SLA is
designed to give customers additional confidence
that even the most demanding applications will run
dependably in the AWS cloud.


EC2 Recent Features


Load balancing
--

Enables customers to balance incoming
requests and distribute traffic across multiple Amazon EC2
compute instances.


Auto
-
scaling

--
Automatically grows and shrinks usage of
Amazon EC2 compute capacity based on application
requirements.


Monitoring

--
Enables customers to monitor operational metrics
of Amazon EC2, providing even better visibility into usage of
the AWS cloud.


Management Console
--

Provides a simple, point
-
and
-
click web
interface that lets customers manage and access their AWS
cloud resources.

GoGrid



GoGrid is a service provider of Windows and Linux
cloud
-
based server hosting, and offers 32
-
bit and 64
-
bit editions of Windows Server 2008 within its cloud
computing infrastructure. Parent company
ServePath is a Microsoft Gold Certified Partner, and
launched Windows Server 2008 dedicated hosting in
February of 2010.



Platform as a Service (PaaS) is a way to build
applications and have them hosted by the cloud
provider. It allows you to deploy applications
without having to spend the money to buy the
servers on which to house them. In this section we’ll
take a closer look at companies RightScale and
Google. We’ll talk about their services, what they
offer, and what other companies are getting out of
those services.


Platform as a Service
-

Building Cloud
Computing Platform



RightScale entered into a strategic product and partnership,
broadening its cloud management platform to support
emerging clouds from new vendors, including FlexiScale and
GoGrid, while continuing its support for Amazon’s EC2.
RightScale is also working with Rackspace to ensure
compatibility with their cloud offerings, including Mosso and
CloudFS. RightScale offers an integrated management
dashboard, where applications can be deployed once and
managed across these and other clouds.


RightScale

Salesforce.com



Salesforce.com offers Force.com as its on
-
demand
platform. Force.com features breakthrough
Visualforce technology, which allows customers,
developers, and ISVs to design any app, for any user,
anywhere with the world’s first User Interface
-
as
-
a
-
Service. The Force.com platform offers global
infrastructure and services for database, logic,
workflow, integration, user interface, and
application exchange.


Google App Engine and
Salesforce


Google has partnered with Salesforce to make it easy for
companies of all sizes to run their business in the cloud with
Salesforce for Google Apps. The combination of the Google
Apps suite of productivity applications and the Salesforce suite
of Customer Relationship Management (CRM) applications
enables businesses to effectively communicate and collaborate
without any hardware or software to download, install, or
maintain. Salesforce for Google Apps also leverages the
Force.com Platform and Google’s open APIs, opening up even
more development opportunities for developers and partners.


Salesforce

for Google Apps



Salesforce for Google Apps is a combination of essential
applications for business productivity (email, calendaring,
documents, spreadsheets, presentations, instant messaging) and
CRM (sales, marketing, service and support, partners) that
enables an entirely new way for business professionals to
communicate, collaborate, and work together in real time over
the Web. Salesforce for Google Apps offers a complete way for
businesses to harness the power of cloud computing without the
cost and complexity of managing hardware or software
infrastructure.

The Following Features are included
in
Salesforce

for Google Apps:



Salesforce and Gmail

Businesses can now easily send, receive,
and store email communication, keeping a complete record of
customer interactions for better sales execution and improved
customer satisfaction.



Salesforce and Google Docs

Create, manage, and share online
Google Documents, Google Spreadsheets, and Google
Presentations within your sales organization, marketing group,
or support team for instant collaboration.


The Following Features are included
in
Salesforce

for Google Apps:



Salesforce and Google Talk

Instantly communicate with
colleagues or customers from Salesforce and optionally attach
Google Talk conversations to customer or prospect records
stored in Salesforce.



Salesforce and Google Calendar

Expose sales tasks and
marketing campaigns from Salesforce on Google Calendar. Built
by Appirio, this application is one example of a new category of
partner extensions to Salesforce for Google Apps.


Software plus Services


Microsoft’s take on SaaS is slightly different with
their Software plus Services (sometimes they shorten
it to S+S). In this model, typical SaaS is bolstered
with software running locally. That is, you run some
software on
-
site and reach out to the cloud for
additional services. This provides the flexibility of
using a cloud provider, and also the reliability of
having data stored on
-
site, as well.


How Those Applications Help Your
Business?


Cloud computing offers a number of benefits that
your organization can realize. There’s a reason
cloud computing is the latest “big” thing in the
world of computing. It helps your organization on a
number of levels, not the least of which is the
bottom line. In this section, let’s talk a little bit
about why a move to the cloud helps your
organization.

Operational Benefits


Reduced cost

Since technology is paid incrementally, your
organization saves money in the long run.


Increased storage

You can store more data on the cloud than on
a private network. Plus, if you need more it’s easy enough to get
that extra storage


Automation

Your IT staff no longer needs to worry that an
application is up to date

that’s the provider’s job. And they
know they have to keep it up to date or they’ll start losing
customers.


Flexibility

You have more flexibility with a cloud solution.
Applications can be tested and deployed with ease, and if it
turns out that a given application isn’t getting the job done, you
can switch to another.


Operational Benefits


Better mobility

Users can access the cloud from
anywhere with an Internet connection. This is ideal
for road warriors or telecommuters

or someone
who needs to access the system after hours.



Better use of IT staff

IT staff no longer has to worry
about server updates and other computing issues.
They can focus on duties that matter, rather than
being maintenance staff.


Economic Benefits


People

We hate to suggest that anyone lose their job, but the
honest
-
to
-
goodness truth (we’re sorry) is that by moving to the
cloud, you’ll rely on fewer staffers. By having fewer staff
members, you can look at your team and decide if such
-
and
-
such a person is necessary.



Hardwar
e With the exception of very large enterprises or
governments, major cloud suppliers can purchase hardware,
networking equipment, bandwidth, and so forth, much cheaper
than a “regular” business.

Economic Benefits


Process

Each Google application is built with security in mind.
Applications are constantly reviewed for security as part of their
Secure Code development process. The application
development environment is also restricted and monitored for
an additional layer of security. External security audits are also
routinely conducted.



Technology

Google Apps data is divided between multiple
servers and disks, which makes it impossible to read, if
someone were to breach a lone server. Also, the way in which
the Google servers are built makes it possible to rapidly
distribute updates and configuration changes.