Post on 27-Dec-2015
Scott ZimmermanSolutions Architect, SOA/.NET/Azure/BizTalk
AgendaOverview of Azure Services PlatformWindows Azure
Storage: Tables, Queues, BLOBsCompute: Web Role, Worker Role
Azure Services Platform InfrastructureGetting StartedQuick TourQ&A
We’re running scale services now 2B Live Search queries/month 30B Live ID authentications/month 240B Messenger messages/month
We’re building to run your services $500 million per data center 10,000 servers/month
What’s in it for me?Suppose competitors A and B have similar systems to merge
flat files from their branch locations each night, and display aggregate results in web applications.
Both systems have an isolated operations cost (including administration, data management, computing, storage, security, power, and insurance) of $12,000/month.
The CIO at Company A is converting her system to cloud computing. It will take 3 months to implement, at a cost of $13,000/month.
Then her operations cost will drop to $1,000/month. Will she save money the first year?
A: 3 * $12,000 + 3 * $13,000 + 9 * $1000 = $84,000B: 12 * $12,000 = $144,000
Hypothetical savings = $60,000
Azure™ Services Platform
Windows Azure is a cloud OSScalability, Security, Interoperability
Microsoft forecasts half of Exchange, SharePoint, and Dynamics CRM revenue coming from online versions within five years.
Standardized
StandardizedDynamic
DynamicRationalized
Rationalized
Accelerating Business Productivity Optimization
Integrated, software- powered business communications
Unified Communications
Federated collaboration outside the firewall
Collaboration
Business Productivity Online Suite
Basic
Basic
Basic e-mail & traditional phone
File Share collaboration and ad hoc teaming
Continuum of ServicesCloud services have greater economies of scale,
but less flexibility.
S+S = Hybrid Approach
In-House:Custom
applications with
competitive advantages; low latency required; firewall
incompatible
Azure-Hosted:
Standard apps (Exchange,
SQL, SharePoint); Distributed
apps;Dynamically
scalable apps
ServiceBus
AccessControl
Workflow
…
Database
Reporting
Analytics
…
Compute Storage Manage
Identity
Devices
Contacts
…
…
…
Your Applications
Azure™ Services Platform
Write Applications for Windows Azure
Microsoft Visual StudioDevelopment Environment
Coming Soon
Your CloudApplication
Developers
End Users
Windows Azure Compute
Web Role – Provides internet access to ASP.NET user interface or web service.
Worker Role – Provides back-end
computing service, e.g. number crunching.
Windows Azure: many design options
Web Role
Worker Role
Queues, Tables, BLOBs
User ApplicationOn Premise
Cloud
Should every developer in your company start using cloud services?
Azure Web Role
BizTalk Server 2009Compose, Aggregate, Transform, Connect,
Publish, Monitor, Govern
SharePoint
SQL Server
Siebel
Peoplesoft
SAPOracl
eCustom Apps…
Geneva
AD
.NET Services
Live Services
Azure Storage
SDS
Windows Azure Datacenter
Your Service
Windows Azure Architecture
LB
Internet
Web Site(ASPX, ASMX,
WCF)
Web Site(ASPX, ASMX,
WCF)Web Site(ASPX, WCF)
Worker ServiceWorker Service
LB
StorageTables
Blobs
Queue
Windows Azure Storage
Blobs – Provide a simple interface for storing files and metadata for the file.
Tables – Provide structured storage. A
Table is a set of entities, which contain a set of properties.
Queues – Provide reliable storage and asyncdelivery of messages for an application.
Account
Container Blobs
Table Entities
Queue Messages
Windows Azure Storage Concepts
http://<account>.blob.core.windows.net/<container>
http://<account>.table.core.windows.net/<table>
http://<account>.queue.core.windows.net/<queue>
Windows Azure BLOBs
BLOBs are for storing files
BLOBs consist of 1 or more blocks (of variable size you choose)
Blocks provide continuation (in case of network failures) for BLOB upload
Max block size <= 4 MB
Max BLOB size <= 50 GBContainers can be “Public Read” or
“Private”PutBlock… PutBlock… PutBlockListBlocks can go out of order and/or in
parallel
Blob Storage Concepts
BlockBlobContainerAccoun
t
sally
pictures
IMG001.JPG
IMG002.JPG
movies MOV1.AVI
Block 1
Block 2
Block 3
Windows Azure Queues
An Account can create many Queues
Queue contains unlimited number of Messages
Message is stored for at most a week
Message Size <= 8 KB (point to BLOB or Table for more)
When pulling a Message, specify InvisibilityTime
InvisibilityTime <= 2 hours
Messages should be IDEMPOTENT
Windows Azure TablesProvides Structured Storage
Massively Scalable Tables Billions of entities (rows) and TBs of data Automatically scales to thousands of servers as traffic
growsDurable
Data replicated at least 3 times (in different domains)
Familiar and Easy to use Programming InterfacesADO.NET Data Services and LINQ – .NET 3.5
SP1REST - with any platform or language
Windows Azure Table Capabilities
What tables don’t do
Not relationalNo Referential Integrity
No JoinsLimited Queries
No Group byNo AggregationsNo Transactions
CheapVery Scalable
FlexibleDurable
What tables can do
Table Data ModelTable
Each account can create many tablesJust insert into a master table called "Tables“ (per
account)
Data is stored in TablesA Table is a set of Entities (rows)An Entity is a set of Properties (columns)
Entity (row)Two “key” properties are together the unique ID of
the entity in the Table PartitionKey – enables scalability RowKey – uniquely identifies the entity within the partition
Partition Key And Partitions
Every Table has a Partition KeyIt is the first property (column) of your
TableUsed to group entities in the Table into
partitions—for physical storage optimization
A Table Partition All entities in a Table with the same
partition key value
Partition KeyDocument Name
Row KeyVersion
Property 3Modification Time
… Property NDescription
Examples Doc
V1.0 8/2/2007 … Committed version
Examples Doc
V2.0.1 9/28/2007 Alice’s working version
FAQ Doc V1.0 5/2/2007 Committed version
FAQ Doc V1.0.1 7/6/2007 Alice’s working version
FAQ Doc V1.0.2 8/1/2007 Sally’s working version
Partition Example
Partition 1
Partition 2
• Get all versions of FAQ Doc is fast (single partition)
• Get all documents before 9/1/2007 takes longer
Getting Started Example
Use Cases1. User: create workspace2. User: submit string3. User: get results4. User: delete record5. User: delete workspace
Requirements1. Employees at WorldWide Palindrome need to
reverse strings.2. They need a web page to submit strings to
Windows Azure and view results.
UML Sequence DiagramTable
Create Workspace
Submit String
Results
Worker Role
Web Role
User
Create Table
Enqueue String
Insert Reversed String
View Results
Query
Queue
Dequeue String
.NET or REST
Use .NET 3.5 SP1Data represented
as .NET objectsUse DataServiceContext
methods for updatesUse LINQ to
define queriesRicher error codes
Use any HTTP stackData represented
in Atom (XML)Use HTTP verbs for
updatesUse URLs to
define queriesStandard HTTP errors
ADO.NET Data Services
REST Interface
Windows Azure Service LifecycleGoal is to automate life cycle as much as possible
Coding & Modeling
• New services and updates
Provisioning
• Desired configuration
Deployment
• Mapping and deploying to actual hardware
• Network configuration
AutomatedAutomatedDeveloper Developer/Deployer
Fabric Controller (FC) Maps declarative
service specifications to available resources
Manages service life cycle starting from bare metal
Maintains system health and satisfies SLA
What’s special about itModel-driven
service management Enables utility-model
shared fabricAutomates hardware
management
Windows Azure Automation
“What” is
needed
Make it happen
Fabric
SwitchesLoad-
balancers
Fabric Controller
Community Tech Preview (CTP) offers one virtual machine typePlatform: 64-bit Windows Server 2008
CPU: 1.5-1.7 GHz x64
Memory: 1.7 GB
Network: 100 Mbps
Transient local storage: 250 GB
Windows Azure storage also available: 50 GB
Windows Azure Compute Instance
Fault domains are based on the topology of the data center
Statistical in nature
Update domains are determined by what percentage of your service you will take out at a time for an upgrade
System considers fault domains when allocating service roles
System considers update domains when upgrading a service
Fault/Update Domains
Allocation is across fault
domains
Fault domains
Getting Started
1. Please visit Azure.com2. Get a token3. Install SDK4. Read white papers5. Watch PDC and MIX videos6. Get sample code in “Azure Training
Kit”7. Create your application
Quick Tour
Q & A1. Please visit Azure.com
2. Get a token
3. Install SDK
4. Read white papers
5. Watch PDC and MIX videos
6. Get sample code in “Azure Training Kit”
7. Create your application