You are on page 1of 37

Cloud Computing

Ngai-Man (Man) Cheung


Capstone Module 2015

Content

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
project

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
Internet
Users access to emails stored on servers
through Internet
Software as a Service (SaaS)

What is Cloud Computing

Yahoo! Mail
Google Docs
Facebook
Dropbox

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
interaction

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
time

2. Broad Network Access


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

3. Resource Pooling
Computing resources of the providers are
pooled to serve multiple users
Storage, processing, memory, network
bandwidth
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
demand
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

Activity
http://b.socrative.com/
ROOM: a1581342

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

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
side
No need to install applications on the client
computers
Easy for enterprises for maintenance and
support
Replace traditional on-device software

2.
Platform
as
a
Service
Cloud platform

Users can deploy applications


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

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,
multi-tenancy
Improve IT efficiency: makes development, testing,
and deployment of applications quick, simple, and
cost-effective

3. Infrastructure as a
Service
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
systems
Examples: Amazon Web Service
(AWS), Google Compute Engine
(GCE)
Users: System administrators,
software developers
Cloud providers manage cloud
infrastructure
Users can control applications,
OS, some networking components
(firewalls)

Activity
http://b.socrative.com/
ROOM: a1581342

Cloud Computing
Architecture

Components for cloud computing


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

Cloud Computing Front End


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

Cloud Computing Back End

Servers
Data storage
Virtual machines
Security mechanism

Deployment Models
1.
2.
3.
4.

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 /
government
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
Computing
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
utilization
More reliable

Disadvantages of Cloud
Computing
Security and privacy: data managed by
third-party, risk of leaking sensitive
information
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


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

tps://cloud.google.com/appengine/docs/python/gettingstartedpython27/introduct

Hands-on Activity: Google App


Engine
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:
guestbook.py: a Python script to handle
web (HTTP) request
app.yaml: configuration file

Hands-on Activity: Google App


Engine
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


Engine
If working properly, ready to deploy
You need a GAE account (free
subscription for 6 months, small usage)
Create your project in cloud using:
https://console.developers.google.com/project

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:
<project-id>.appspot.com

Activity:
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
eDimension

Thank you