An Introduction to Windows AzureHilton GiesenowPrincipal Consultant, 3fifteenMicrosoft MVP
Case Study
What is “the cloud”
− “cloud computing” is using software or infrastructure services hosted over the Internet - Hilton Giesenow
[x] as a Service
SaaS
PaaS IaaS
Windows Azure, On One Slide
− The “cloud” is− 1000s of geo-distributed servers & networking
− Windows Azure − An operating system for the cloud
− The “operating system” provides− Application hosting− Automated service management
− Upload your code and “service model”; press START
− Durable storage at massive scale
Why the Cloud
− VERY Quick Provisioning− New business− Growing business (up OR down)
− Easier Maintenance− Lower TCO
− “commodity” / “utility” computing− Schedules of usage− Spikes in usage
− Unpredicted− Predicted
“Azure”
Windows Azure, In One Picture
MS Datacenters
Business Portal
Developer Portal
Com
pute
Clu
ster
……
Service Management Service
REST
REST
Sto
rage
Clu
ster
…
− Relational database as a service− Highly available, automatically
maintained− Extension of the SQL Server Data
Platform
Database
Business AnalyticsReporting Data Sync
SQL Azure Database Overview
− Relational database, provided as a service− Highly symmetrical development and
tooling experience (use TDS protocol and T-SQL)
− Highly scaled out, on commodity hardware
− Built on the SQL Server technology foundation
− Beyond “hosted database”− High availability, DB provisioning, and DB
management are provided by the service− Pay for what you use
SQL Azure Network TopologyApplicatio
n
InternetAzure Cloud
LB
TDS (tcp)
TDS (tcp)
TDS (tcp)
Applications use standard SQL client libraries: ODBC, ADO.Net, PHP, …
Load balancer forwards ‘sticky’ sessions to TDS protocol tier
Security Boundary
SQL SQL SQL SQL SQLSQL
Gateway
Gateway
Gateway
Gateway
Gateway
Gateway
Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to CloudDB
Scalability and Availability: Fabric, Failover, Replication, and Load balancing
Demo
− From “on-prem” to the cloud− Creating an Azure DB− Migrating a DB to Azure
SQL Azure
From “on-prem” to the cloudCreating an Azure DBMigrating a DB to Azure
<demo/>
Overview
− High Availability− Quick Provisioning− Low Cost− _Subset_ of SQL Server 2008− Shared – play nice!
− Throttling− 5 mins idle time− 5 mins long-running operation
SQL Azure Service Provisioning
> Each account has zero or more servers> Azure wide, provisioned in a common portal
> Billing instrument
> Each server has one or more databases> Contains metadata about the databases
> Unit of authentication and security
> Unit of Geo-location
> The server is a logical grouping of your DBs
> Each database has standard SQL objects> Unit of consistency
> Contains users, tables, views, indices, etc…
Account
Server
Database
Case Study
Synchronization− Why you need sync:
− Incremental changes− Unreliable and/or slow network− Conflict detection and resolution− Topology flexibility
− How to get sync:− Build it yourself, but sync is not easy!− Use Microsoft Sync Framework
Example Sync Framework Customers
PricewaterhouseCoopers
Credit Suisse
SyncToy
PIM Data
Files
Relational
Relational
Favorites
Lists
SharePoint 2010
SharePoint Workspace 2010 (Groove)
Summary
On-Premises Applications
Sync
SyncSync
Offline-Capable Cached ModeApplications
Sync
Sync
Sync
Sync
Browser Clients
Business-to-
Business
SQL Azure Platform
SyncFX Application Components
Sync Provider
Sync Application
Sync Provider
Sync Orchestrator
Store
Sync Runtime
Store
Sync Runtime
Changes Changes
Sync()
Configure Configure
Sync Framework
<demo/>
>>FUTURE
• Separates data control from store
• Issues capabilities to encrypt/decrypt data
• Empowers customers and partners
Collaboration with sensitive data
Privacy
ControlAccountabilit
y
Trustworthy Collaboration Example
Sensitive Business
Data
PublishersData Owners
Sensit
ive
busines
s dat
a Sensitive
business data
Subscribers
Auditors
Audit logs
SystemAdministrators
Capability Generation
Center
− Flexible application hosting− Lights-out service management
− Provide code & service model, hit ENTER− Storage at massive scale
Compute StorageManagement
Case Study
Windows Azure
Creating a website & hosting it in Azure
<demo/>
“Web Role”
Web Role
IIS Host
Your Code
Windows Azure
Background Service (“worker”)
<demo/>
“Worker Role”
Worker RoleSystem Host
Your Code
Web vs Worker Role
Web Role
IIS Host
Your Code
Worker RoleSystem Host
Your Code
Storage
Storage
Queue Blob
Tables
Web Role
Worker Role
Drives
Fundamental Storage Concepts− Tables – Provide structured storage. A Table
is a set of entities, which contain a set of properties
− Queues – Provide reliable storage and delivery of messages for an application
− Blobs – Provide a simple interface for storing named files along with metadata for the file
− Drives – Provides durable NTFS volumes for Windows Azure applications to use (new)
31
Queues
Queues
“Thumbnail Jobs”
“Picture1”
Messages
“Picture3”
“Picture2”
Queue Summary
− Pattern− Read -> Process -> Delete
− Must Delete!− Otherwise it re-emerges− New: Dequeue Count
− No guarantee of “delivery” – final processing− Idempotency− No ordering
Azure Queues
Creating a website & hosting it in Azure
<demo/>
Blobs
Containers
Pictures
Photo1.png
Blobs
Photo3.png
Photo2.png
Blob Features and Functions− Store Large Objects (100s of GBs in size)
− Associate Metadata with Blob− Metadata is <name, value> pairs, Up to 8KB
per blob− Set/Get with or separate from blob data bits
− Standard REST Interface− PutBlob, GetBlob, DeleteBlob− CopyBlob, SnapshotBlob, LeaseBlob
− CDN (with Edge services)
Table Storage Concepts
EntitiesTablesAccounts
moviesonline
Users
Movies
Email =…Name = …
Email =…Name = …
Genre =…Title = …
Genre =…Title = …
37
Windows Azure Tables− Provides Structured Storage
− Massively Scalable Tables− Billions of entities (rows) and TBs of data− Can use thousands of servers as traffic
grows
− Highly Available & Durable− Data replicated several times
− Familiar and Easy to use API− ADO.NET Data Services – .NET 3.5 SP1
− .NET classes and LINQ− REST
38
Development Fabric and Storage
Local Machine
Windows Azure Simulation Environment
Development Fabric
Development Storage
Roles
Role
Code Configuration
Case Study
− [NOT Window SERVER AppFabric]− “Velocity” & “Dublin”
− Secure connections between services− Across organizational boundaries
− Claims-based access control
ServiceBus
AccessControl
Service Remoting
• RPC-style, Request/Response or Duplex
Eventing
• One-way communication
• Unicast or Multicast
Tunneling
• Full-Duplex Tunneling of Raw Streams
• TCP, Pipes, Proxies, …
Service Bus – 3 Patterns
Access Control Services
− Claims-based access control− Key capabilities / features:
− Integrates with AD FS v2, but also…− Usable from any platform (for real)− Implements OAuth WRAP & SWT− Enables simple delegation
A web service can take advantage of these capabilities with ONE
code base
How It Works
litware ACSService
Namespace
litware REST Web
Service
4. Return Access
Token
(output claims from
3)
5. Send Messagew/ Access Token
0. Secret exchange; periodically refreshed
Customer
1. Define access control rules for a
customer
6.Token Validate
d
3. Map input claims to output claims based on access control rules
2. Request Access
Token
(Claims)
Case Study
Usage
Com
pu
te
Time
Average
Inactivity
Period
“On and Off “
• On & off workloads (e.g. batch job)• Over provisioned capacity is wasted • Time to market can be cumbersome
Average Usage
Com
pu
te
Time
“Growing Fast“
• Successful services needs to grow/scale
• Keeping up w/ growth is big IT challenge
• Complex lead time for deployment
Com
pu
te
Time
Average Usage
• Services with micro seasonality trends
• Peaks due to periodic increased demand
• IT complexity and wasted capacity
“Predictable Bursting“
Is It For Me?C
om
pu
te
Time
“Unpredictable Bursting“
Average Usage
• Unexpected/unplanned peak in demand
• Sudden spike impacts performance • Can’t over provision for extreme
cases
TicketDirect Architecture
SQL Azure
Castellan
Castellan Venue
DB
Castellan Venue DB’s
Venue 1Partition(
s)
Castellan Venue
DB
Castellan Venue DB’s
Venue 2 Partition(
s)
Castellan Venue
DB
Castellan Venue DB’s
Venue N Partition(
s)
One application DB, many venue DB’s – each partitioned in to many parts (40+)
...
Windows Azure Roles
http:// TicketDirect .* Dynamic Worker(tasks
uploaded as blobs)
Partitioner Worker
Windows Azure StorageQueues for communication between clients and roles
-- - --- - -
-- - --- - -
Tables to record server & partition information
Blobs to store web and worker role resources
Client Applications
Castellan.old (VB6)
Castellan.Azure• Box Office sales• Ticket Printing • System Administration • Venue/Event Management• Partitioning
Service Bus
WCF
On PremisesSQL Server
Castellan Venue
Distributed Cache Worker
Some Other Possible Examples− Simple website
− With HUGE scaling− Worker Role, Queues, Blobs for large-
scale processing− Tables for huge data
− Service Bus for exposing services to partners
− SQL Azure for H/A, Geo-Location
Windows Azure Platform Consumption Prices
Elastic, scalable, secure, & highly available automated service platform
Pay as you go and grow for only what you use when you use it
Compute
$0.12/hour
+ Variable Instance Sizes
Per service hour
Highly available, scalable, and self managed distributed database
service
Web EditionPer database/month
$9.99/month(up to 1 GB DB/month)
Business Edition
$99.99/month(up to 10 GB DB/month)
Per database/month
Storage Per GB stored &
transactions$0.15 GB/month
$0.01/10K transactions
Windows Azure platform AppFabric Service Bus & Access ControlScalable, automated, highly available services for secure connectivity
Access Control
$0.015/10k Message Operations
Per Message Operation $0.015/10k Message
Operations
Per Message Operation
Service Bus
Windows Azure Instance Sizes
Unit of Compute Defined
Small
$0.12
Per service hour
Medium
$0.24
Per service hour
Large
$0.48
Per service hour
X Large
$0.96
Per service hour
Variable instance sizes to handle complex workloads of any size
Small
1 x 1.6Ghz (moderate IO)
Medium
2 x 1.6Ghz (high IO)
Large
4 x 1.6Ghz (high IO)
X-Large
8 x 1.6Ghz(high IO)
Equivalent compute capacity of a 1.6Ghz processor (on 64bit platform)
1.75 GB memory 3.5 GB memory 7.0 GB memory 14 GB memory
250 GB storage(instance storage)
500 GB storage(instance storage)
1000 GB storage(instance storage)
2000 GB (instance storage)
North America Region
S. Central - US Sub-region
N. Central – US Sub-region
Europe Region
W. Europe Sub-region
S.E. AsiaSub-region
Asia Pacific Region
E. AsiaSub-region
$0.10 GB Ingress
$0.15 GB Egress
$0.10 GB Ingress
$0.15 GB Egress
$0.30 GB Ingress
$0.45 GB Egress
N. Europe Sub-region
Windows Azure Platform Data Transfer Priced per GB transferred/month (prices shown in USD)
No Charge For Off Peak Ingress Promotion (ends 6/30/10)
On-board to Windows Azure platform at no charge Off peak times defined as: 10pm-6am Mon-Fri & from 10pm-Fri to 6am-
Mon for weekends in each designated regional time zones below
North America PST = UTC-8
Europe WET = UTC
Asia PacificSST = UTC+8
Quiz Time
− What does the word “Azure” mean?
Resources
− Resources for Developersmsdn.com
− Microsoft Certification & Training Resourcesmicrosoft.com/learning
− Azure Portal - www.azure.com− Azure MSDN portal - http://
msdn.microsoft.com/azure− “How Do I” Videos For Azure -
http://msdn.microsoft.com/en-us/azure/dd439432.aspx
We Want To Hear From You!
Connect with Microsoft South Africa's Developer & Platform Group
blogs.msdn.com/southafricatwitter.com/msdevsaMicrosoft Devs SA
Complete your evaluation and enter to win!
Win a Wireless Entertainment Desktop 8000!
Win an Xbox 360 with DVT!
Be a winner with DVTEnter your details at the
DVT stand and you could
WIN an XBOX 360 ARCADE!
* Terms & conditions apply
Submit an Entry Form at the BB&D Stand and Win*!A Dell Netbook valued at R4,000
Questions and Answers
<questions/>
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,
it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.