Architectures with Windows Azure

32

description

Architectures with Windows Azure by Damir Dobric

Transcript of Architectures with Windows Azure

Page 1: Architectures with Windows Azure
Page 2: Architectures with Windows Azure
Page 3: Architectures with Windows Azure

New possibilities with Windows Azure Platform Services

Dipl.-Ing. Damir Dobric

Lead Architectdaenet

Technology Advisor in Business Platform Division – Microsoft Corp.Microsoft Most Valuable Professional

Email: [email protected]: http://developers.de

Page 4: Architectures with Windows Azure

Storage

Caching

Queuing Topics

Agenda

Relaying

Page 5: Architectures with Windows Azure

Moore's Law

• Trend for number of transistors on integrated circuit.• It doubles approximately every two years. • Strongly linked to:

– processing speed, – memory capacity, – and even the number and size of pixels in digital cameras.

• Impact on nearly every segment of the world economy

Page 6: Architectures with Windows Azure

Limit of vertical scale ?

Page 7: Architectures with Windows Azure

256 Core Processor

Page 8: Architectures with Windows Azure

Machine I

PaaS = Multithreaded + Multicore + Multimachine

ProgramWindows Azure Platform

today– tomorrow

Processor x64 – Core I

Thread 1

Thread 2

Processor x64 – Core II

Thread 1

Thread 2

Processor x64 – Core III

Thread 1

Thread 2

Processor x64 – Core IV

Thread 1

Thread 2

Machine I

Processor x64 – Core I

Thread 1

Thread 2

Processor x64 – Core II

Thread 1

Thread 2

Processor x64 – Core III

Thread 1

Thread 2

Processor x64 – Core IV

Thread 1

Thread 2

Page 9: Architectures with Windows Azure

Cloud Services

Software-as-a-Service

CONSUME

“SaaS”Platform-as-a-Service

BUILD

“PaaS”Infrastructure-as-a-

ServiceHOST

“IaaS”

Page 10: Architectures with Windows Azure

Windows Azure ServicesWindows Azure Services

AccessControl

ServiceBus

SQL Server IntegrationStorageCache

Pub/Sub

Queues

Identity

Workflows

WCF Services

Rules

Adapters

Pipelines

Business Activity

Monitoring

Gen Purpose

IndustrySpecific

Transforms

Discovery

Routing

Platform Services

Page 11: Architectures with Windows Azure

Storage Abstractions

• 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

Page 12: Architectures with Windows Azure

Two Types of Blobs Under the Hood• 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

Sample: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx

Page 13: Architectures with Windows Azure

Demo - Storage

Storage

Caching

Queuing TopicsRelaying

Page 14: Architectures with Windows Azure

Caching

Cache Host 1 Cache Host 2

Cluster Configuration

PowerShellAdministration

Cache Client Client ConfigCache Port TCP22233

Cluster Port TCP22234 (live tick)

Arbitration Port TCP22235

Replication Port TCP22233

Page 15: Architectures with Windows Azure

Demo - Caching

Storage

Caching

Queuing TopicsRelaying

Page 16: Architectures with Windows Azure

Service Bus

ConnectivityRelayingTunnelingEventingPush

MessagingQueuesTopicsPubSubBroker

Service RegistryNamingDiscovery

IntegrationRoutingCoordinationTransformation

Page 17: Architectures with Windows Azure

Service Bus Connectivity

Service Bus

Client

1. Outbound, bi-directional TCP socket connection2. Outbound,

bi-directional TCP socket connection

Service

3. Route and relay the message, and send it to the service.

Forwarder

Page 18: Architectures with Windows Azure

WCF Relay Protocol SupportMicrosoft.ServiceBus.dll v1.6

Page 19: Architectures with Windows Azure

Demo - Relaying

Storage

Caching

Queuing TopicsRelaying

Page 20: Architectures with Windows Azure

Operation styles

IntermediarySender Receiver

BrokerSender Receiver

“Push” = Direct send of message to receiver

“Pull” Sender sends message to queue. Broker hold message for query

Page 21: Architectures with Windows Azure

Broker Style (Queuing)

• Load Balancing (Competing Consumer)

• Offline Mode

BrokerSender

Receiver

Receiver

BrokerSender

Receiver

Page 22: Architectures with Windows Azure

Concentrator-Pattern (Fan-In)

QUEUESenderReceiv

er

Sender

Sender

Page 23: Architectures with Windows Azure

Message Distribution (Fan-Out)

TOPICSenderReceiv

er

Receiver

Receiver

Page 24: Architectures with Windows Azure

BrokeredMessageBroker Message

Body

Properties

Key Value

Key Value

Key Value

Key Value

Body

Page 25: Architectures with Windows Azure

Demo - Messaging

Storage

Caching

Queuing TopicsRelaying

Page 26: Architectures with Windows Azure

Receive styles• Receive and Delete

– Faster. – Message lost if

receiver crashes or transmission fails.

• Peek Lock– Slower– Locked when received.– Reappears

if not deleted within lock timeout

– Reappearson Abandon

– Deleted on Complete

Broker ReceiverReceive and Delete

Broker Receiver2. Complete/ Abandon

1. Peek/Lock

Page 27: Architectures with Windows Azure

Transactions SupportTransactions are local - not distributed!

Sender Receiver

Queue

Receiver

Receiver

using (TransactionScope scope = new TransactionScope()){ queueClient.Send(msg1); queueClient.Send(msg2); scope.Complete();}

Page 28: Architectures with Windows Azure

Quotas• Queue/Topic size = 1,2,3,4 or 5 GB (MaxQueueSizeInBytes)• Concurrent connections on a queue/topic = 100• Topics/queues per service namespace = 10000• Message size = 256kb• Message Hader size = 64kb• Number of header properties = int.MaxValue• Maximum size of property in property bag: No explicit limit.

Limited by maximum header size.• Each Property size = 32kb (all together 64kb)• Subscriptions per topic = 2000• Number of SQL Filters = 2000• Number of correlation filters = 100000• MaxSize of filter condition string = 4kb• Max number of expressions per rule = 64

Source: http://msdn.microsoft.com/en-us/library/windowsazure/ee732538.aspx

Page 29: Architectures with Windows Azure

Recap

Storage

Caching

Queuing TopicsRelaying

Page 30: Architectures with Windows Azure

Q&A

Page 31: Architectures with Windows Azure
Page 32: Architectures with Windows Azure