52
Cloud Computing 360 Bill Zack, Architect Evangelist, Microsoft [email protected] Blog: blogs.msdn.com/billzack

Cloud Computing 360 Bill Zack, Architect Evangelist, Microsoft [email protected] Blog: blogs.msdn.com/billzack

Embed Size (px)

Citation preview

Cloud Computing 360

Bill Zack, Architect Evangelist, [email protected]: blogs.msdn.com/billzack

WhoAmI?

Founder and Co Moderator: New York City .NET Developers GroupFounder and President New York chapter: International Association of Software Architects (IASA)Sponsor of the New York Azure User GroupAuthor of several books and white paperBlogger on Cloud Services

http://blogs.msdn.com/billzack

Architect Evangelist for Microsoft

In case we don’t get to it learn more at a Windows Azure User Group

www.azureusergroup.com

Windows Azure: Application Model & Roles, Cloud Storage, Health MonitoringSQL Services: SQL Data Services, Queries, Sync.NET Services: Internet Service Bus , Access Control , Workflow Live Services: Live ID, Live Mesh

Additional Resources

The Azure Services Portalhttp://azure.com

The Documentation Libraryhttp://msdn.microsoft.com/en-us/azure

Who is the Azure™ Services Platform for?

Anyone building scalable available services

EntrepreneursISVs (large and small)Web startupsHobbyistsetc.

Why should I bet my business on it?

Consumption-based model (TBA Summer 09)You pay only for what you useNo minimum or long term commitmentAn inexpensive way to experimentEasy to grow as your business grows

Managed elastic capacity and scalabilitySimpler operating and management environment for developersIntegrates well with on-premises applications and servicesLeverages existing technology investments and skills

Sounds great! What should I do next?

Download the Visual Studio tools & SDKDevelop and test locallyStart experimenting now

Get access to the real CloudSign up for an accountDeploy your application to the cloud Test it out

Give us feedback!Help us “shape the cloud”

Microsoft Cloud Services Overview

Three categories:Online (+)LiveAzure Services Platform

Online +

Microsoft or partner hosted versions of on-premise software. Most carry “Online” moniker. (Some do not )Hosted services include:

Exchange Online and Exchange Hosted ServicesSharePoint OnlineOffice Communications Online (not available yet)Live MeetingDynamics CRM Online

Live

Large set of Microsoft based servicesSubscribed to by an Aggregator (which could also be Microsoft as in the case of the Windows Live portalFor adding functionality to web sites the Aggregators offers up to Internet clients.

Azure Services Platform

Used to build distributed applications and data which may involve on-premise and cloud based components. It provides:

Cloud based Execution of ASP.NET and batch applicationsMultiple Storage types, Database, Internet message relay and pub/subWorkflow

Azure™ Services Platform

Windows® Azure™ (Cloud OS)Service ManagementComputeEssential StorageDeveloper Experience

SQL ServicesSQL Data Services

.NET ServicesAccess ControlService BusWorkflow

13

Windows Azure Service Management

Massive scaleCompute & Storage “Fabric”Hundreds / thousands of server nodesUpward / downward scalability

Availability & DurabilityFault DomainsUpdate Domains

Geo-Distribution

Windows Azure Service Management

You focus on your Business LogicWe provide “Enlightened Mode” (managed) VMsWe handle Automated Service Management

Manage services not machines!Declarative specification (model)Image multi-cast deployment & upgradeAuto scale-out of instancesConfiguration, Health, Alerts, Usage/Billing, SLA

Some programming limitations exist

Provisioning Services

16

Windows Azure Compute

Processing Roles (Front End, Back-End)WebWorkerWeb + Worker

InstancesScalabilityDistributionLean OS & Hypervisor basedSupports Managed and Unmanaged code

Windows Azure Web Role

n identical instances of a single roleEx: Highly scalable web application

Store

Front End RoleLB

APIConfiguratio

n

n

Windows Azure Web and Worker Roles

Queue enables async, reliable processingEx: Video encoding application

Store

Front End RoleLB

Back End Role

APIConfiguratio

n

APIConfiguratio

n

n m

Queue

Windows Azure Storage

Massive scale and low costDurable, available, scalable and secureRedundant copies, commodity hardware, layered architecture

Blobs: Simple interface for storing named files along with metadata for the fileTables: Structured storage. A set of entities, which contain a set of properties. PartitonableQueues: Reliable storage and delivery of messages for an application

Windows Azure Storage: Blobs

Store Large Objects (up to 50 GB each)Account/Container/Blob/Block naming

Standard REST Put/Get InterfacePutBlob(BlobName, stream, size)

Overwrites the existing blob by that name

GetBlob(BlobName, starting offset, length)DeleteBlob(BlobName)

Associate Metadata with BlobMetadata is <name, typed value> pairsSet/Get with or separate from blob data bitsUp to 8KB per blob

Streaming a Blob via Blocks

Uploading a Large Blob

10 GB Movie

Windows Azure Storage

Windows Azure Storage

Blo

ck I

d 1

Blo

ck I

d 2

Blo

ck I

d 3

Blo

ck I

d N

blobName = “MyMovie”;PutBlock(blobName, blockId1, block1Bits);PutBlock(blobName, blockId2, block2Bits);

…………PutBlock(blobName, blockIdN, blockNBits);

PutBlockList(blobName, blockId1,

…,blockIdN);

MyMovie

MyMovie

Benefit: • Efficient continuation

and retry • Parallel and out of

order upload of blocks

23

Windows Azure Storage: Tables

Windows Azure Storage: Tables

Structured storage in the form of TablesA Table is a set of entities (rows)An Entity is a set of properties (columns)

NamespaceAccount Name– Table Name

Entity (PartitionKey, RowKey)Table Name

You give a unique name to each Table, which is scoped by AccountAn account can create many tables

Focus is to provide Scalable Structured Storage via TablesNot a relational database (e.g., no foreign keys, no joins, etc)

Windows Azure Storage: Tables

Your table can grow to be billions of entities (rows) and TBs of data

The table may need to be spread across thousands of servers to handle traffic to that table

Partitioning is how we spread the table out

The Table’s entities are broken into partitions

Partition KeyDocument Name

Row KeyVersion

Column 3Modification Time

Column 4State

……….

Column NDescription

Examples Doc V2.0 8/2/2007 Current ……….

Committed version

Examples Doc V2.0.1 9/28/2007 Working Alice’s working version

FAQ Doc V1.0 5/2/2007 Current Current committed version

FAQ Doc V1.0.1 7/6/2007 Working Alice’s working version

FAQ Doc V1.0.2 8/1/2007 Working Sally’s working version

FAQ Doc V1.0.3 9/6/2007 Working Bob’s working version

Scaling Tables through Partitions

Table’s entities are broken up into PartitionsPartition: set of entities with same partition key value

PartitionKey – unique ID for the partition within the TableRowKey – unique ID for the row within the partitionAll Queries are sorted by Partition Key and then by Row Key

Each partition can be served by different nodes

Partition 1

Partition 2

27

Why Partition?

Entity LocalityEntities in the same partition will be stored together for efficient querying and cache locality when accessing

Table ThroughputTable Storage automatically performs partition load balancing based upon the partition key Scale to meet the traffic needs of your application

28

Windows Azure: Queues

Provides reliable queued message deliverySimple, asynchronous work dispatch via queuesThe programming semantics ensure that a message is retrieved at least once

Queue access provided via RESTAccount can contain QueuesQueue contains MessagesURL: http://<Account>.queue.core.windows.net/<QueueName>

Queues contain MessagesMessage Size <= 8 KBMessages can contain references to blob/table storage29

Queues

30

Windows Azure Developer Experience

Extends what you already know how to do!Leverages Visual Studio

3 New TemplatesFocus on Business Logic, andLeave the scalability and availability to us

SDK has The Cloud in a Box!Emulated cloud servicesSpin up multiple Roles & InstancesF5 debugging & breakpoints

No Breakpoints in the real cloud!Logging/tracing to cloud based log files

Debugging

SDK includes the Cloud “In a Box”. Emulated cloud servicesSpin up multiple Roles & InstancesF5 debugging & breakpoints

No Breakpoints in the real cloud!Logging/tracing to cloud based log files

32

Demo: The Cloud in a Box!

Windows Azure Development Fabric

34

Windows Azure Testing Modes

Deployment

37

SQL Services: SQL Data ServicesStandard T-SQL over TDS

Managed SQL Server FabricSupports most of what you are used to

Relational Schema (Tables, Indexes & Views)Stored ProceduresTriggers & ConstraintsTable Variables & Session Temp TablesNon-Distributed Transactions

Connection string change: local to cloudThere will be a per-DB max size limit

If Time Permits we will talk about

.NET ServicesAccess Control Service[Internet] Service BusWorkflow

.NET Services: Access Control Svc

Provides hosted identity and access services for organizations while allowing them to fully control it

Next-generation AD access and federation services for organization and third-party applications

Claims based access control using secure tokensBased on standards such as WS-Trust, REST and SOAP

Secure

Federated &Flexible

StandardsBased

ChallengeEnsuring secure transactions for systems in disparate security domains is crucial but difficult to implement

ADFS

COMPANY C

COMPANY B

COMPANY A

.NET Services: Service Bus

ChallengeApplications built in the cloud will need to span systems to talk to other third party apps or applications that are on premise

APPLICATION CAPPLICATION BAPPLICATION A

APPLICATION D

INTERNET SERVICE BUS

Applications can connect securely across firewalls and org boundaries in a loosely coupled, federated manner

Request - Response, and publish subscribe with multiple senders and receivers on a single rendezvous point

low footprint download built using standards such as HTTP, RSS, SOAP

Federated

Powerful

Simple

ServiceClient

RelayedConnection

Connect Open

Authenticate

Authenticate

1

3

24

Identity Service

Connectivity Service

Trust

Service Bus (WCF Relay Bindings)

DirectConnection(optional)

5

6

42

.NET Services: Workflow

ChallengeAs activities are offloaded to the cloud, how do you do long running multi step activities driven by events

Visual Studio

XAML

Application A

Enables you to create workflows without worrying about deployments

Uses similar programming model as on-premises workflows

Enables cross-organization and cross-trust domain workflows

Agility

Simplicity

Federated

Application B

Application C

Workflow (Update)

Windows Workflow in the cloud!XOML onlyRestricted list of allowed activities

Basic “process orchestration” between parties

HttpReceiveHttpSendServiceBusSendXPathReadXPathUpdate

Basic copy/paste deploymentCan also be done via an API

44

Workflow

45

CTP Temporary Limitations (Updt)

Only in Two US data centers so farAccess token expiration based on inactivityQuota based account suspension, but arrangements can be made for exceptionsSupport limited to:

ForumsLimited incident support

46

CTP Temporary Limitations (Updt)

VMs provided1 Core 1.9GHZ2 GB memory160 GB local storage (non-persistent)

2 role instances8 VMs in simultaneous use per account2 role instances x 2 roles x 2 tenants (staging and production). This will not be a limitation of the final release. 

CTP Temporary Limitations (Repl)

50 GB of storage across all Authorities1000 Containers per Authority 1 GB of Blob Entities per Container100 MB of Flexible Entities per ContainerEach Blob Entity will be capped at 100mb

 

Sounds great! What should I do next?

Download the Visual Studio tools & SDKDevelop and test locallyStart experimenting now

Get access to the real CloudSign up for an accountDeploy your application to the cloud Test it out

Give us feedback!Help us “shape the cloud”

Security White Papers & Blog

Securing Microsoft’s Cloud Infrastructure Security in Microsoft Business Productivity Online Suite Securing Microsoft’s Cloud Infrastructure

Microsoft ®

Your Potential, Our Passion