You are on page 1of 37

Cloud Computing

Ngai-Man (Man) Cheung

Capstone Module 2015


What is Cloud Computing

Main Characteristics
Activity: Quiz and discussion
Service Models
Activity: Quiz and discussion
Deployment Models, etc
Hands-on Activity: Google App Engine
Activity: Cloud computing for capstone

What is Cloud Computing

Cloud computing: Access of hosted services
over the Internet
Example: Amazon Web Service (AWS) lets
external customers rent computing cycles on
their clusters

What is Cloud Computing

Cloud computing enables companies to
consume compute as a utility
Similar to electricity or a telephone service
Customers do not need to build and
maintain computing infrastructures
Utility computing

What is Cloud Computing

Example: Gmail (or other webmail)
Delivery of email services through
Users access to emails stored on servers
through Internet
Software as a Service (SaaS)

What is Cloud Computing

Yahoo! Mail
Google Docs

What is Cloud Computing

A model for enabling ubiquitous, convenient,
on-demand network access to a shared pool
of configurable computing resources
Example of computing resources: networks,
servers, storage, applications, and services
The computing resources can be rapidly
provisioned and released with minimal
management effort or service provider

Main Characteristics

1. On-demand Self-service
A customer can provision computing
resources automatically
No human interaction with the
service provider required
Computing resources: storage, server

2. Broad Network Access

Computing resources are available over the
network, usually Internet
Access through standard mechanisms, e.g. web
Broad access by heterogeneous thin or thick
client platforms: mobile phones, tablets, laptops,

3. Resource Pooling
Computing resources of the providers are
pooled to serve multiple users
Storage, processing, memory, network
Multi-tenant model
Resources dynamically assigned and
reassigned according to user demand
Users in general have no control or
knowledge over the exaction location of the
provided resources

4. Rapid Elasticity
Resources can be elastically
provisioned and released
Often, this is done automatically
Resource scaling commensurate with
Scaling can be done in any quantity
at any time (cpu hours)

5. Measured Service
Metering capability
for different resources
GB of storage, CPU
hours for processing,
active user accounts
Resource usage can
be monitored,
controlled, reported

ROOM: a1581342

Service Models
1. Software as a Service (SaaS)
2. Platform as a Service (PaaS)
3. Infrastructure as a Service

1. Software as a Service
Largest cloud market and growing quickly
Users can use the providers applications running
on a cloud infrastructure
Examples: Google Gmail, Microsoft 365
Users: ordinary computer users

1. Software as a Service
Usually, SaaS uses the web browsers to
deliver applications
Applications managed by cloud vendor
Access from web browsers on the clients
No need to install applications on the client
Easy for enterprises for maintenance and
Replace traditional on-device software

Cloud platform

Users can deploy applications

onto the providers cloud
Can be user-created or acquired
Example: Google App Engine
(GAE), Apprenda
Users: Software developers
Cloud resources are used to host
applications and software
Cloud providers manage OS,
virtualization, servers, storage,
networking, PaaS software

2. Platform as a Service
PaaS allows developers to create applications
using software components that are built into the
PaaS middleware / framework: programming
languages, libraries, services, tools
PaaS reduces the amount of software development
effort, release the burdens on infrastructure
PaaS inherits cloud characteristics: scalability,
Improve IT efficiency: makes development, testing,
and deployment of applications quick, simple, and

3. Infrastructure as a
Cloud infrastructure service
Users can provision processing,
storage, networks and other
fundamental computing resources
Users can deploy and run
arbitrary software, including
applications and operating
Examples: Amazon Web Service
(AWS), Google Compute Engine
Users: System administrators,
software developers
Cloud providers manage cloud
Users can control applications,
OS, some networking components

ROOM: a1581342

Cloud Computing

Components for cloud computing

Front end
Back end
Connected through a network, e.g.,

Cloud Computing Front End

Interface to access the cloud
computing, e.g., web browser
Thin clients: mobile-phones, tablets
Thick clients: laptops, computers

Cloud Computing Back End

Data storage
Virtual machines
Security mechanism

Deployment Models

Private cloud
Community cloud
Public cloud
Hybrid cloud

1. Private cloud
The cloud infrastructure is
provisioned for exclusive use by a
single organization
Could be owned / managed /
operated by the organization or a
third party
Example: DBS private cloud for bank
document processing (optical
character recognition)
May exist on or off premises

2. Community Cloud
The cloud infrastructure is
provisioned for exclusive use by a
specific community of consumers
that have shared concerns
Mission, security requirements, etc
Owned / managed / operated by one
or more of the organizations in the
community, or a third party

3. Public Cloud
The cloud infrastructure is provisioned for
open use by the general public
Example: Amazon Elastic Compute Cloud
(EC2), Google AppEngine
Owned / managed / operated by a business /
Exists on the premises of the cloud provider

4. Hybrid Cloud
The cloud infrastructure is a composition of two
or more distinct cloud infrastructures (private,
community, public)
Bound together by the needs to enable data /
application portability (e.g., load balancing
between clouds)
Use case: During the peak periods of individual
applications, some workload can be migrated to
the Public Cloud

Advantages of Cloud
Access services / applications as utilities over
the Internet
Minimum software / hardware installation

On-demand self-service
The resources can be used without interaction with
cloud provider
Pay-as-you-go pricing scheme (e.g., CPU hours)

Highly cost effective: Cloud computing

operates at higher efficiencies with greater
More reliable

Disadvantages of Cloud
Security and privacy: data managed by
third-party, risk of leaking sensitive
Lock-in: difficult for users to switch from one
provider to another
Insecure or incomplete data deletion: extra
copies of data are stored but are not
available for access

Hands-on Activity: Google App

Understand the general
characteristics of PaaS (Platform as a
Using GAE as an illustrating example
GAE Tutorial:


Hands-on Activity: Google App

First develop and test your app, then
deploy to cloud
Run Google App Engine Launcher
File -> Add Existing Application, choose
guestbook copied from eDimension
In guestbook: a Python script to handle
web (HTTP) request
app.yaml: configuration file

Hands-on Activity: Google App

You should see your app listed:

Test it with Run: this launches a local web server with

the app
Test the app with: http://localhost:8080/ (note the port
must match the one listed in GAE Launcher

Hands-on Activity: Google App

If working properly, ready to deploy
You need a GAE account (free
subscription for 6 months, small usage)
Create your project in cloud using:

Note the Project ID. Change app.yaml,

field application with the Project ID
Choose Deploy in the GAE Launcher
Now your app is hosted at:

Cloud computing for capstone project
As a project team, discuss how cloud
computing can be used in your
project. Discuss the possible
applications, service models, specific
requirements, potential advantages
compared with other approaches
Please submit your write-up to

Thank you