windows azure overview
DESCRIPTION
My Windows Azure presentation @ Microsoft Community Tour 2011TRANSCRIPT
![Page 1: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/1.jpg)
A lap around the Seattle’s Clouds (and there are a lot of them ☺ )
Stefano [email protected]
http://stefanopaluello.wordpress.com
Twitter: @palutz
![Page 2: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/2.jpg)
Agenda
• Cloud Computing Overview
• Welcome “Windows Azure Platform”
• Windows Azure Computing– Role Programming Model
– Windows Azure Storage
– Windows Azure Connect
• SQL Azure
• Azure App Fabric
• Windows Azure Development
![Page 3: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/3.jpg)
What is the “Cloud Computing”?
• Cloud Computing represents a pattern of IT operation, from infrastructure to applications, using services.
• Microsoft thinks of the cloud as simply an approach to computing that enables applications to be delivered at scale for a variety of workloads and client devices.
![Page 4: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/4.jpg)
Why do we need the Cloud?
TIME
IT C
AP
AC
ITY
Actual Load
Allocated IT-capacities
Too Much Power
Not Enough Power
Load Forecast
![Page 5: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/5.jpg)
Actual Load
Capacity on Demand
Lower Capex
No capital laying idle
No screaming customers
Knob goes up...
And...down
TIME
IT C
AP
AC
ITY
Load Forecast
![Page 6: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/6.jpg)
Cloud Services
Infrastructure-as-a-Service
host
“IaaS”Platform-as-a-Service
build
“PaaS”Software-as-a-Service
consume
“SaaS”
![Page 7: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/7.jpg)
Cloud servicesPackaged Software
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
You m
anage
Infrastructure(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Managed by ve
ndor
You m
anage
Platform(as a Service)
Managed by ve
ndor
You m
anage
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Software(as a Service)
Managed by ve
ndor
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
![Page 8: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/8.jpg)
Who are the “players”?
• Common services:– Resource pooling, Elasticity, Pay-per-use, On-demand self-service, Measured service, Broad network access
Cloud Services Players
IaaS Vmware vCloud (ESX,Vcenter), AmazonWebServices, Microsoft
(Dynamic Data Center Toolkit for Hosters), GoGrid, Rackspace,…
PaaS Microsoft Windows Azure, Google AppEngine, Force.com,…
SaaS Microsoft BPOS, Salesforce.com,Google Docs,LotusLive,…
![Page 9: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/9.jpg)
What are the differences?
On-Premise Hosting Cloud
• Manage all on your own
server farm (electricity,
network, hw, sw..)
• Full control &
responsibility
• Fixed capacity
• High initial investment
• Rent HW, SW & network
• Less control and
responsibility than On-
Premise
• More flexible
• Less investment than
On-Premise
• Fixed cost with fixed
capacity also when the
server aren’t working
• Shared multi-tenant
infrastructure
• Resource pooling
• On-demand self-service
• Elasticity, network
independent
• Measured services
• Pay-per-use
![Page 10: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/10.jpg)
Welcome…
![Page 11: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/11.jpg)
Windows Azure Platform
![Page 12: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/12.jpg)
Windows Azure Data Centers
6 Datacenters across 3 continentsWindows Azure Platform available in 41 countries
![Page 13: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/13.jpg)
• O.S. for the Cloud:– Run apps in the Cloud, Provide Storage, App Management, Developer SDK
• Windows Azure best fits for app needing:– Scalability, Availability, Fault Tolerance & Load Balancing
Windows Azure Compute
![Page 14: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/14.jpg)
![Page 15: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/15.jpg)
Windows Azure “internals”
Desktop
VS Tools
WA SDK
Sto
rag
e C
lust
er
MSFT Datacenters
Business Portal
Developer Portal
Co
mp
ute
Clu
ste
r
……
Service Management Service
REST
REST
…
Cloud VM
Runtime
API
VM Setup
User Code
![Page 16: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/16.jpg)
Hierarchy in Windows Azure
• SubscriptionSubscriptionSubscriptionSubscription– contains a collection of ServicesServicesServicesServices (up to 6), determines the billing model (with standard, discounted or bundled charges)
• ServicesServicesServicesServices– Isolation boundary with a public URL, composed by RolesRolesRolesRoles (up to 5), defined in the Service Model
• RolesRolesRolesRoles– Defined in the Service Model (VM size, Communications endpoints, Storage Resources, etc.), at run-time a Role can execute up to 20 InstancesInstancesInstancesInstances per SubscriptionSubscriptionSubscriptionSubscription
• InstancesInstancesInstancesInstances– Set of code and data deployed in a VM
![Page 17: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/17.jpg)
Windows Azure RolesWindows Azure supported roles :
• Web Web Web Web rolerolerolerole – is a role that is customized for web application programming as supported by IIS 7 and ASP.NET.
• Worker roleWorker roleWorker roleWorker role – is a role that is useful for generalized development, and may perform background processing for a web role.
• VM roleVM roleVM roleVM role – is a special type of role that enables you to define the configuration & updates of the OS for the VM.
Features available:Features available:Features available:Features available:
• Remote desktop connection
• Communication between role instances
• The role instances in a hosted service communicate through internal and external connections
• Warm-up tasks
![Page 18: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/18.jpg)
Windows Azure Roles
![Page 19: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/19.jpg)
Windows Azure Architecture
StorageStorageTablesTables
L
B
BlobsBlobs
Worker
Service
Worker
ServiceWorker
Service
Worker
Service
Worker
RoleManaged
Interface Call
Worker
RoleManaged
Interface Call
Web Site(ASPX, ASMX, WCF)
Web Site(ASPX, ASMX, WCF)Web Site
(ASPX, ASMX, WCF)
Web Site(ASPX, ASMX, WCF)Web RoleIIS as Host
Web RoleIIS as Host
QueuesQueues
Windows Azure Data Center
L
BL
B
The InternetThe Internet via TCP or HTTP
![Page 20: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/20.jpg)
Packaging and Config
• Windows Azure Services are described by two important files:– Service Definition (*.csdef)
– Service Configuration (*.cscfg)
• Your code is zipped and packaged with definition (*.cspkg)– Encrypted(Zipped(Code + *.csdef)) == *.cspkg
• Windows Azure consumes just *.cspkg + *.cscfg
![Page 21: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/21.jpg)
DEMODEMODEMODEMOHello Windows Azure
![Page 22: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/22.jpg)
Role Programming Model
• Inherits RoleEntryPoint
• OnStart() Method– Called by Fabric on startup, allows you to perform initialization tasks.
– Reports Busy status to load balancer until you return true.
• Run() Method– Main logic is here – can do anything, typically infinite loop. Should never exit.
• OnStop() Method– Called when role is to be shutdown, graceful exit.
– 30 Seconds to tidy up
![Page 23: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/23.jpg)
Role Lifecycle
• All Roles MAY extend RoleEntryPoint
• Role instances raise events when their status is changed (managed by the RoleEnvironment class)
![Page 24: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/24.jpg)
Windows Azure Web & Worker Roles
• Windows Server 2008 x64 (R2 coming soon)
• .NET Framework – 3.5 SP1 and 4.0
• Native Code, PHP, Java, etc.
• Supports Full Trust today
• Fabric manages role lifecycle
Role is an executableCreate your own web server, host a database, background op., etc
Inbound onAny TCP Port
HTTP/HTTPS
Worker Role Web Role
Role is hosted on IIS
HTTP/HTTPS
ASP.NET, MVC
Fast CGI + PHP
![Page 25: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/25.jpg)
Full IIS
• Web Roles previously using Hosted Web Core– Only supports a single HTTP or HTTPS endpoint
• Web Roles now supporting Full IIS 7.0/7.5
• Enables new scenarios– Multiple IIS web sites
– Multiple virtual directories
– Configure IIS extensions
– Web Deploy for rapid development
![Page 26: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/26.jpg)
Full IIS Scenario (best case ☺ )
Phase Key Steps
Local Development • Use Visual Studio solution to code & deploy to
Compute Emulator
• Edit local content files without redeploying to
Compute Emulator
First-time Publish
(~10 Min)
• Deploy service to Windows Azure
• Ensure Windows Azure service definition (csdef/cscfg) configures
Web role:
• To enable remote WMSVC, WebDeploy, PowerShell, etc.
• As single instance
Iterative Development (seconds) • Continue coding in same Visual Studio solution
• Push intermittent changes (e.g. w/ Web Deploy)
Deployment of Final Version
(~10 Min)• Deploy service to Windows Azure• Note: If service is now multi-instance, Remote Desktop can be used, but other remote
mgmt. tools will get load- balanced to arbitrary instances.
Mitigation: Run mgmt. tools inside Remote Desktop session
![Page 27: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/27.jpg)
VM Role
• Developers have full control over the OS image
• Ability to upload your own customized WS08R2 Enterprise images
• Operators can reboot, re-image and Remote Desktop
![Page 28: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/28.jpg)
VM Role Lifecycle• Convert product DVD to a VHD, or use existing VHD
• Prepare the VHD
Build VM Image
• Create a service model with the above image.Create Service
• Store VHD in Windows Azure blob storageUpload Image
• Include in service model. Specify instance count.
• Package as cspkg, upload cskpg.Deploy Service
• Remote Desktop
• Reboot / Reimage
Maintain Service
• Repeat above steps, with a new OS image.Upgrade Service
![Page 29: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/29.jpg)
VM Role Lifecycle
CloudOn-Premises
Blob
Storage
Boot VHD
Customize VHD
Save Diff.VHD
Base.VHD
Identical/similar deployment
instances using
common uploaded OS image
(base.VHD + diff.VHD)
& Additional Software
& Windows Azure Integration Components
- Agent
- Runtime Interface (topo, config, shutdown notification, …)
- Remote Desktop configurator
- Diagnostics
- Windows Azure Drives driver
- Windows Azure Connect
& Generalize (Recommended)
![Page 30: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/30.jpg)
VM Role – Service definition
<ServiceDefinition name="MyVMRoleService" xmlns="…">
<VirtualMachineRole name="MachineRole" vmsize="Medium">
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
<Import moduleName="Diagnostics" />
</Imports>
</VirtualMachineRole>
</ServiceDefinition>
![Page 31: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/31.jpg)
VM Role – Service configuration<ServiceConfiguration serviceName="MyVMRoleService" xmlns="…">
<Role name="MachineRole">
<OsImage href="20101020BaseVM.vhd" />
<Instances count="2" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
value="DefaultEndpointsProtocol=http;AccountName=mohittest;AccountKey=JEBzeqFeP1g==" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true"
/>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value="" />
<Setting
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value="2012-07-23T23:59:59.0000000-07:00" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled"
value="true" />
</ConfigurationSettings>
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
thumbprint="195FD938F86D8785FF53C660BCBD283819E0271A" thumbprintAlgorithm="sha1" />
</Certificates>
</Role>
</ServiceConfiguration>
![Page 32: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/32.jpg)
VM Role Q&A
• Will any WS08 R2-based application work?– No, VM Role inherits some Web/worker restrictions:
• SLA requires at least two identical/similar instances• No durability of OS image on hardware failure• One public IP per service (unless using Windows Azure Virtual Network)
• Does Windows Azure take care of *everything*?– No
• With VM Role, the customer creates & maintains the OS• Windows Azure does not automatically understand the health of the applications running in our VM
– But, since you deploy services instead of individual VM’s, Windows Azure does automate many management tasks.
![Page 33: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/33.jpg)
Remote desktop Config
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="RemoteAccess"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WorkerRole name="GatewayRole">
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
</ConfigurationSettings>
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WorkerRole>
<WorkerRole name="TargetRole">
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
</ConfigurationSettings>
<Imports>
<Import moduleName="RemoteAccess" />
</Imports>
</WorkerRole>
</ServiceDefinition>
![Page 34: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/34.jpg)
Remote desktop Config<Role name="WorkerRole1">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled"
value="true" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value="myuser" />
<Setting
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword"
value="[base64]" />
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value="2010-06-16T13:04:02.9666425-07:00" />
</ConfigurationSettings>
<Certificates>
<Certificate
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordCertificate"
thumbprint="c0c23e1cdd7bfb20c14dce97b37ea67bd9f24918" thumbprintAlgorithm="sha1" />
</Certificates>
</Role>
![Page 35: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/35.jpg)
And… you’re connected ☺
![Page 36: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/36.jpg)
Windows Azure: VM Size• Windows Azure
– Supports Various VM Sizes
– Size set on Role in Service Definition
– Service can have multiple roles
– Balance of Performance per node vs. High Availability from multiple nodes
– Set in Service Model definitionAll instances of role will be of equal size
Size CPU Cores RAM Local Storage Cost
Extra Small Shared 768M 20GB .05
Small 1 1.7GB 250GB .12
Medium 2 3.5GB 500GB .24
Large 4 7GB 1000GB .48
Size CPU Cores RAM Local Storage Cost
![Page 37: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/37.jpg)
How to choose VM size
• Don’t just throw big VMs at every problem
• Scale out architectures have natural parallelism
• Big VMs allow us to Scale UP on a single machine.
• Test various configurations under load
• More small instances == more redundancy
• Some scenarios will benefit from more cores (E.g. Video processing, …)
![Page 38: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/38.jpg)
Windows Azure Networking
• 3 types of Endpoints in Windows Azure– Input (VIP)
– Internal
– Windows Azure Connect
• Specify Connectivity Rules in Service Definition– NetworkTrafficRules
• Port Ranges
• Local Ports
• TCP only
![Page 39: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/39.jpg)
Local Storage != W.A. Storage
• Role instances have available disk storage• Use LocalStorage element in service definition– Name– CleanOnRoleRecycle– Size
• Persistent but not guaranteed durable– Good for cached resources
• Windows Azure Storage Drives provide guaranteed durable storage
![Page 40: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/40.jpg)
Local Storage How To
• Config
• Code
![Page 41: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/41.jpg)
Windows Azure Storage
![Page 42: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/42.jpg)
Windows Azure Storage
• Tables– Table = group of entities
– Entity = name/value pairs
– Partitioned by key
• Scale out to Bns of entities
– Not an RDBMS
• Tables– Table = group of entities
– Entity = name/value pairs
– Partitioned by key
• Scale out to Bns of entities
– Not an RDBMS
• Blobs– Large binary storage
– Stored in container• Unlimited containers
• CDN Deliverable
• Partitioned by Blob name
• Drives– NTFS VHD mounted into
Compute instance
• Read/Write 1:1
• Read only 1:N
– Backed by Page Blob
– Cannot remotely map
![Page 43: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/43.jpg)
Windows Azure Storage Recap
• BlobsBlobsBlobsBlobs – Simple named files along with metadata for the file
• DrivesDrivesDrivesDrives – Durable NTFS volumes for Windows Azure applications to use. Based on Blobs.
• TablesTablesTablesTables – Structured storage. A Table is a set of entities; an entity is a set of properties
• QueuesQueuesQueuesQueues – Reliable storage and delivery of messages for an application
![Page 44: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/44.jpg)
Blob Storage
BlobContainerAccount
contosocontoso
imagesimages
PIC01.JPGPIC01.JPG
videosvideos VID1.AVI
http://<account>.blob.core.windows.net/<container>/<blobname>
Pages/
Blocks
Block/PageBlock/Page
Block/PageBlock/Page
PIC02.JPGPIC02.JPG
![Page 45: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/45.jpg)
Blob Containers
• Multiple Containers per Account– Special $root container
• Blob Container– A container holds a set of blobs– Set access policies at the container level – Associate Metadata with Container– List the blobs in a container
• Including Blob Metadata and MD5 • NO search/query. i.e. no WHERE MetadataValue = ?
• Blobs Throughput– Effectively in Partition of 1– Target of 60MB/s per Blob
![Page 46: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/46.jpg)
Blob Details• Main Web Service Operations
– PutBlob,GetBlob,DeleteBlob,CopyBlob,SnapshotBlob,LeaseBlob
• Associate Metadata with Blob
– Standard HTTP metadata/headers (Cache-Control, Content-Type, etc)
– Metadata is <name, value> pairs, up to 8KB per blob
– Either as part of PutBlob or independently
• Blob always accessed by name
– Can include ‘/‘ or other delimeter in name
• Large lists of blobs can be paginated
http://adventureworks.blob.core.windows.net/
Products/Bikes/FastBike.jpg
Products/Canoes/Whitewater.jpg
Products/Canoes/Hybrid.jpg
Products/Tents/PalaceTent.jpg
![Page 47: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/47.jpg)
Two types of Blob
• Block Blob – Targeted at streaming workloads
– Each blob consists of a sequence of blocks blocks blocks blocks • Each block is identified by a Block ID
– Size limit 200GB per blob
– Optimistic Concurrency via ETags
• Page Blob– Targeted at random read/write workloads
– Each blob consists of an array of pages pages pages pages • Each page is identified by its offset from the start of the blob
– Size limit 1TB per blob
– Optimistic or Pessimistic (locking) concurrency via Leases
![Page 48: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/48.jpg)
Windows Azure Drives
• Durable NTFS volume for Windows Azure Instances– Use existing NTFS APIs to access a network attached durable drive
– Use System.IO from .NET
• Benefits– Move existing apps using NTFS more easily to the cloud
– Durability and survival of data on instance recycle
• A Windows Azure Drive is a NTFS VHD Page Blob– Mounts Page Blob over the network as an NTFS drive
– Local cache on instance for read operations
– All flushed and unbuffered writes to drive are made durable to the Page Blob
![Page 49: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/49.jpg)
Windows Azure Drives Details
• Operations performed via Drive API not REST Calls
• Operations on Drives– CreateDriveCreateDriveCreateDriveCreateDrive
• Creates a new NTFS formatted VHD in Blob storage
– MountDriveMountDriveMountDriveMountDrive////UnmountDriveUnmountDriveUnmountDriveUnmountDrive• Mounts a drive into Instance at new drive letter
• Unmounts a drive freeing drive letter
– Get Mounted DrivesGet Mounted DrivesGet Mounted DrivesGet Mounted Drives• List mounted drives; underlying blob and drive letter
– Snapshot DriveSnapshot DriveSnapshot DriveSnapshot Drive• Create snapshot copy of the drive
![Page 50: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/50.jpg)
Table Storage
EntityTableAccount
contoso
customers
Name =…
Email = …
Name =…
EMailAdd= …
photos
Photo ID =…
Date =…
Photo ID =…
Date =…
![Page 51: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/51.jpg)
Table Details
• Not an RDBMS! More on table modeling in Storage Strategies session
• Table– Create, Query, DeleteCreate, Query, DeleteCreate, Query, DeleteCreate, Query, Delete
– Tables can have metadata
• Entities– InsertInsertInsertInsert
– Update Update Update Update • Merge – Partial update
• Replace – Update entire entity
– DeleteDeleteDeleteDelete
– QueryQueryQueryQuery
– Entity Group Transactions• Multiple CUD Operations in a single atomic transaction
![Page 52: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/52.jpg)
Table Storage Entities
• Entity can have up to 255 properties• Up to 1MB per entity
• Mandatory Properties for every entity• PartitionKey & RowKey (only indexed properties)
• Uniquely identifies an entity
• Defines the sort order
• Timestamp
• Optimistic Concurrency. Exposed as an HTTP ETag
• No fixed schema for other properties• Each property is stored as a <name, typed value> pair
• No schema stored for a table
• Properties can be the standard .NET types
• String, binary, bool, DateTime, GUID, int, int64, and double
![Page 53: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/53.jpg)
PartitionKey How To
• Entity Locality– Entities in the same partition will be stored together
– Efficient querying and cache locality
– Endeavour to include partition key in all queries
• Entity Group Transactions– Atomic multiple Insert/Update/Delete in same partition in a single transaction
• Table Scalability• Target throughput – 500 tps/partition, several thousand tps/account
– Windows Azure monitors the usage patterns of partitions
– Automatically load balance partitions– Each partition can be served by a different storage node
– Scale to meet the traffic needs of your table
![Page 54: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/54.jpg)
Queue Storage
MessageQueueAccount
order processing
customer IDorder IDhttp://…
customer IDorder IDhttp://…
adventureworks
![Page 55: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/55.jpg)
Lousely Coupled Workflow with Queues• Enables workflow between roles
– Load work in a queue (Producer can forget about message once it is in queue)
– Many workers consume the queue
– For extreme throughput (>500 tps)
• Use multiple queues
• Read messages in batches
• Multiple work items per message
Queue
Input Queue (Work Items)
![Page 56: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/56.jpg)
Queue’s Reliable Delivery
• Guarantee delivery/processing of messages (two-step consumption)
– Worker Dequeues message and it is marked as Invisible for a specified “Invisibility Time”
– Worker Deletes message when finished processing
– If Worker role crashes, message becomes visible for another Worker to process
– More on this pattern in the Async Workloads session
![Page 57: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/57.jpg)
Windows Azure Connect• Secure network connectivity
between on-premises and cloud– Supports standard IP protocols
• Example use cases:– Enterprise app migrated to
Windows Azure that requires access to on-premise SQL Server
– Windows Azure app domain-joined to corporate Active Directory
– Remote administration and trouble-shooting of Windows Azure Roles
• Simple setup and management
Windows Azure
Enterprise
![Page 58: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/58.jpg)
Windows Azure Service Deployment
• To use Connect with a WA service, enable one or more of its Roles– For Web & Worker Role, include the Connect plug-in as part of Service Model (.csdef file)
– For VM role, install the Connect agent in VHD image using the Connect VM install package
– Connect agent will automatically be deployed for each new role instance that starts up
• Connect agent configuration managed through the ServiceConfiguration (.cscfg) file– One required setting - “ActivationToken”
• Unique per-subscription token, accessed from Admin UI
– Optional settings for managing AD domain-join and service availability
![Page 59: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/59.jpg)
On-Premise Deployment
• Local computers are enabled for connectivity by installing & activating the Connect agent– Web-based installation link
• Retrieved from admin UI• Contains per-subscription activation token embedded in URL
– Standalone install package• Reads activation token from registry key• Enables installation using existing S/W distribution tools
• Connect agent tray icon & client UI– View activation state & connectivity status – Refresh network policy
• Connect agent automatically manages network connectivity – Sets up virtual network adapter– “Auto-connects” to Connect relay service as needed– Configures IPSec policy based on network policy – Enables DNS name resolution – Automatically syncs latest network policies
![Page 60: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/60.jpg)
Windows Azure Connect
SERVER1
SERVER2
Windows Azure
SERVER3DEV_LAPTOP1
Role A
Instance3Instance2Instance
Role B
Instance3Instance2Instance
DEV_LAPTOP2
My Servers My Laptops
![Page 61: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/61.jpg)
![Page 62: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/62.jpg)
SQL Azure Database
![Page 63: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/63.jpg)
![Page 64: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/64.jpg)
Architecture
• Shared infrastructure at SQL database and below
–Request routing, security and isolation
• Scalable HA technology provides the glue
–Automatic replication and failover
• Provisioning, metering and billing infrastructure
![Page 65: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/65.jpg)
Database Replicas
Replica
1
Replica
2
Replica
3
DB
Replica
4
![Page 66: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/66.jpg)
Behind the scenes…Applicatio
n
Internet
LBTDS (tcp)
TDS (tcp)
TDS (tcp)
Apps use standard SQL client libraries: ODBC, ADO.Net, PHP, …
Load balancer forwards ‘sticky’ sessions to TDS protocol tier
Gateway Gateway Gateway Gateway Gateway Gateway
Scalability and Availability: Fabric, Failover, Replication, and Load balancing
SQL SQL SQL SQL SQLSQL
Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL
![Page 67: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/67.jpg)
SQL Azure Compatibility
Currently supportedCurrently supportedCurrently supportedCurrently supported• Tables, indexes and views
• Stored Procedures
• Triggers
• Constraints
• Table variables, session temp tables (#t)
• Spatial types, HierarchyId
Not Currently SupportedNot Currently SupportedNot Currently SupportedNot Currently Supported• Data Types
– XML, Sparse Columns, Filestream
• Partitions
• Full-text indexes
• SQL-CLR
Tables require clustered indexes
![Page 68: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/68.jpg)
SQL Azure: Performance & Scalability
Database Design
• Table design
• Index design
• Query design
• Transaction design
Capacity
• Size limits
• Partitioning (shard)
Latency
• Redundancy
• Replica overhead
• Distance
• Affinity Groups
• SQL Azure Data Sync
• Sync Fx
Concurrency
• Replication
• SQL Azure Data Sync
• Partitioning (shard)
Scalability
• Scale-up
• Not an option
• Scale-out
• Partitioning (shard)
• SQL Azure Data Sync
![Page 69: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/69.jpg)
SQL Azure Database Editions
• Two SQL Azure Database SKUs: Web & Business– Web Edition:Web Edition:Web Edition:Web Edition: 1 GB @ $9.99/month | 5 GB @ $49.95/month– Business Edition:Business Edition:Business Edition:Business Edition: Up to 50 GB @ $99.99/10 GB/month
10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95
• You specify Web or Business Edition– Web: Web: Web: Web: EDITION = web– Business: Business: Business: Business: EDITION = business
• You specify MAXSIZE– Web: Web: Web: Web: MAXSIZE = 1GB | 5GB– Business: Business: Business: Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB
• This is the maximum size we will not let you grow beyond• You will only be charged for the actual peak size in any one day rounded up
• For example, a 3.4 GB Web Edition will be charged 5GB rate.CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB);CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB);ALTER DATABASE foo2 MODIFY (EDITION='web', MAXSIZE=5GB);
![Page 70: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/70.jpg)
SQL Azure Reporting V1Reporting Services SQL Azure Reporting
Tooling - Business Intelligence Design
Studio (BIDS)
- Report Builder
- Business Intelligence Design
Studio (BIDS)
- Report Builder*
Supported data sources Diverse data sources SQL Azure databases
Report Management Report Manager or SharePoint
- display reports
- rendering to multiple
formats
- subscriptions
- scheduled delivery
Windows Azure Developer
Portal
URL browsing
Developer Extensibility Custom data sources,
assemblies, report items,
authentication, etc.
Extensibility is not yet enabled
Security Model Windows Authentication SQL Azure
Username/password
![Page 71: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/71.jpg)
SQL Azure Data Sync
• Elastic Scale– Service scales as resources requirements grow
• No-Code Sync Configuration– Easily define data to be synchronized
• Schedule Sync– Choose how often data is synchronized
• Conflict Handling– Handle issues where same data is changed in multiple locations
• Logging and Monitoring– Administration capabilities for tracking data and monitoring potential issues
![Page 72: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/72.jpg)
SQL Azure Data Sync
• Geo-replication of SQL Azure data and spanning on-premises with cloud– CTP1 released in June with
geo-replication
– CTP2 to be released Q4CY10; adds sync between SQL Server and SQL Azure
• Builds on Sync Framework– Sync data between SQL Azure, SQL Compact and SQL Server
– Sync Fx 2.1 RTW on August 18th
– Next version enables sync for offline clients
On-Premises Cloud Offline
Clients
![Page 73: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/73.jpg)
Sync
Simple protocol
(OData& Sync)
Minimal client &
store
requirements
Client API
support
Windows Server
/ IIS
Sync
Endpoint
sAuth /
Mgmt / Bus
Logic
SyncFx
SQL Server
WindowsAzu
re
Sync
Endpoint
sAuth /
Mgmt / Bus
Logic
SyncFx
SQL Azure
Sync smarts on
server, not on
client
Easy to develop the
sync endpoints
Client API
support
Sync Framework
![Page 74: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/74.jpg)
![Page 75: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/75.jpg)
Windows Azure AppFabric
![Page 76: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/76.jpg)
Fabric Controller = Cloud OS Kernel
My AppMy AppMy AppMy App
Windows Server
Kernel
Security
Management
Task scheduler
HW abstraction layer
My AppMy AppMy AppMy App
Windows AZURE
Fabric Controller
Security
Management
Task scheduler
HW abstraction layer
![Page 77: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/77.jpg)
Windows Azure AppFabric
• Comprehensive building block services for developing, deploying, and managing applications
• Higher level Platform-as-a-Service (PaaS) capabilities
• Increase developer productivity
• Bridge existing applications to the cloud
Windows Azure AppFabric
Caching Service Bus Access Control IntegrationComposite App
(WF, WCF)
![Page 78: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/78.jpg)
Caching Service
• A distributed, in-memory cache for applications running in Windows Azure
• Simple administration; end-user doesn’t bother with configuration, deployment, or management
• Highlight scalable solution with low latency and high throughput
• Based on Windows Server AppFabricCaching
![Page 79: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/79.jpg)
Latency chart
Memory
Network
Disk
![Page 80: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/80.jpg)
Access Control
• Used to authenticate and authorize users• Integration Single Sign On and centralized authorization into your web applications
• Standards-based identity providers– Enterprise directories (e.g. Active Directory Federation Server v2.0)
– Web identities (e.g. Windows Live ID, Google, Yahoo!, and Facebook)
• V1 available in production; V2 available in AppFabric LABS
![Page 81: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/81.jpg)
Access Control features
• Integrates with Windows Identity Foundation and tooling
• Claims-based access control• Support for OAuth WRAP, WS-Trust, and WS-Federation protocols
• Support for the SAML 1.1, SAML 2.0, and Simple Web Token token formats
• Integrated and customizable Home Realm Discovery
• OData-based Management Service to ACS configuration
![Page 82: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/82.jpg)
Service Bus
• Provides secure messaging and connectivity across different network topologies
• Enables hybrid applications that span on-premises and the cloud
• Enables various communication protocols and patterns for developers to engage in reliable messaging
![Page 83: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/83.jpg)
Enabling hybrid applications
Datacenter
LOB web service
LOB app
Partner
Mobile Device
![Page 84: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/84.jpg)
Enabling hybrid applications
Datacenter
LOB web service
LOB app
Partner
Mobile Device
SB
ACS
![Page 85: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/85.jpg)
Enabling hybrid applications
Datacenter
LOB web service
LOB app
Partner
Mobile Device
SB
ACS
![Page 86: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/86.jpg)
Enabling hybrid applications
Partner
Mobile Device
Datacenter
LOB web service
LOB appSB
ACS
![Page 87: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/87.jpg)
Enabling hybrid applications
Partner
Mobile Device
Datacenter
LOB web service
LOB appSB
ACS
![Page 88: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/88.jpg)
WINDOWS AZURE WINDOWS AZURE WINDOWS AZURE WINDOWS AZURE DEVELOPMENTDEVELOPMENTDEVELOPMENTDEVELOPMENT
![Page 89: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/89.jpg)
Moving apps to the Cloud
Compatible with Windows Azure
Designed forWindows Azure
Delivered as a
Service
![Page 90: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/90.jpg)
Asp.Net in Azure• Windows Azure Tools for Visual Studio pre-defined role templates– ASP.NET WebForms Role
– ASP.NET MVC 2 Role
![Page 91: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/91.jpg)
There are some differences…
![Page 92: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/92.jpg)
Statelessness
–Load balancer round-robins requests in multi instance roles
–Follow web farm best practices• Do not store state on individual instances • Do not assume subsequent requests will hit the same instance
–Don’t forget things like dynamically generated images loaded by a page
![Page 93: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/93.jpg)
AJAX on Azure
• Client side calls may not return to the same instance the original page came from
• AJAX calls must be stateless– Don’t generate a page and leave state on the server to call via AJAX later
• All instances require the same MachineKey for ViewState hashing– Fabric uses same machine key for all instances in a role
![Page 94: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/94.jpg)
Session State
![Page 95: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/95.jpg)
Solutions to Session State
• Persist to Storage via Session State Provider– Windows Azure AppFabric Caching
– SQL Azure
– Windows Azure Storage (only sample!)
– Custom (Memcached)
• Persist to Client– Use cookies
![Page 96: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/96.jpg)
DNS• All services get a *.cloudapp.net address
– myservicename.cloudapp.net
– TTL is 10 seconds
• Standard approach is to CNAME to *.cloudapp.net
– Requires two DNS lookups
– Limited caching due to low TTL
• IP Address for deployment is fixed for lifetime of that slot
• Create service, deploy to staging slot
• Resolve IP for yourapp.cloudapp.net
• Create A Record for
• www.yourapp.com
• yourapp.com
![Page 97: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/97.jpg)
Configuration Apps
• Store arbitrary configuration string values– Define in model– Populate in configuration
• RoleEnvironment– .GetConfigurationSettingValue()
• Don’t use web.config for values you wish to change at runtime– App/Web.config is packaged with deployment change requires re-deploy
– *.cscfg supports change tracking and notification to running role instances
![Page 98: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/98.jpg)
Handling Config changes
• RoleEnvironment.Changing– Occurs before configuration is changed– Can be cancelled – causes a recycle
• RoleEnvironment.Changed– Occurs after config change has been applied
• RoleEnvironmentConfigurationSettingChange– Provides config value that was changed
• RoleEnvironmentTopologyChange– When role count is changed
![Page 99: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/99.jpg)
Monitoring Apps
• Monitoring is not Debugging
• Instrument your application using Trace, Debug– DiagnosticMonitorTraceListener
• Use Diagnostics API to Configure and Collect– Event Logs
– Performance Counters
– Trace/Debug information (logging)
– IIS Logs, Failed Request Logs
– Crash Dumps or Arbitrary files
• Request data on demand or scheduled– Transferred into your table and/or blob storage
![Page 100: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/100.jpg)
Monitoring is not free ( � )
• Monitoring vs Debugging/Troubleshooting
• Volume of Data
• Reaction Time
• $ Cost
![Page 101: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/101.jpg)
Troubleshooting
• Intellitrace – DVR for debugging– Requires VS Ultimate, .NET 4 today
• Remote Desktop• Custom Trace Listener
![Page 102: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/102.jpg)
Deployment Environments
• Two Environments to choose from
• Nearly Identical…– <servicename>.cloudapp.net
– <deploymentID>.cloudapp.net
• VIP Swap between them
![Page 103: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/103.jpg)
How to Upgrade App
• VIP Swap:– Uses Staging and Production environments.
– Allows to quickly swap environments.
– Production: v1 � Staging: v2, after swap then Production: v2 Staging: v1.
• In-Place Upgrade– Performs a rolling upgrade on live service.
– Entire service or a single role
– Manual or Automatic across update domains
– Cannot change Service Model
![Page 104: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/104.jpg)
Deployment & Mgmt Tools
• Visual Studio• CSManage.exe• Windows Azure MMC• Windows Azure Service Management (WASM) cmdlets
• 3rd Party tools
![Page 105: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/105.jpg)
Web Deploy
• IIS Web Deployment Tool• Simplifies the migration, management, and deployment of IIS Web servers, Web applications, and Web sites
• You’ll be able to do web deploy using standard IIS7 publishing from Visual Studio
• Will not require you to deploy an entire package
• Warning: use for development purposes only (!!!)
![Page 106: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/106.jpg)
Windows Azure Service Management Cmdlets
• Set of PowerShell cmdlets
• Wraps Management REST API and Diagnostics API
• Enables building of sophisticated deployment scripts
• Works with rest of .NET CLR
![Page 107: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/107.jpg)
Windows Azure MMC
• MMC Snapin providing graphical view of services, diagnostics, and storage
• Built on top of WASM Cmdlets
• Plugin-based, extensible
• Remotely configure diagnostics
• Download and view diagnostics
![Page 108: Windows Azure Overview](https://reader034.vdocuments.site/reader034/viewer/2022042614/55526c83b4c9052e1f8b50aa/html5/thumbnails/108.jpg)