Professional Documents
Culture Documents
Mastering Cloud Computing: Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi
Mastering Cloud Computing: Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi
I cannot invest in
infrastructure, I
just started my
business….
I have infrastructure
and middleware and I
can host applications
I want to focus on
application logic and
not maintenance and
Global Cloud Marketplace
scalability issues
I have infrastructure
and provide
application services
Public Clouds
Applications
Development and
Runtime Platform
Compute
Cloud
Storage
Manager
Private
Clients
Cloud
Other Govt.
Cloud Services Cloud Services
10
Public Clouds
Applications
Applications
Development
Developmentand
and
Runtime
RuntimePlatform
Platform
Compute
Compute
All Storage
Storage
Allusers,
users, on
onany
anydevice
device
Cloud
CloudManager
Manager
Private
PrivateResources
Resources
Organization
OrganizationPersonnel
Personnel Government
GovernmentAgencies
Agencies
Cloud Deployment Models
IInntte GGrreeen
Pay
Pay as
as you
you go
go errnne PPaaaaSS en ccoom
mppuutitin
ett ngg
IIaaaaSS
Billing
Billing
mppuutitinngg
o
y cco m
L eevveell UUtitilliitty
Elasti g e L
city o u
uttssoouurrcciinng i c e
SSeerrvvic meenntt
IITT o AAggrreeeem
i r
rtuuaall rss
t
y IT VVi nntteer
bilit IT outsourcing
outsourcing accee
l a
Sca DDaatta
PPrriivvaacy
cy &
& TTrruusstt
s iioonniinngg
ii s
PPrroovv em m aanndd Security
d e Cloud
oonn d Cloud
n
r t u
uaalliizzaatitioon Computing?
Computing?
VViirt
Web 2.0 Software as a Service
Interfaces End
End user
user applications
applications
Scientific
Scientific applications
applications
Office
Office automation,
automation, Photo
Photo editing,
editing,
CRM,
CRM, and
and Social
Social Networking
Networking
Examples:
Examples: Google
Google Documents,
Documents, Facebook,
Facebook, Flickr,
Flickr, Salesforce
Salesforce
Platform as a Service
Runtime
Runtime Environment
Environment for
for Applications
Applications
Development
Development and
and Data
Data Processing
Processing Platforms
Platforms
Examples:
Examples: Windows
Windows Azure,
Azure, Hadoop,
Hadoop, Google
Google AppEngine,
AppEngine, Aneka
Aneka
Infrastructure as a Service
Virtualized
Virtualized Servers
Servers
Storage
Storage and
and Networking
Networking
Examples:
Examples: Amazon
Amazon EC2,
EC2, S3,
S3, Rightscale,
Rightscale, vCloud
vCloud
2010: Microsoft
1970: DARPA’s TCP/IP 1999: Grid Computing Azure
Clusters
Mainframes
High
Highspeed
speednetwork
networkconnection
connection
Applications
User interface for presentation
Distributed System Stack
Middleware
Support for heterogeneous resource sharing, communication, and
programming environments for application development
Operative System
Execution platform including network connectivity services
Hardware
Computer and network hardware
MPI
MPI Programming,
Programming, JMS,
JMS,
MSMQ, MQS
MSMQ, MQS
Message
Message Based
Based
Communication
Communication
Paradigms
Paradigms //
Architectural
Architectural
Models
Models
Architectures
Applications
Architectures
Compilers
1940 1950 1960 1970 1980 1990 2000 2010 2020 2030
Instruction
Instruction
Stream
Stream
Data
Data Input
Input Data
Data Output
Output
Processor
Processor
Single
Single Instruction
Instruction Stream
Stream
Data
Data Input
Input 11 Data
Data Output
Output 11
Processor
Processor 11
Data Data
Data Output
Output 22
Data Input
Input 22
Processor
Processor 22
Data Data
Data Output
Output N
N
Data Input
Input N
N
Processor
Processor N
N
Instruction
Instruction Instruction
Instruction Instruction
Instruction
Stream
Stream 11 Stream
Stream 22 Stream
Stream NN
Stream
Output Stream
Stream
Input Stream
Processor
Processor 11
Data Output
Data Input
Single Data
Single Data
Processor
Processor 22
Single
Single
Processor
Processor N
N
Instruction
Instruction Instruction
Instruction Instruction
Instruction
Stream
Stream 11 Stream
Stream 22 Stream
Stream NN
Data
Data Input
Input 11 Data
Data Output
Output 11
Processor
Processor 11
Data
Data Input
Input 22 Data
Data Output
Output 22
Processor
Processor 22
Data
Data Input
Input N
N Data
Data Output
Output 33
Processor
Processor N
N
Cache
Cache L1
L1 Cache
Cache L1
L1
Core 2
Shared Shared
function f1() Memory function f2() function fJ()
Memory Medium
{…} {…} {…} Medium Level
Level
Function 1 Function 2 Function J (Threads,
(Threads, Functions)
Functions)
Very
Very Fine
Fine Level
Level
(Cores,
(Cores, Pipeline,
Pipeline,
+ x load Instructions)
Instructions)
Frameworks
Frameworks forfor Applications
Applications
distributed
distributed
programming
programming
Middleware
Middleware
IPC
IPC primitives
primitives for
for
control and data.
control and data.
Operating
Operating System
System
Networking
Networking and
and
Parallel
Parallel Hardware
Hardware
Hardware
Hardware
Social
Social Networks,
Networks,
Scientific
Scientific Computing,
Computing,
Enterprise Applications
Enterprise Applications
Applications
Applications (SaaS)
(SaaS)
Frameworks
Frameworks for
for
Cloud Application
Cloud Application
Development
Development
Middleware
Middleware (PaaS)
(PaaS)
Virtual
Virtual hardware,
hardware,
networking,
networking, OSOS images,
images,
and
and storage.
storage.
Hardware
Hardware and
and OS
OS (IaaS)
(IaaS)
Client-server
request
request
Two
Two Tier
Tier
(Classic Model)
(Classic Model)
client
client response server
response server
Three
Three Tier
Tier
client
client Server/client server
server
Server/client
NN Tier
Tier
server
server
client
client Server/client Server/client
Server/client
Server/client
server
server
P2P
peer
peer
peer
peer
peer
peer
peer
peer
peer
peer
peer
peer
peer
peer
RPC
Node
Node AA Node
Node BB
Procedure
Procedure AA Procedure
Procedure C:Node
C:Node BB
Procedure
Procedure CC
Procedure
Procedure BB RPC
RPC Library
Library RPC
RPC Service
Service
Program
Program AA (RPC
(RPC Client)
Client) Program
Program CC (RPC
(RPC Server)
Server)
Parameters
Parameters Marshaling
Marshaling Return
Return Value
Value Parameters
Parameters Unmarshaling
Unmarshaling Return
Return Value
Value
and
and Procedure
Procedure Name
Name Unmarshaling
Unmarshaling and
and Procedure Name
Procedure Name Marshaling
Marshaling
Network
Network
DOF interaction
Node
Node AA Node
Node BB
Application
Application BB
21
21
10
10 16
16
Instance Remote
15
15
Instance
5:
5: Object
Object
1:
1: Ask
Ask for
for Object
Object
Object Proxy
Proxy Object Skeleton
Skeleton Activation
Activation
Reference
Reference
99 11
11 20
20 17
17 14 66 44
14
Remote
Remote Reference
Reference Module
Module Remote
Remote Reference
Reference Module
Module
Application
Application AA
88 12
12 77
13
13
22 19
19 18 33
18
Network
Network
Web
Web WSDL(s)
WSDL(s) Web
Web Service
Service
Server
Server
see
s p
poonns )
WS
WS Client
Client RRees SSDDLL) UDDI
UDDI Registry
Registry
((W
W Web
Web WSDL
WSDL
Server
Server
Application
Application QQuueerryy
IInn
vvoo
ccaa
Web
Web Service
Service
titio
onn
WSDL
WSDL
WS
WS Client
Client
Application
Application
Application
Application
WS technology Stack
WSFL Web
WSFL Web Service
Service Flow
Flow
Static
Static UDDI
UDDI Service
Service Discovery
Discovery
Service
of Service
Direct
Direct UDDI Service
Service Publication
Management
UDDI Publication
Management
Quality of
Security
WSDL Service
Service Description
Security
WSDL Description
Quality
SOAP
SOAP XML-based
XML-based Messaging
Messaging
HTTP,
HTTP, FTP,e-mail,
FTP,e-mail, MQ,
MQ, IIOP,
IIOP, ….
…. Network
Network
SOAP Messages
POST /InStock HTTP/1.1
Host: www.stocks.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: <Size>
<?xml version=“1.0”>
Envelope
Envelope
<soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope”
soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”>
<soap:Header></soap:Header> Header:
Header: Metadata
Metadata &
& Assertions
Assertions
<soap:Body xmlns:m=http://www.stocks.org/stock>
<m:GetStockPrice>
<m:StockName>IBM<m:StockName>
</m:GetStockPrice>
</soap:Body>
Body:
Body: Method
Method Call
Call
</soap:Envelope>
SOAP Messages
POST /InStock HTTP/1.1
Host: www.stocks.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: <Size>
<?xml version=“1.0”>
Envelope
Envelope
<soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope”
soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”>
<soap:Header></soap:Header> Header:
Header: Metadata
Metadata &
& Assertions
Assertions
<soap:Body xmlns:m=http://www.stocks.org/stock>
<m:GetStockPriceResponse>
<m:Price>34.5<m:Price>
</m:GetStockPriceResponse>
</soap:Body>
Body:
Body: Execution
Execution Result
Result
</soap:Envelope>
Chapter 3 – Virtualisation
Virtual
VirtualImage
Image Applications
Applications Applications
Applications
Guest
Guest
Virtual
VirtualHardware
Hardware Virtual
VirtualStorage
Storage Virtual
VirtualNetworking
Networking
Virtualization
Virtualization Layer
Layer
Software
Software Emulation
Emulation
Host
Host Physical
PhysicalHardware
Hardware Physical
PhysicalStorage
Storage Physical
PhysicalNetworking
Networking
Applications
Application
Application-- level
level
Virtualization
Virtualization
Programming Languages
Execution Stack
Programming
Programming
Language
Languagelevel
level
Virtualization
Virtualization
Operative Systems
OS-
OS- level
levelVirtualization
Virtualization
Hardware
Hardware
Hardware-- level
level
Virtualization
Virtualization
Virtual
Virtual
Resources
Resources
Physical
Physical
Resources
Resources
How
How itit isis done?
done? Technique
Technique Virtualization
Virtualization Model
Model
Emulation
Emulation Application
Application
Execution
Execution Programming
Programming
Process
Process Level
Level High-Level
High-Level VM
VM
Environment
Environment Language
Language
Storage
Storage Operating
Operating
Multiprogramming
Multiprogramming System
System
Virtualization
Virtualization
Network
Network Hardware-assisted
Hardware-assisted
Virtualization
Virtualization
Full
Full Virtualization
Virtualization
System
System Level
Level Hardware
Hardware
…. Paravirtualization
Paravirtualization
….
Partial
Partial Virtualization
Virtualization
Applications Applications
Applications
API calls
API
API
Libraries
Libraries Libraries
Libraries
ABI
ABI System calls User
User ISA
Operative
OperativeSystem
System Operative
OperativeSystem
System ISA
ISA ISA
ISA
Hardware
Hardware Hardware
Hardware
Least privileged mode
(user mode)
Ring 3
Privileged modes
Ring 2
Ring 1
Ring 0
Virtual Image
Storage
VMM Host
Hostemulation
emulation
Virtual Machine
binary
binary translation
translation
instruction
instructionmapping
mapping
interpretation
interpretation
……
……
Host
VM
VM VM
VM VM
VM VM
VM
ISA
ISA
Virtual
VirtualMachine
MachineManager
Manager
VM
VM VM
VM VM
VM VM
VM
ABI
ABI ISA
ISA
Operative
OperativeSystem
System Virtual
VirtualMachine
MachineManager
Manager
ISA
ISA ISA
ISA
Hardware
Hardware Hardware
Hardware
Virtual
VirtualMachine
MachineInstance
Instance
ISA
ISA
Instructions (ISA)
Interpreter
Interpreter
Interpreter
Dispatcher
Dispatcher Interpreter
Routines
Routines
Routines
Routines
Allocator
Allocator
Virtual
Virtual Machine
Machine Manager
Manager
Privileged Instructions
Sensitive Instructions
User Instructions
VM
VM
VM
VM VM
VM VM
VM VM
VM VM
VM
Virtual
VirtualMachine
MachineManager
Manager
Server
Server AA Server
Server BB
(running)
(running) (running)
(running)
Before
Before Migration
Migration
VM
VM VM
VM VM
VM
VM
VM VM
VM VM
VM
Virtual
VirtualMachine
MachineManager
Manager
Server
Server AA Server
Server BB
(running)
(running) (inactive)
(inactive)
After
After Migration
Migration
User
UserApplications
Applications
(unmodified
(unmodifiedABI)
ABI)
Management
ManagementDomain
Domain(Domain
(Domain0)
0)
••VM
VMManagement
Management
••HTTP
HTTPinterface
interface Ring 3
••Access
Accesstotothe
theXen
XenHypervisor
Hypervisor User
UserDomains
Domains (Domain
(Domain U)
U)
Ring 2 ••Guest
GuestOS
OS
Ring 1 ••Modified
Modified codebase
codebase
••Hypercalls
Hypercallsinto
into Xen
XenVMM
VMM
Ring 0
Privileged
instructions
Xen
Xen Hypervisor
Hypervisor (VMM)
(VMM)
••Memory management
Memory management
••CPU
CPUstate
stateregisters
registers
••Devices
DevicesI/O
I/O
Hardware
trap
Hardware
Hardware (x86)
(x86)
User
UserApplications
Applications
Ring 3 (unmodified
(unmodifiedABI)
ABI)
Ring 2
Ring 1
Guest
Guest Operating
OperatingSystem
System
Ring 0 ••Unmodified
Unmodifiedcodebase
codebase
••VMM
VMMunaware
unaware
Hypervisor
Hypervisor
••Binary
Binarytranslation
translation
••Instruction
Instructioncaching
caching
Hardware trap
Dynamic / cached translation (sensitive
(sensitive instructions) instructions)
Hardware
Hardware (x86)
(x86)
I/O User
User Applications
Applications
Guest
GuestOperating
OperatingSystem
System
User
UserApplications
Applications VMware
VMware
Workstation
Workstation Virtual
VirtualMachine
MachineInstance
Instance
Host
Host Operating
OperatingSystem
System VMware
VMwareHypervisor
Hypervisor(VMM)
(VMM)
••Direct
Direct access tohardware
access to hardware
VMware
VMware ••I/O,
I/O, memory,
memory,networking
networkingfor
forguests
guests
Driver
Driver ••Save/Restore
Save/Restore CPU state forhost
CPU state for hostOS
OS
Hardware
Hardware (x86)
(x86)
serverd
serverd
(daemon)
(daemon) VMware
VMware
VMware
VMware
Web
Web
Server
Server VMware
VMware VM
VMInstance
Instance VM
VMInstance
Instance VM
VMInstance
Instance
Host
Host Operating
OperatingSystem
System VMware
VMwareHypervisor
Hypervisor(VMM)
(VMM)
••Direct access to hardware
Direct access to hardware
VMware
VMware ••I/O,
I/O, memory,
memory,networking
networking for
forguests
guests
Driver
Driver ••Save/Restore
Save/RestoreCPU
CPUstate
statefor
forhost
hostOS
OS
Hardware
Hardware (x86)
(x86)
CIM
CIM vxpa
vxpa SNMP
SNMP
broker
broker VM VM VM
VM VM VM
hostd
hostd DCUI
DCUI syslog
syslog VMX
VMX VMX
VMX VMX
VMX
Third-party
Third-party
CIM
CIMplug-ins
plug-ins
User VMM
VMM VMM
VMM VMM
VMM
Userworld
world API
API
Distributed
DistributedVMVM Virtual
VirtualEthernet
Ethernet
file
filesystem
system adapter
adapterand
andswitch
switch
Resource Storage
Storagestack
stack Network
Network stack
stack
Resource
scheduling
scheduling
VMkernel
VMkernel Device
Devicedrivers
drivers
Hardware
Hardware
Application
Application
Zimbra
Zimbra Virtualization
Virtualization
Platform
Platform
vFabric
vFabric Virtualization
Virtualization
vCloud
vCloud
vCenter
vCenter vCenter
vCenter
Infrastructure
Infrastructure
vSphere
vSphere vSphere
vSphere vSphere
vSphere vSphere
vSphere Virtualization
Virtualization
ESXi
ESXi ESXi
ESXi ESXi
ESXi ESXi
ESXi
ESX
ESX ESX
ESX ESX
ESX ESX
ESX
Server
Server Server
Server Server
Server Server
Server
Data
DataCenter
Center Data
Data Center
Center
Cloud
Cloud
VMWPs
VMWPs
User
UserApplications
Applications User
UserApplications
Applications User
UserApplications
Applications
(Ring
(Ring3)
3) (Ring
(Ring3)
3) (Ring
(Ring 3)
3)
VMMS WMI
VMMS WMI
Hypervisor-aware
Hypervisor-aware Hypervisor-aware
Hypervisor-aware Hypervisor-aware
Hypervisor-aware Hypervisor-unaware
Hypervisor-unaware
Kernel
Kernel(Ring
(Ring0)
0) Wndows
WndowsKernel
Kernel(Ring
(Ring0)
0) Linux
LinuxKernel
Kernel(Ring
(Ring0)
0) Kernel
Kernel(Ring
(Ring0)
0)
VSPs
VSPs VID
VID VSCs
VSCs//ICs
ICs VSCs
VSCs//ICs
ICs
WinHv
WinHv WinHv
WinHv LinuxHv
LinuxHv
I/O
I/O I/O
I/O I/O
I/O
Stack
Stack
Drivers
Drivers Latest Pictures.
Stack
Stack
Drivers
Drivers
Stack
Stack
Drivers
Drivers
VMBus
VMBus VMBus
VMBus VMBus
VMBus
Root
Root//Parent
ParentPartition
Partition Enlightened
Enlightened Child
Child Partition
Partition Enlightened
Enlightened Child
ChildPartition
Partition Unenlightened
Unenlightened Child
ChildPartition
Partition
Hypervisor
Hypervisor Address
Address Partition
Partition
Hypercalls
Hypercalls MSRs
MSRs APIC
APIC Scheduler
Scheduler
(Ring
(Ring -1)
-1) Management
Management Management
Management
Hardware
Hardware (x86)
(x86) Processor Memory
Chapter 4 – Cloud Computing Architecture
Pure SaaS
Cloud Applications
SaaS
User
User
Applications
Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs
Autonomic
Autonomic Cloud
User-level
User-level Web
Web 2.0,
2.0, Mashups,
Mashups, Concurrent
Concurrent and
and Distributed
Distributed Programming,
Programming,
Adaptive
Adaptive Management
Middleware
Middleware
Workflows
Workflows ,, Libraries,
Libraries, Scripting
Scripting
Management
Cloud Economy
QoS
QoS Negotiation,
Negotiation, Admission
Admission Control,
Control, Pricing,
Pricing, SLA
SLA Management,
Management,
IaaS (M)
Monitoring,
Monitoring, Execution
Execution Management,
Management, Metering,
Metering, Accounting
Accounting
Economy
Core
Core
Middleware
Middleware
Virtual
Virtual Machine
Machine (VM),
(VM), VM
VM Management
Management and
and Deployment
Deployment
Cloud Resources
System
System
Infrastructure
Infrastructure
Web based Management Interface
Web
Web Services,
Services, Portals,
Portals, REST
REST API
API
Pricing
Pricing // Billing
Billing QoS
QoS SLA
SLA Management
Management Scheduling
Scheduling
Provisioning
Provisioning
Monitoring
Monitoring Reservation
Reservation VM
VM Image
Image Repository
Repository VM
VM Pool
Pool Management
Management
Physical Infrastructure
Desktop
Desktop //
Datacenter
Datacenter Cluster
Cluster Heterogeneous
Heterogeneous Resources
Resources Third Party IaaS Cloud
Web based Interface
Web
Web Services,
Services, Portals,
Portals, REST
REST API
API Programming
Programming API
API // Libraries
Libraries
User
User
Elasticity
Elasticity &
& Management
Management
Scaling
Scaling
Application
Application
Runtime
Runtime Management
Management
QoS
QoS // SLA
SLA Management
Management &
&
Resources
Resources Management
Management Billing
Billing
DataSynapse,
DataSynapse, Zimory
Zimory Pools,
Pools,
Elastra
Elastra CloudServer,
CloudServer, Aneka,
Aneka, ….
….
Private Public
Public Cloud
Cloud
Private Cloud
Cloud
Paas
Dynamic
Provisioning
IaaS (M)
Public
Public Cloud
Cloud
Datacenter
Datacenter Cluster
Cluster Desktop
Desktop Grids
Grids //
NOWs
NOWs
Community
Community Cloud
Cloud
Infrastructure Application
Application
Services
Services
33rdrd Party
Party Cloud
Cloud
Public
Public Cloud
Cloud
Development
Development Private
Private Cloud
Cloud
Platforms
Platforms
Public
Public Cloud
Cloud Private
Private Cloud
Cloud
Federal
Federal and
and
Government
Government Bodies
Bodies
Private
Private
Users
Users
Industries
Industries
Enterprises
Enterprises
Public
Public Services
Services
Chapter 5 – Aneka: Cloud Application Platform
Multiple Applications
1. SDK
Aneka
2. Runtime
Multiple Infrastructures
Distributed
Distributed Threads
Threads
MapReduce
MapReduce
other
other models…
models…
Persistence
Persistence and
Foundation Services
Billing
Billing &
& Reporting
Reporting
Resource
Resource Reservation
Reservation
and Security
Storage
Storage
Security
Licensing
Licensing &
& Accounting
Accounting
Fabric Services
Dynamic
Dynamic Resource
Resource
Provisioning
Provisioning
Hardware
Hardware Profiling
Profiling
Infrastruscture
ECMA
ECMA 334:
334: .NET
.NET or
or Mono
Mono // Windows,
Windows, Linux,
Linux, &
& Mac
Mac
Enterprise
Enterprise Desktop
Desktop Grid
Grid Data
Data Centers
Centers Clusters
Clusters Public
Public Cloud
Cloud
HTTP
HTTP
File
File Share
Share
……
……
Aneka
Aneka Repository
Repository
te
upda
Node
Node Node
Node
Manager
Manager Manager
Manager
Aneka
Aneka Aneka
Aneka
Containers
Containers Containers
Containers
Node
Node
Manager
Manager
Aneka
Aneka
Containers
Containers
Node
Node
Manager
Manager
Aneka
Aneka
Management
Management Containers
Containers
Console
Console
100%
90%
Infrastrucutre Overhead 80%
70%
60%
50%
40%
30%
20%
10%
0%
1 2 4 8 16 32 64 128 200
Number of Resources
600 1000
500
(minutes: decimal scale)
300
200 10
Time
Time
100
0 1
1 2 4 8 16 32 64 128 200 1 2 4 8 16 32 64 128 200
Number of Resources Number of Resources
Ideal Execution Time Actual Execution Time Ideal Execution Time Actual Execution Time
35 100%
90%
30
80%
Infrastructure Overhead (m)
Infrastrucutre Overhead
25 70%
60%
20
50%
15 40%
10 30%
20%
5
10%
0 0%
1 2 4 8 16 32 64 128 200 1 2 4 8 16 32 64 128 200
Number of Resources Number of Resources
Middleware - Container
Application Services
Persistence
Distributed
Distributed Threads MapReduce Bag
Bag of
of Tasks PSM Other
Other models…
Persistence &
Threads MapReduce Tasks PSM models…
Foundation Services
Storage
Storage Resource
Resource Reservation
Reservation Billing
Billing &
& Reporting
Reporting Licensing
Licensing &
& Accounting
Accounting
& Security
Security
Fabric Services
High-Availability
High-Availability Resource
Resource Provisioning
Provisioning Hardware
Hardware Profiling
Profiling Membership
Membership
Infrastruscture
ECMA
ECMA 334:
334: .NET
.NET or
or Mono
Mono // Windows,
Windows, Linux,
Linux, &
& Mac
Mac
Enterprise
Enterprise Desktop
Desktop Grid
Grid Data
Data Centers
Centers Clusters
Clusters Public
Public Cloud
Cloud
Index (master) Index (master) Index (slave)
Scheduling Scheduling
Storage
Accounting Failover Accounting
Mandatory
Reporting Reporting
Reservation Storage
Storage Node
Node
Reservation
Provisioning Provisioning
Mandatory Mandatory
Master
Master Node
Node Index (slave)
Storage
Mandatory
Storage
Storage Node
Node
Worker
Worker Node
Node Worker
Worker Node
Node Worker
Worker Node
Node
Amazon EC2
Master Node
Reporting, Billing,
Accouting
AWS
AWS
Task Execution
Service
Static
Static Resources
Resources
QoS
Aneka Hybrid
Cloud
High
Performance Public
and QoS
Public Clouds
Clouds
Application Provisioning
Management & Scheduling Service
Desktops
Desktops &
& Workstations
Workstations Cluster
Cluster Resources
Resources
Master Node
Resource
Provisioning
Application
Management & Resource
Scheduling Reservation
Virtual
Virtual Clusters
Clusters
Desktop
Desktop Machines
Machines
Workstations
Workstations Clusters
Clusters
Master Node
Slave Nodes
Reporting,
Billing, Accouting
Application
Management & Resource
Scheduling Provisioning
Amazon
Amazon EC2
EC2 Instances
Instances
Amazon
Amazon EC2
EC2 Instance
Instance
EC2 Boundaries
Local
Local Infrastructure
Infrastructure
Master Node
Provisioning
Reporting, Billing, Accouting Service
Application Resource
Management & Scheduling Reservation
Desktops
Desktops &
& Workstations
Workstations Clusters
Clusters Virtual
Virtual Cluster
Cluster Resources
Resources
Unknown Initialized
IService.Start()
Starting
Pausing
<Error> IService.Pause()
Running Paused
Resuming
IService.Continue()
IService.Stop() Stopping
Stopped
Chapter 6 – Concurrent Computing: Thread Programming
To Memory
Cache
Cache L1
L1 Cache
Cache L1
L1 Cache
Cache L1
L1
Main
Main Thread
Thread
Thread
Thread Local
Local
Storage
Storage
Execution
Instructions
Instructions
(program
(programcounter)
counter)
Thread
Thread
Thread
Thread
Thread
Thread
Process
Result
a. Embarrassingly parallel
Units of work
Process
Result
b. Inherently sequential
B 6x3
A 4x6 C 4x3
2 2,1
1
Units of work
Process
Unit 1 Unit 2 Result
Unit 3 Unit 4
Unit 5
Unstarted Unstarted
Start()
Start()
Staging Completed
Out
Middleware
Remote
Environment
Local Node
Computing
Nodes
MPI_COMM_WORLD
2 8
0
1 10
9
7
6
4
3 5 11
0 7 4 8
5
Group A 11 1
10 Group B
3 9 2 6
2 1 5 2 0
0
4
3 6 4 3
1
Communicator A Communicator B
MPI
MPI Include
Include File
File
Header
Header
Section
Section
Prototypes
Prototypes declaration
declaration
Do
Do Work
Work Serial
Serial Code
Code
MPI
MPI Environment
Environment Initialization
Initialization
Code
Code Do Parallel
Parallel
Do Work
Work and
and Message
Message
Section
Section Passing Code
Code
Passing
MPI
MPI Environment
Environment Shutdown
Shutdown
Do
Do Work
Work Serial
Serial Code
Code
Users
Users
Workflow
Workflow
Design
Design && Workflow
Workflow Application
Application Modeling
Modeling &
& Definition
Definition Tools
Tools
Definition
Definition
Information Services
Interaction
Interaction with
with Middleware
Middleware Supporting
Supporting Clusters,
Clusters, Grids,
Grids, and
and Clouds
Clouds
Distributed
Distributed
Resources
Resources
Distributed
Distributed Computing
Computing Resources
Resources
StorageService
StorageService
TaskScheduler
TaskScheduler
AnekaApplication TaskManager
Index
Task1
Task1 :: ITask
ITask Node
AnekaTask
AnekaTask
Task2
Task2 :: ITask
ITask
AnekaTask
AnekaTask Membership
Membership
(… more tasks) Catalogue
Catalogue TaskExecution
TaskExecution
Service
Service
Aneka Cloud
Local Node
File
File dependencies
dependencies
Result
Result Files
Files
Input/Output
Input/Output
Files
Files
Remote FTP
Client Machine
StorageService
StorageService
TaskScheduler
TaskScheduler
Web Service
Index
Node
TaskManager
Membership
Membership
Catalogue
Catalogue TaskExecution
TaskExecution
AnekaTask
AnekaTask
Service
Service
Aneka Cloud
AnekaTask
AnekaTask
PSMParameterInfo
PSMParameterInfo PSMContext
PSMContext
PSMCommandInfo
PSMCommandInfo PSMFileInfo
PSMFileInfo
PSM
PSM Model
Model
PSMJobInfo
PSMJobInfo
IJobManager
IJobManager
PSM
PSM Model
Model ITask
ITask
AnekaTask
AnekaTask
TaskManager
TaskManager
Aneka
Aneka
Application
Application AnekaApplication<AnekaTask,
AnekaApplication<AnekaTask, TaskManager>
TaskManager>
Model
Model
Offspring Environment
IOffspringPlugin
IOffspringPlugin
DefaultPlugin
DefaultPlugin
AutoPlugin AppInstance
AppInstance
LogPlugin
LogPlugin AutoPlugin
Strategy
Strategy IDistributionEngine
IDistributionEngine
Controller
Controller
DistributionEngineBase
DistributionEngineBase
ITaskStrategy
ITaskStrategy
Local
Local AnekaEngine
AnekaEngine
Engine
Engine
TaskStrategyBase
TaskStrategyBase
TaskManager
TaskManager
Aneka Cloud
Workflow
Workflow Workflow
Workflow
Logic
Logic 11 Logic
Logic NN
StrategyController
Control
Control Thread
Thread Monitoring
Monitoring Thread
Thread
(Strategy
(Strategy Management)
Management) (Feedback
(Feedback from
from Distribution
Distribution Engine)
Engine)
Init
Init Application
Application Task
Task
Feedback
Feedback
Init
Init Strategy
Strategy
Task Failed?
Submit
Submit Tasks
Tasks No Yes
Wait
Wait Invoke
Invoke OnSuccess
OnSuccess Invoke
Invoke OnFailed
OnFailed
Data
Data Data/compute
Data/compute
intensive
intensiveproblems
problems intensive
intensiveproblems
problems
Data
DataComplexity
Complexity
(volume/format/distribution)
(volume/format/distribution)
Compute
Compute
Current
CurrentProblems
Problems intensive
intensiveproblems
problems
Homogeneous
HomogeneousFormats
Formats
Non-distributed
Non-distributed
Megabytes
Megabytesor
orGigabytes
Gigabytes
Model
ModelSolvers
Solvers Computational
Computational Statistical
StatisticalModels
Models
Simulations
Simulations Complexity
Complexity Decision
Decisionsupport
support
Simple
Simplesearch
search Knowledge
Knowledgegeneration
generation
Storage
Facility
Information Storage
Instrument & Discovery Facility
Scientist
Storage
Facility
Compute Site
Compute Site
Key
Key Ring
Ring
Storage
Storage Peer
Peer
Storage
Storage Peer
Peer
Request
Request
Coordinator
Coordinator Storage
Storage Peer
Peer
Pluggable
Pluggable Storage
Storage Failure
Failure and
and Membership
Membership
Engine
Engine (BDB,
(BDB, MySQL)
MySQL) Detection
Detection
Storage
Storage Peer
Peer
Storage
Storage Peer
Peer
Storage
Storage Peer
Peer
Tablet
Tablet Server
Server
Tablet
Tablet Server
Server Tablet
Tablet Server
Server
Master
Master Server
Server Tablet
Tablet Server
Server
Tablet
Tablet Server
Server Tablet
Tablet Server
Server
Logs
Logs
Logs
Logs
Chubby
Chubby
Tablet
TabletFiles
Files
Tablet
TabletFiles
Files Logs
Logs
Logs Logs
Tablet Tablet
TabletFiles
Files
TabletFiles
Files GFS
GFS
MapReduce Infrastructure / Runtime
Distributed File System
Map Input
InputData
Data
Map File
File
Task
Task
Input
InputData
Data
File
File
Reduce
Reduce Map
Map
Output
OutputData
Data Task
Task Task
Task Input
InputData
Data
File
File
File
File
Output
OutputData
Data Map
Map Input
InputData
Data
File
File Task
Task File
File
Input
InputData
Data
Map
Map File
File
Task
Task
Input
InputData
Data
Output
OutputData
Data File
File
File
File
Reduce
Reduce
Task
Task
Map
Map
Input
InputData
Data
Task
Task
Output Aggregation by Key Input File
File
User
User Program
Program
(1) fork
(1) fork
(1) fork
Master
Master
Worker
Worker (6) write
Output
Output
Split
Split00 (4) local Worker
Worker File
File00
Split
Split11 (3) read write
Worker (5) remote read
Split
Split22 Worker
Split
Split33 Output
Output
Split
Split44 Worker
Worker File
File11
Worker
Worker
intermediate
input files map phase files reduce phase output files
Input
Input Input
Input Input
Input Input
Input
File
File File
File File
File File
File
RR RR RR RR Stage
XX XX XX XX XX XX
M
M M
M M
M M
M
Channels Vertices
(processes)
M
M M
M
Output
Output Output
Output
File
File File
File
Aneka Cloud
Split
Split00
Split
Split11
Split
Split22
Split
Split33
Map
Map Reduce
Reduce
Split
Split44
Output
Output Task
Task Task
Task
File
File00 intermediate files MapReduce
MapReduce
Execution
Execution Service
Service
Output
Output
File
File11
Reducer
Reducer Mapper
Mapper MapReduce
MapReduce
Scheduling
Scheduling Service
Service
MapReduceApplication
MapReduceApplication
Input
InputData
Data File
File Input
InputData
Data File
File
Input
InputData
Data File
File Input
InputData
Data File
File
Client Machine
MapReduceSchedulerService
Message translation
and Event Triggering
MapReduceScheduler
DFS Implementation
MapReduceExecutorService
Message translation
and Event Triggering
ExecutorManager
MapReduceExecutor MapReduceExecutor
Reduce
Reduce Task
Task Map
Map Task
Task
DFS Implementation
Header:
Header: 33 bytes
bytes magic
magic
number, 1 byte version
number, 1 byte version
…….
Record
Record Block:
Block:
Integer
Integer (4
(4 bytes)
bytes)
Length
Length of the block
of the block
Integer
Integer (4
(4 bytes)
bytes) Key
Key byte
byte array
array Value
Value byte
byte array
array
Length
Length of the key
of the key
SKIPPED, 62%
DEBUG
INFO, 22% ERROR
INFO
SKIPPED
WARN
ERROR, 4%
DEBUG, 12% WARN, 0%
189439
76895
54878 55523
re se se til er m ice e e r e D e r e r
Sto Ba Ba onU tain r ith erv r vic logu ndle r vic PPE r vic erve r vic dule
e e I e e
tio
n hm ithm rati n go tS gS Cata eH
a gS SK S PS S
ge kSch
e
ca o r it o r u Co gAl b ea lin p ag nin u ler FT r a
li fig i
pp Al
g lg in rt du h es
s io ed Sim Sto Ta
s
A o nA Con si on H ea che bers M o vis Sch
o isi vi tS Pr
Ad ov P ro d en Mem r ce
r y
eP rit en ou
w ar r io dep R es
A eP In
tion lin
lic
a ad
pp De
A
User
Large
ECG
ECG Sensor
Sensor Number
Embedded
Embedded Bluetooth
Bluetooth
w)
1 Enabled
Enabled d vie
le
Data
Data Communication &
Communication & tai
(de
User Requests
User Requests
Processor
Processor Module
Module
ECG
ECG Sensor
Sensor Module
Module
SaaS
User Requests
Bluetooth connectivity
ECG
ECG Data
Data Analysis
Analysis
as
as a Service
Service
2
Dynamically
Dynamically Scalable
Scalable
PaaS
4 Runtime
Runtime Security
Security
(QoS-based
(QoS-based scaling
scaling of
of Runtime
3 computing resources)
computing resources)
6 5
Jeeva Portal
Aneka
Task Graph
A A : BLAST
B : Create Data Vector
Initial Phase
B C : HH Classifier
D : SS Classifier
E : TT Classifier
Classification F : HS Classifier
Phase C D E F G H G : ST Classifier
H : TH Classifier
Amazon
Amazon AWS
AWS Platform
Platform
Data Store
Web App
Web App Web App Web App Url Fetch
Image Manipulation
Task Queue
Sandboxed Runtime
Environment Sandboxed Runtime Environment Cron Jobs
Python
Python SDK
SDK
Google
Google AppEngine
AppEngine Infrastructure
Infrastructure
Local
Local Machine
Machine
Development
Development Runtime
Runtime
Windows Azure Platform
Management portal
Content Delivery
Network (CDN)
re
AppFabric
Caching
Performance
Enterprise
Enterprise Level
Level Infrastructure
Infrastructure
ODBC ADO.NET
Services Layer
Platform Layer
Infrastructure
Infrastructure Layer
Layer
Chapter 10 – Cloud Applications
Datasets
Cloud-CoXCS
Cloud-CoXCS
(Task
(Task orchestrator)
orchestrator)
CoXCS Tasks
Aneka
Elastic Sizing
(EC2,…, )
Portal (SaaS)
Distribution
Archiving
Local Storage
Aneka
Public Cloud
Private Cloud
Force.com Platform
Metadata
Metadata Multitenant-aware
Pivot
Pivot Tables
Tables
Tables
Tables (UDD)
(UDD) Query Optimiser
Runtime Application
Generator
Data
Data Tables
Tables
Full-text Search
Shared Database Engine
User-base 3:
Application 3
User
EyeOS Server
User
eyeos
apps
User
extern
extras
system
users
Amazon SQS
Render Files
Networked LAN
Scenarios
Gamer Log
Log
Processing
Processing Task
Task
Game Server
Automatic
synchronization
Power
Consumption
ti oonn
loluuti
o
Reducing
Reducing Power
Power Cost
Cost and
and
SS Maximizing
Maximizing Revenue
Revenue
d
d
lloouu
CC
nn
r
reeee
GG
Reducing
Reducing Power
Power Cost
Cost
and
and Carbon
Carbon Emission
Emission
Cloud
Cloud Data
Data Center
Center
VMM
VMM
Pool
Pool Node
Node
Users
Users
Compute
Compute Cloud
Cloud Pool
Pool Node
Node
Brokers
Brokers
Negotiate
Bid Cluster
Cluster (VM
(VM Pool)
Pool)
y
cit
pa
Ca
st
ue
Bank
Bank
q
Directory
Directory
Re
Auctioneer
Auctioneer
Storage
Storage Cloud
Cloud
Enterprise
Enterprise Resource
Resource
Server (Proxy)
Server (Proxy)
Cloud
Cloud Exchange
Exchange
Enterprise
Enterprise IT
IT Consumer
Consumer
Compute
Compute Cloud
Cloud
= Cloud Coordinator Storage
Storage Cloud
Cloud
Market-Oriented
Market-OrientedModels
Models
Allocation
Allocation Application
Application Participant
Participant
Objective
Objective Market
Market Model
Model
Decision
Decision Model
Model Focus
Focus
User
User Resource
Resource System
System
Local
Local Global
Global Profit-based
Profit-based System-based
System-based Hybrid
Hybrid Centric
Centric Centric
Centric Centric
Centric
Bag
Bag of
of Parallel
Parallel Others
Others
Workflow
Workflow
Tasks
Tasks Applications
Applications eg.
eg. Storage
Storage
Game
Game Proportional
Proportional Commodity
Commodity Posted
Posted Contract
Contract
Bargaining
Bargaining Auction
Auction
Theory
Theory Share
Share Market
Market Price
Price Net
Net
Single
Single Double
Double Combinatorial
Combinatorial
Sided
Sided Auction
Auction Auction
Auction
Vickery
Vickery Dutch
Dutch English
English First
First Price
Price
Auction
Auction Auction
Auction Auction
Auction Sealed
Sealed Auction
Auction
Users
Users Brokers
Brokers
Service
Service Request
Request Examiner
Examiner and
and Admission
Admission Control
Control
-- Customer-driven
Customer-driven Service
Service Management
Management
-- Computational
Computational Risk
Risk Management
Management
-- Autonomic
Autonomic Resource
Resource Management
Management
SLA
SLA
Allocator
Allocator
Pricing
Pricing Accounting
Accounting
Service
Service Request
Request
VM
VM Monitor
Monitor Dispatcher
Dispatcher Monitor
Monitor
Virtual
Virtual
Machines
Machines
Physical
Physical
Machines
Machines
Cloud
Cloud Data
Data Center
Center
physics optimization risk analysis 3D rendering
biology modeling banking imaging blogging
teaching
medicine CAD finance photos
ss social
science engineering education business multimedia
networking
Market
Market Maker
Maker
Meta-broker
Meta-broker Other Middlew
Cloudbus Middleware
Workflow
Workflow Engine
Engine
PaaS Ven
Broker
Broker
PaaS Vendor 2
ask Model Thread Model PSM MapReduce
Infrastructural Level
Protocol,
Protocol, Interfaces,
Interfaces, and
and Standards
Standards
Programmatic
Programmatic Interoperation
Interoperation
Federation
Federation Platforms
Platforms (RESERVOIR,
(RESERVOIR, InterCloud)
InterCloud)
Communication is related to Communication is
IMF interface requests internal and proprietary
Provider’s
Provider’s Infrastructure
Infrastructure
Resource
Resource Resources
Resources
Interface
Management
Management Framework
OCCI Interface
Framework
HTTP
OCCI
OCCI
OCCI Clients
Clients
APIs
any channel,
Provider’s APIs
any protocol
Provider’s
Other
Other Clients
Clients
Management
Management of of
the
the Cloud
Cloud Storage
Storage Container
Container
can
can be
be standalone
standalone
Storage
Data // Storage
or
or part
part of
of the
the
overall
overall
management
management of of
Managing Data
your
your Cloud
Cloud Container
Container
of Managing
Data
Data Storage
Storage Cloud
Cloud
Computing
Computing
Draw Resources on Demand
Role of
Storage
Storage Cloud
Cloud Data
Data Management
Management Interface
Interface (CDMI)
the Role
(CDMI)
in the
Acting in
Acting
Data
Data Services
Services
Service
Service Service
ServiceApplication
Application22 Service
ServiceApplication
Application33
Application
Application11
Virtualizer
Virtualizer Virtualizer
Virtualizer Virtualizer
Virtualizer
Computational
Computational Resource
Resource Computational
Computational Resource
Resource Computational
Computational Resource
Resource
VEE Host
VEE Host VEE Host
VEE Host VEE Host
VEE Host
RESERVOIR
RESERVOIR Site
Site 11 RESERVOIR
RESERVOIR Site
Site 22
Service
Service Provider
Provider
manifest
manifest
Service
Service Service
Service
Manager
Manager QoS Service
Service Manager
Manager
Manager
Manager
SLA
SLA SLA
SLA
VEE
VEE Manager
Manager VEE
VEE Manager
Manager VEE
VEE Manager
Manager
(VEEM)
(VEEM) (VEEM)
(VEEM) (VEEM)
(VEEM)
VEE
VEE Hosts
Hosts (e.g.
(e.g.
VEE
VEE Hosts
Hosts VEE
VEE Hosts
Hosts
hypervisor,
hypervisor, VJSC
VJSC Host,
Host, …)
…)
Site
Site AA Site
Site BB Site
Site CC
User
User
User
User
Broker
Broker
User
User
User
User
Interface
Interface
VM
VM Manager
Manager
(e.g.
(e.g. Eucalyptus)
Eucalyptus)
VM
VM Manager
Manager
Cloud
Cloud (e.g.
(e.g. EC2)
EC2)
Coordinator
Coordinator
User
User
Cloud
Cloud Interface
Interface
Coordinator
Coordinator
Cloud
Cloud Exchange
Exchange
Publish / Query User User
User
User
User User
Interface
Offers / Request
Interface
User
User Cloud
Cloud Resource
Coordinator
Coordinator Negotiation
VM
VM Manager
Manager
(e.g.
(e.g. Open Nebula)
Open Nebula)
Coral
Coral CDN
CDN Windows
Windows Azure
Azure
Nirvanix
Nirvanix
Amazon
Amazon S3
S3
Coral
Coral
Azure
Azure
Nirvanix
Nirvanix Connector
Connector
Connector
Connector
Connector
Connector
S3
S3
MetaCDN
MetaCDN Connector
MetaCDN Connector
Database
Database MetaCDN
MetaCDN
MetaCDN Allocator
Allocator
Manager
Manager
XYZ
XYZ
Connector
Connector
MetaCDN
MetaCDN
Load XYZ
XYZ
Load Redirector
Redirector
Web
Web SLA
SLA
Service Access
Service Access
Web
Web Portal
Portal
SLA
SLA
Applications
Applications
Users
Users
SLA
SLA
SLA
SLA Applications
Users
Users Applications
Web
Web
Web
Web Portal
Portal Service
Service Access
Access
MetaCDN
MetaCDN
Load
Load Redirector
Redirector MetaCDN
MetaCDN
Manager
Manager
MetaCDN
MetaCDN MetaCDN
MetaCDN
Database
Database Allocator
Allocator
Nirvanix
Nirvanix Coral
Coral Azure
Azure S3
S3 XYZ
XYZ
Connector
Connector Connector
Connector Connector
Connector Connector
Connector Connector
Connector
Nirvanix
Nirvanix Coral
Coral CDN
CDN Windows
Windows Azure
Azure Amazon
Amazon S3
S3 XYZ
XYZ
Buyers
Buyers Capacity
Capacity Provider
Provider
(Storage) Capacity
Capacity Provider
Provider
(Storage)
(Compute)
(Compute)
SpotCloud
SpotCloud
Connector SpotCloud
SpotCloud
Connector
SLA
SLA Connector
Connector
Deployment
Deployment
Comparative
Comparative
Listing
Listing of
of
QoS
QoS and
andSLA
SLA
Offerings
Offerings Monitoring
Monitoring
Transactions
Transactions Bookkeeping
Bookkeeping
and User
User
and Billing
Billing Engine
Engine
Profiles Database
Profiles Database
VM
VM
Package Repository
Package Repository
SpotCloud
Other Stuff
Index / Map Management
Nodes Management
Infrastructure Management
Storage management
Local caching
Failover master
File lookup forwarding
Slave
Storage management
Local caching
File lookup forwarding
Slave
Storage management
Local caching
File lookup forwarding
Slave
Hierarchical File System Flat File System Raw File System
(Files and Directories) (Files) (Byte stream)
Client
Client 11 Client
Client 22 Client
Client N
N
Failover master
Application-based
Application-based
Storage
Storage Interface
Interface