Lecture 02 Cloud Structures

Download Report

Transcript Lecture 02 Cloud Structures

Lecture II: Cloud Structures
CS 4593
Cloud-Oriented Big Data and Software Engineering
Three-Layer Structure of Cloud
Infrastructure as a service
• Instead of buying and running physical
equipment (computers, storage, etc.), you ‘rent’
these as required from a cloud provider
• You ship your programs and data to a remote
data centre and run them there rather than
locally
3
Platform as a service
• The cloud provider makes a set of APIs available
which you use in your program to interact with
the platform
• Scalability is transparent. Automatic scale
out/scale in as demand changes
• Primarily geared to writing web-based
applications
4
Software as a service
• Software is shared by different users and
accessed using a web browser
• Services are stateless, functional abstractions
• Accessed via a service interface – SOAP or
RESTful interface
5
Cloud Service Models
Software as a
Service (SaaS)
Platform as a
Service (PaaS)
Infrastructure as a
Service (IaaS)
SalesForce
CRM
LotusLive
Google
App
Engine
6
An Analogy with PC systems
• IAAS
– Like the hardware and the operating system kernel,
including the processor, storage system, such as
Wintel and Mac
• PAAS
– Like the System API, such as the Android framework,
Windows API, JDK, etc.
• SAAS
– Like the third party libraries, such as the apache
libraries
7
Infrastructure as a Service
• What is IaaS?
– Service which delivers computer infrastructure
– Typically consists of virtual platforms
• Why use an IaaS provider?
–
–
–
–
Don't have to purchase expensive equipment
Don't have to deal with maintenance on equipment
Create customized instances of an OS
Scalability
8
Infrastructure as a Service
• IaaS is the delivery of technology infrastructure
as an on demand scalable service
– Usually billed based on usage
– Usually multi tenant virtualized environment
– Can be coupled with Managed Services for OS and
application support
IaaS is not Simply Managed Hosting
• Privilege
– Root privilege, installation of software
• Better Elasticity
– Get 10 times of servers with a click
• Function Availability
– Data / Power Backup
– Crash Recovery
–…
Amazon Web Services
• Amazon Elastic Compute Cloud (EC2)
– provides scalable computing capacity in the cloud
– Pay for what you use
– Start new server instances on-demand
• Can run instances of different OS's
– RedHat Linux, Windows Server, openSuSE Linux,
Fedora, Debian, OpenSolaris, Cent OS, Gentoo
Linux, and Oracle Linux.
• Allows small business to inexpensively acquire
the resources they need
11
EC2-continued
• Powered by Xen – a Virtual Machine:
– Different from Vmware and VPC as uses “paravirtualization” where the guest OS is modified to use
special hyper-calls:
– Hardware contributions by Intel (VT-x/Vanderpool)
and AMD (AMD-V).
– Supports “Live Migration” of a virtual machine
between hosts.
• Management Console/AP
12
EC2-continued
•
•
•
•
•
Load your image onto EC2 and register it.
Boot your image from the Web Service.
Open up required ports for your image.
Connect to your image through SSH.
Execute you application…
13
Other IAAS Examples
Cloud Storage
• Several large Web companies are now
exploiting the fact that they have data storage
capacity that can be hired out to others.
– allows data stored remotely to be temporarily cached
on desktop computers, mobile phones or other
Internet-linked devices.
• Amazon’s Simple Storage Solution (S3) is a well
known example
15
Amazon Simple Storage Service (S3)
• Unlimited Storage.
• Pay for what you use:
– $0.20 per GByte of data transferred,
– $0.15 per GByte-Month for storage used,
– Second Life Update:
• 1TBytes, 40,000 downloads in 24 hours - $200,
16
PaaS - Platform as a Service
• What is PaaS?
– Set of web based development tools that are hosted
on a cloud provider's infrastructure.
• Benefits of developing with an PaaS
–
–
–
–
Easy to upload to the cloud
Don't have to worry about hosting your application
Provides full analytics software.
Dynamically Scales
17
Platform as a Service (PaaS)
• PaaS provides all of the facilities required to
support the complete life cycle of building and
delivering web applications and services entirely
from the Internet.
– Typically applications must be developed with a
particular platform in mind
– Multi tenant environments
– Highly scalable multi-tier architecture
Windows Azure
• What is Windows Azure
– Platform for developing web applications that fully
integrates into Visual Studio
• Supported Languages
– Platform for developing web applications that fully
– Standard .Net languages, PHP, Java, Ruby
• Benefits of Windows Azure
– Great pool of resources
– Integrates into Visual Studio
19
Google App Engine
• What is Google App Engine?
– Platform for developing web applications on Google's
data centers
• Supported Languages
– Java, JavaScript, Ruby, Python
• Benefits of Google App Engine
– 500 MB of storage and 5 million page views / month
Free
– Cost Efficient
– Instant Scalability
– Easy to use
20
PaaS Examples
Software as a Service (SaaS)
• What is SaaS?
– Web based applications
– No hardware or software to install
– End users just login and go
• Benefits of SaaS applications?
– Web based applications
– Saves space on users computer
– Everything is done in the browser
– Don't have to worry about hardware
Software as a Service (SaaS)
• SaaS is a model of software deployment where
an application is hosted as a service provided to
customers across the Internet.
• Saas alleviates the burden of software
maintenance/support
– but users relinquish control over software versions
and requirements.
23
Software as a Service (SaaS)
• Risks of SaaS applications
– Must have the internet
– Password protected
– Personal privacy
Software as a Service (SaaS)
• SaaS also has the characteristic of on-demand
self-service
• A software version
– You are charged at how much you are using
– You are renting the software, not buying them
– APIs are monitored and controlled
• A special benefit for software provider?
25
Between the layers
• The “no-need-to-know” in terms of the
underlying details of infrastructure, applications
interface with the infrastructure via the APIs
• Cloud are transparent to users and applications,
they can be built in multiple ways
– branded products, proprietary open source, hardware
or software, or just off-the-shelf PCs.
– Open Source software combined with in-house
applications and/or system software.
26
Virtualization
• Virtual workspaces:
– An abstraction of an execution environment that can
be made dynamically available to authorized clients
by using well-defined protocols
– Resource quota (e.g. CPU, memory share),
– Software configuration (e.g. O/S, provided services).
Virtualization
• Implement on Virtual Machines (VMs):
– Abstraction of a physical host machine,
– Hypervisor intercepts and emulates instructions from
VMs, and allows management of VMs,
– VMWare, Xen, etc.
• Provide infrastructure API:
– Plug-ins to hardware/support structures
App
App
App
OS
OS
OS
Hypervisor
Hardware
Virtualized Stack
Virtual Machines
• VM technology allows multiple virtual machines
to run on a single physical machine.
App
App
App
App
App
Guest OS
(Linux)
Guest OS
(NetBSD)
Guest OS
(Windows)
VM
VM
VM
Virtual Machine Monitor (VMM) / Hypervisor
Hardware
Xen
VMWare
UML
Denali
etc.
• Performance: Para-virtualization (e.g. Xen) is
very close to raw physical performance!
29
Virtualization with Higher
Performance
• Hardware Virtualization
– Intel vt-x
– AMD-v
• Modify the hosted operating system
– Generate a shortcut to bypass the OS
– System calls are made directly to the hypervisor
– Xen
Multi-Tenant Architecture
Level 1: Ad-Hoc/Custom
– One Instance per
customer
Level 2: Configurable per
customer
Level 3: configurable &
Multi-Tenant-Efficient
Level 4: Scalable,
Configurable & MultiTenant-Efficient
33
Cloud
Taxonomy
Cloud
Service
Taxonomy
34
Some Commercial Cloud Offerings
35