microsoft azure
DESCRIPTION
Microsoft Azure NotesTRANSCRIPT
![Page 1: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/1.jpg)
Introduction to Windows Azure Cloud Computing Futures Group, Microsoft Research
Roger Barga, Jared Jackson, Nelson Araujo,
Dennis Gannon, Wei Lu, and Jaliya Ekanayake
![Page 2: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/2.jpg)
Range in size from “edge” facilities to megascale.
Economies of scaleApproximate costs for a small size center (1000 servers) and a larger, 100K server center.100K server center.
Each data center is Each data center is
11.5 times 11.5 times
the size of a football fieldthe size of a football field
Technology Cost in small-sized Data Center
Cost in LargeData Center
Ratio
Network $95 per Mbps/month
$13 per Mbps/month
7.1
Storage $2.20 per GB/month
$0.40 per GB/month
5.1
Administration ~140 servers/Administrator
>1000 Servers/Administrator
7.1
![Page 3: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/3.jpg)
![Page 4: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/4.jpg)
![Page 5: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/5.jpg)
![Page 6: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/6.jpg)
A bunch of machines in data centers
Fabric Controller
Owns all data center hardware
Uses inventory to host services
Deploys applications to free resources
Maintains the health of those applications
Maintains health of hardwareMaintains health of hardware
If the node goes offline, FC will try to recover it
If a failed node can’t be recovered, FC migrates role instances to a new node, A suitable replacement location is found, Existing role instances are notified of change
Manages the service life cycle starting from bare metal
Highly-availableFabric Controller (FC)
![Page 7: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/7.jpg)
Up to 7 Guest VMs
At Minimum (Small)CPU: 1.5-1.7 GHz x64
Memory: 1.7GB
Network: 100+
Mbps
An Optimized Hypervisor
A Host Virtual Machine
Up to 7 Guest VMs Mbps
Local Storage: 500GB
Up to (Extra Large)
CPU: 8 Cores
Memory: 14.2 GB
Local Storage: 2+
TB
![Page 8: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/8.jpg)
At MinimumCPU: 1.5-1.7 GHz x64
Memory: 1.7GB
Network: 100+ Mbps
Local Storage: 500GB
Up toUp toCPU: 8 Cores
Memory: 14.2 GB
Local Storage: 2+ TB
![Page 9: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/9.jpg)
Azure PlatformAzure Platform
Compute
Worker RoleWorker Role
Web RoleWeb Role
BlobsBlobs
QueuesQueues
Storage
QueuesQueues
TablesTables
DrivesDrives
![Page 10: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/10.jpg)
Blobs Queues
HTTP
A closer lookA closer look
TablesDrives
…
Fabric
Compute Storage
Application
Access
Data is exposed via .NET and RESTfulinterfaces
Data can be accessed by:
Windows Azure apps
Other on-premise applications or cloud applications
![Page 11: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/11.jpg)
BlobContainerAccount
jaredjaredimagesimages
PIC01.JPGPIC01.JPG
jaredjaredPIC02.JPGPIC02.JPG
moviesmoviesMOV1.AVI
http://jared.blob.core.windows.net/images/PIC01.JPG
![Page 12: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/12.jpg)
Number of Blob ContainersCan have has many Blob Containers as will fit within the storage account limit
Blob ContainerA container holds a set of blobsA container holds a set of blobs
Set access policies at the container level Private or Public accessible
Associate Metadata with ContainerMetadata are <name, value> pairs
Up to 8KB per container
![Page 13: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/13.jpg)
Block Blob Targeted at streaming workloads
Each blob consists of a sequence of blocksEach block is identified by a Block ID
Size limit 200GB per blobSize limit 200GB per blob
Page BlobTargeted at random read/write workloads
Each blob consists of an array of pagesEach page is identified by its offset from the start of the blob
Size limit 1TB per blob
![Page 14: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/14.jpg)
BlobContainerAccount
jaredjaredimagesimages
PIC01.JPGPIC01.JPG
Block or
Page
Block or
Page 1jaredjaredPIC02.JPGPIC02.JPG
moviesmoviesMOV1.AVI
Block or
Page 2
Block or
Page 3
![Page 15: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/15.jpg)
Scalable message paths
Provides loose synchronization
Any number of 2 1
C1
1234
Producers Consumers
P2
3 12Any number of messages
One week of persistence
Maximum size 8KB
Visibility timeout
C2C2P1
![Page 16: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/16.jpg)
Provides Structured Storage
Massively Scalable Tables
Billions of entities (rows) and TBs of data
Can use thousands of servers as traffic grows
Data is replicated several times
Table
A storage account can create many tablesA storage account can create many tables
Table name is scoped by account
Set of entities (i.e. rows)
Entity
Set of properties (columns)
Required properties
PartitionKey, RowKey and Timestamp
![Page 17: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/17.jpg)
Partition 1Partition 1
Partition 2Partition 2
Source : Windows Azure Table – Programming Table Storage
![Page 18: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/18.jpg)
A Windows Azure Drive is a Page Blob formatted as a NTFS single volume Virtual Hard Drive (VHD)
Drives can be up to 1TB
A VM can dynamically mount up to 8 drives
A Page Blob can only be mounted by one VM at a time for A Page Blob can only be mounted by one VM at a time for read/write
Remote Access via Page BlobCan upload the VHD to its Page Blob using the blob interface, and then mount it as a Drive
Can download the Drive through the Page Blob interface
![Page 19: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/19.jpg)
A closer lookA closer look
Web Role Worker Role
main(){ … }
Load Balancer
HTTP
IIS
ASP.NET, WCF, etc.
Fabric
VM
Agent Agent
Balancer
![Page 20: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/20.jpg)
Using queues for reliable messagingUsing queues for reliable messaging
Web Role
ASP.NET, WCF,
Worker Role
main()
1) Receive work
4) Do
To scale, add more of either
Queue
ASP.NET, WCF, etc.
main(){ … }
2) Put work in queue
3) Get work from queue
4) Do work
![Page 21: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/21.jpg)
Queues are the application glue• Decouple parts of application, easier to scale independently;• Resource allocation, different priority queues and backend servers• Mask faults in worker roles (reliable messaging).
Use Inter-role communication for performance• TCP communication between role instances• Define your ports in the service models• Define your ports in the service models
![Page 22: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/22.jpg)
Points of interestPoints of interest
AccessData is exposed via .NET and RESTful interfaces
Data can be accessed by:Windows Azure apps
Other on-premise applications or cloud applicationsOther on-premise applications or cloud applications
![Page 23: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/23.jpg)
Work
Home
Source
Control
Develop
Develop
Version
Development Fabric
Development Storage
Your
AppRun
Local
Application Works Locally
![Page 24: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/24.jpg)
What the ‘Value Add’ ?What the ‘Value Add’ ?
Provide a platform that is scalable and available
Services are always running, rolling upgrades/downgrades
Failure of any node is expected, state has to be replicated
Failure of a role (app code) is expected, automatic recoveryFailure of a role (app code) is expected, automatic recovery
Services can grow to be large, provide state management that scales automatically
Handle dynamic configuration changes due to load or failure
Manage data center hardware: from CPU cores, nodes, rack, to network infrastructure and load balancers.
![Page 25: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/25.jpg)
Key takeawaysKey takeaways
Cloud services have specific design considerationsAlways on, distributed state, large scale, fault tolerance
Scalable infrastructure demands a scalable architectureStateless roles and durable queuesStateless roles and durable queues
Windows Azure frees service developers from many platform issues
Windows Azure manages both services and servers
![Page 26: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/26.jpg)
![Page 27: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/27.jpg)
Web
Portal
Web
Service
Job
registration Job
Scheduler
Worker
Worker
Global
Web Role Job Management Role
…
Scaling
Engine
Service Scheduler
Worker
dispatch
queue
Azure Table
Azure Blob
Database
updating
Role
Blast
databases,
temporary
data, etc.)
Job
RegistryNCBI
databas
es
![Page 28: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/28.jpg)
![Page 29: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/29.jpg)
![Page 30: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/30.jpg)
• Always design with failure in mind- On large jobs it will happen, and it can happen anywhere
• Factoring work into optimal sizes has large performance impacts- The optimal size may change depending on the scope of the job
• Test runs are your friend• Test runs are your friend- Blowing $20,000 of computation is not a good idea
• Make ample use of logging features- When failure does happen, it’s good to know where
• Cutting 10 years of computation down to 1 week is great!!- Little Cloud development headaches are probably worth it
![Page 31: Microsoft Azure](https://reader030.vdocuments.site/reader030/viewer/2022033101/55cf91f7550346f57b92385a/html5/thumbnails/31.jpg)
Thank you!Thank you!