1. A lap around the Seattle’s Clouds
(and there are a lot of them ☺ )
Stefano Paluello
stefano.paluello@pastesoft.com
http://stefanopaluello.wordpress.com
Twitter: @palutz
2. 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
3. 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.
4. Why do we need the Cloud?
Allocated Load
IT-capacities Forecast
Not Enough
Power
IT CAPACITY
Too Much
Power
Actual Load
TIME
5. Load
No screaming Capacity on Forecast
customers Demand
IT CAPACITY
No capital Knob goes
laying idle up...
And...
down
Lower Capex
Actual Load
TIME
7. Cloud services
Packaged Infrastructure Platform Software
Software (as a Service) (as a Service) (as a Service)
Applications Applications Applications Applications
You manage
Data Data Data Data
You manage
Runtime Runtime Runtime Runtime
Managed by vendor
Middleware Middleware Middleware Middleware
Managed by vendor
You manage
O/S O/S Managed by vendor O/S O/S
Virtualization Virtualization Virtualization Virtualization
Servers Servers Servers Servers
Storage Storage Storage Storage
Networking Networking Networking Networking
8. Who are the “players”?
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,…
• Common services:
– Resource pooling, Elasticity, Pay-per-use,
On-demand self-service, Measured
service, Broad network access
9. What are the differences?
On-Premise Hosting Cloud
• Manage all on your own • Rent HW, SW & network • Shared multi-tenant
server farm (electricity, • Less control and infrastructure
network, hw, sw..) responsibility than On- • Resource pooling
• Full control & Premise • On-demand self-service
responsibility • More flexible • Elasticity, network
• Fixed capacity • Less investment than independent
• High initial investment On-Premise • Measured services
• Fixed cost with fixed • Pay-per-use
capacity also when the
server aren’t working
12. Windows Azure Data Centers
6 Datacenters across 3 continents
Windows Azure Platform available in 41 countries
13. Windows Azure Compute
• 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
14.
15. Windows Azure “internals”
Business Portal
Developer Portal
User Code
REST Service Management Service
Runtime
API
Storage Cluster
Compute Cluster
… … VM Setup
VS Tools
…
Cloud VM
WA SDK
REST
Desktop MSFT Datacenters
16. Hierarchy in Windows Azure
• Subscription
– contains a collection of Services (up to 6), determines the
billing model (with standard, discounted or bundled charges)
• Services
– Isolation boundary with a public URL, composed by Roles (up
to 5), defined in the Service Model
• Roles
– Defined in the Service Model (VM size, Communications
endpoints, Storage Resources, etc.), at run-time a Role can
execute up to 20 Instances per Subscription
• Instances
– Set of code and data deployed in a VM
17. Windows Azure Roles
Windows Azure supported roles :
• Web role – is a role that is customized for
web application programming as
supported by IIS 7 and ASP.NET.
• Worker role – is a role that is useful for
generalized development, and may
perform background processing for a
web role.
• VM role – is a special type of role that
enables you to define the configuration
& updates of the OS for the VM.
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
19. Windows Azure Architecture
The Internet
The Internet via TCP or HTTP
L L
B L B
B
Queues
Web Site
Worker
Worker
Worker
Web Site
WebASMX, WCF)
Role
(ASPX,
(ASPX, ASMX, WCF) Role
Service
Service
IIS as Host Managed
Interface Call
Blobs
Tables Storage
Windows Azure Data Center
20. 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
22. 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
23. Role Lifecycle
• All Roles MAY extend RoleEntryPoint
• Role instances raise events when their status is
changed (managed by the RoleEnvironment class)
24. 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
Worker Role Web Role
Role is an executable Role is hosted on IIS
Create your own web server, host HTTP/HTTPS
a database, background op., etc
ASP.NET, MVC
Inbound on
Fast CGI + PHP
Any TCP Port
HTTP/HTTPS
25. 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
26. 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 • Deploy service to Windows Azure
(~10 Min) • 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 • Deploy service to Windows Azure
(~10 Min) • 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
27. 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
28. VM Role Lifecycle
Build VM • Convert product DVD to a VHD, or use existing VHD
Image • Prepare the VHD
Create Service • Create a service model with the above image.
Upload Image • Store VHD in Windows Azure blob storage
• Include in service model. Specify instance count.
Deploy Service • Package as cspkg, upload cskpg.
Maintain • Remote Desktop
Service • Reboot / Reimage
Upgrade • Repeat above steps, with a new OS image.
Service
29. VM Role Lifecycle
Identical/similar deployment
instances using
common uploaded OS image
Base.VHD (base.VHD + diff.VHD)
& Additional Software
& Windows Azure Integration Components
- Agent Blob
- Runtime Interface (topo, config, shutdown notification, …) Storage
- Remote Desktop configurator
- Diagnostics Boot VHD
- Windows Azure Drives driver
- Windows Azure Connect
& Generalize (Recommended)
Customize Save
VHD Diff.VHD
On-Premises Cloud
30. 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>
32. 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.
36. 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 definition
All 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
37. 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, …)
38. 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
39. 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
42. Windows Azure Storage
• Tables • Blobs
– Table = group of entities – Large binary storage
– Entity = name/value pairs – Stored in container
– Partitioned by key • Unlimited containers
• Scale out to Bns of • CDN Deliverable
entities • Partitioned by Blob name
– Not an RDBMS • Drives
• Tables – NTFS VHD mounted into
– Table = group of entities Compute instance
– Entity = name/value pairs • Read/Write 1:1
– Partitioned by key • Read only 1:N
• Scale out to Bns of – Backed by Page Blob
entities – Cannot remotely map
– Not an RDBMS
43. Windows Azure Storage Recap
• Blobs – Simple named files along with
metadata for the file
• Drives – Durable NTFS volumes for Windows
Azure applications to use. Based on Blobs.
• Tables – Structured storage. A Table is a set
of entities; an entity is a set of properties
• Queues – Reliable storage and delivery of
messages for an application
45. 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
46. 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
47. Two types of Blob
• Block Blob
– Targeted at streaming workloads
– Each blob consists of a sequence of 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
• 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
48. 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
49. Windows Azure Drives Details
• Operations performed via Drive API not REST
Calls
• Operations on Drives
– CreateDrive
• Creates a new NTFS formatted VHD in Blob storage
– MountDrive/UnmountDrive
MountDrive/
• Mounts a drive into Instance at new drive letter
• Unmounts a drive freeing drive letter
– Get Mounted Drives
• List mounted drives; underlying blob and drive letter
– Snapshot Drive
• Create snapshot copy of the drive
50. Table Storage
Account Table Entity
Name =…
Email = …
customers
Name =…
EMailAdd= …
contoso
Photo ID =…
Date =…
photos
Photo ID =…
Date =…
51. Table Details
• Not an RDBMS!
More on table modeling in Storage Strategies session
• Table
– Create, Query, Delete
– Tables can have metadata
• Entities
– Insert
– Update
• Merge – Partial update
• Replace – Update entire entity
– Delete
– Query
– Entity Group Transactions
• Multiple CUD Operations in a single atomic transaction
52. 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
53. 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
54. Queue Storage
Account Queue Message
customer ID
order ID
http://…
adventureworks order processing
customer ID
order ID
http://…
55. 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
Input Queue (Work Items)
Queue
56. 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
57. Windows Azure Connect
• Secure network connectivity
between on-premises and cloud
– Supports standard IP protocols
Windows Azure
• 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
Enterprise
58. 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
59. 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
60. Windows Azure Connect
Windows Azure
Role A Role B
Instance3
Instance2 Instance3
Instance2
Instance Instance
My Servers My Laptops
SERVER1
DEV_LAPTOP1
SERVER2 SERVER3 DEV_LAPTOP2
64. 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
68. SQL Azure: Performance & Scalability
Database Design Capacity Latency Concurrency Scalability
• Table design • Size limits • Redundancy • Replication • Scale-up
• Index design • Partitioning (shard) • Replica overhead • SQL Azure Data • Not an option
• Query design • Distance Sync • Scale-out
• Transaction design • Affinity Groups • Partitioning (shard) • Partitioning (shard)
• SQL Azure Data • SQL Azure Data
Sync Sync
• Sync Fx
69. SQL Azure Database Editions
• Two SQL Azure Database SKUs: Web & Business
– Web Edition: 1 GB @ $9.99/month | 5 GB @ $49.95/month
– 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: EDITION = web
– Business: EDITION = business
• You specify MAXSIZE
– Web: MAXSIZE = 1GB | 5GB
– 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);
70. SQL Azure Reporting V1
Reporting Services SQL Azure Reporting
Tooling - Business Intelligence Design - Business Intelligence Design
Studio (BIDS) Studio (BIDS)
- Report Builder - Report Builder*
Supported data sources Diverse data sources SQL Azure databases
Report Management Report Manager or SharePoint Windows Azure Developer
- display reports Portal
- rendering to multiple URL browsing
formats
- subscriptions
- scheduled delivery
Developer Extensibility Custom data sources, Extensibility is not yet enabled
assemblies, report items,
authentication, etc.
Security Model Windows Authentication SQL Azure
Username/password
71. 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
72. SQL Azure Data Sync
On-Premises Cloud Offline
• Geo-replication of SQL Azure data Clients
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
73. Sync Framework
Sync smarts on
Easy to develop the
server, not on
sync endpoints
client
SyncFx
Sync
Client API Endpoint
support Auth /
s
Mgmt / Bus
Logic SQL Azure
Simple protocol
(OData& Sync) WindowsAzu
re
Sync
SyncFx
Sync
Endpoint
Auth /
s
Mgmt / Bus
Logic SQL Server
Minimal client &
store
requirements
Windows Server
/ IIS
76. Fabric Controller = Cloud OS Kernel
My App My App
Windows Server Windows AZURE
Security Security
Management Management
Kernel Fabric Controller
Task scheduler Task scheduler
HW abstraction layer HW abstraction layer
77. 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
Composite App
Caching Service Bus Access Control Integration
(WF, WCF)
78. 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 AppFabric
Caching
80. 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
81. 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
82. 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
92. 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
93. 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
95. 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
96. 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
97. 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
98. 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
• RoleEnvironmentConfigurationSettingCh
ange
– Provides config value that was changed
• RoleEnvironmentTopologyChange
– When role count is changed
99. 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
100. Monitoring is not free ( )
• Monitoring vs Debugging/Troubleshooting
• Volume of Data
• Reaction Time
• $ Cost
102. Deployment Environments
• Two Environments to choose from
• Nearly Identical…
– <servicename>.cloudapp.net
– <deploymentID>.cloudapp.net
• VIP Swap between them
103. 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
104. Deployment & Mgmt Tools
• Visual Studio
• CSManage.exe
• Windows Azure MMC
• Windows Azure Service Management
(WASM) cmdlets
• 3rd Party tools
105. 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 (!!!)
106. 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
107. 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