Documente Academic
Documente Profesional
Documente Cultură
CS596-015
An OS for Multicore and
Cloud + Microsoft Azure
Platform
1
Outline
Variability of Demands:
Given the large number of cores; map processes to cores
Elasticity of the Cloud
Programming Challenges:
Resource management must be done by the cloud app
Load balancing is hard in the cloud
No uniform programming model: Intra/Inter-machine
communication
Ease of administration
Transparent sharing
Consistency
Fault tolerance
8
Microkernel:
Messaging, name cache, time multiplexing of cores, API
Messaging:
IPC & synchronization
Each process has number of mailboxes
Naming:
OS Services:
Fleet: spatially distributed, cooperating servers
FS fleet, Naming fleet, Scheduling fleet, Proxy network server
fleet, etc
10
Messaging:
IPC over shared memory or over network
Transparent Intra- and Inter-machine communication
Force programmers to think carefully about the amount of
shared data
11
12
Same VM
Another existing VM
Spawn1 proxy1 proxy2 spawn2
New VM
Create VM, send request to Cloud Manager
Add VM to group, exchange name information, notify all other
machines
Forward spawn request to the new VM
13
14
Xen PVM
Configuration:
16 machine cluster, each has 8 cores running
at 3.16 GHZ, 8 GB RAM, and 1 Gbps Ethernet
15
16
17
18
19
Service is isolation
boundary
Component roles: web
role, worker role, and
other role templates
# of identical instances
of each role
21
22
23
24
Service Bus
It is Microsoft .NET Service Bus
Provides connectivity
Service Bus
between systems
when sharing LAN
In Cloud,
physical
adjacency
is not
guaranteed
Service bus
provides proxy connections when direct connectivity is difficult
25
26
AppFabric Cache
27
29
30
31
32
Typically use Visual Studio to access the Azure platform, which relies
on .NET framework
In addition, Microsoft provides an SDK for Java and Ruby
Ultimately, there is expected to have support to Java, Python, Ruby,
PHP, OpenID, and Eclipse
Of course, more community support available if you are using native
Microsoft implementation. This requires:
The Windows Azure Software Development Kit
Windows Azure Tools for Microsoft Visual Studio
Once the application has been tested locally, it can be uploaded to
Azure using Visual Studio, ad then managed using the Azure
Services Developer Portal; allows you to stage the application before
deployment. User can suspend an instance and resume later
33
END
35