Transcript Slide 1

Cloud Computing 360

Bill Zack, Architect Evangelist, Microsoft [email protected]

Blog: blogs.msdn.com/billzack

WhoAmI?

Founder and Co Moderator: New York City .NET Developers Group Founder and President New York chapter: International Association of Software Architects (IASA) Sponsor of the New York Azure User Group Author of several books and white paper Blogger 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 Monitoring

SQL 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 Portal http://azure.com

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

Who is the Azure™ Services Platform for?

Anyone building scalable available services Entrepreneurs ISVs (large and small) Web startups Hobbyists etc.

Why should I bet my business on it?

Consumption-based model (TBA Summer 09) You pay only for what you use No minimum or long term commitment An inexpensive way to experiment Easy to grow as your business grows Managed elastic capacity and scalability Simpler operating and management environment for developers Integrates well with on-premises applications and services Leverages existing technology investments and skills

Sounds great! What should I do next?

Download the Visual Studio tools & SDK Develop and test locally Start experimenting now Get access to the real Cloud Sign up for an account Deploy your application to the cloud Test it out Give us feedback!

Help us “shape the cloud” 

Microsoft Cloud Services Overview

Three categories: Online (+) Live Azure 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 Services SharePoint Online Office Communications Online (not available yet) Live Meeting Dynamics CRM Online

Live

Large set of Microsoft based services Subscribed to by an Aggregator (which could also be Microsoft as in the case of the

Windows Live

portal For 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 applications Multiple Storage types, Database, Internet message relay and pub/sub Workflow

Azure™ Services Platform

Windows® Azure™ (Cloud OS)

Service Management

Compute Essential Storage Developer Experience SQL Services SQL Data Services .NET Services Access Control Service Bus Workflow 13

Windows Azure Service Management

Massive scale Compute & Storage “Fabric” Hundreds / thousands of server nodes Upward / downward scalability Availability & Durability Fault Domains Update Domains Geo-Distribution

Windows Azure Service Management

You focus on your Business Logic We provide “Enlightened Mode” (managed) VMs We handle Automated Service Management Manage services not machines!

Declarative specification (model) Image multi-cast deployment & upgrade Auto scale-out of instances Configuration, Health, Alerts, Usage/Billing, SLA Some programming limitations exist

Provisioning Services

16

Windows Azure Compute

Processing Roles (Front End, Back-End) Web Worker Web + Worker Instances Scalability Distribution Lean OS & Hypervisor based Supports Managed and Unmanaged code

Windows Azure Web Role

Front End Role API Configuration n Store n identical instances of a single role Ex: Highly scalable web application

Windows Azure Web and Worker Roles

Front End Role API Configuration n Queue Store Back End Role API Configuration m Queue enables async, reliable processing Ex: Video encoding application

Windows Azure Storage

Massive scale and low cost Durable, available, scalable and secure Redundant copies, commodity hardware, layered architecture

Blobs:

Simple interface for storing named files along with metadata for the file

Tables:

Structured storage. A set of entities, which contain a set of properties. Partitonable

Queues:

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 Interface PutBlob(BlobName, stream, size) Overwrites the existing blob by that name GetBlob(BlobName, starting offset, length) DeleteBlob(BlobName) Associate Metadata with Blob Metadata is pairs Set/Get with or separate from blob data bits Up to 8KB per blob

Streaming a Blob via Blocks

Uploading a Large Blob

10 GB Movie blobName = “MyMovie”; PutBlock(blobName, blockId1, block1Bits); PutBlock(blobName, blockId2, block2Bits); ………… PutBlock(blobName, blockIdN, blockNBits);

PutBlockList(blobName, blockId1,…,blockIdN) ;

• •

Benefit:

Efficient continuation and retry Parallel and out of order upload of blocks

Windows Azure Storage 23

Windows Azure Storage: Tables

Windows Azure Storage: Tables

Structured storage in the form of Tables A Table is a set of entities (rows) An Entity is a set of properties (columns) Namespace Account Name – Table Name Entity (PartitionKey, RowKey) Table Name You give a unique name to each Table, which is scoped by Account An account can create many tables Focus is to provide Scalable Structured Storage via Tables

Not 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

Scaling Tables through Partitions

Partition Key Document Name

Examples Doc

Row Key Version

V2.0

Column 3 Modification Time

8/2/2007

Column 4 State

Current

…… ….

…… ….

Column N Description

Committed version

Partition 1

Examples Doc FAQ Doc FAQ Doc V2.0.1

V1.0

V1.0.1

9/28/2007 5/2/2007 7/6/2007 Working Current Working Alice’s working version Current committed version Alice’s working version

Partition 2

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 Table’s entities are broken up into Partitions Partition: set of entities with same partition key value PartitionKey RowKey – unique ID for the partition within the Table – unique ID for the row within the partition All Queries are sorted by Partition Key and then by Row Key Each partition can be served by different nodes 27

Why Partition?

Entity Locality Entities in the same partition will be stored together for efficient querying and cache locality when accessing Table Throughput Table 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 delivery Simple, asynchronous work dispatch via queues The programming semantics ensure that a message is retrieved at least once Queue access provided via REST Account can contain Queues Queue contains Messages URL: http://.

queue

.core.windows.net/ Queues contain Messages Message Size <= 8 KB Messages can contain references to blob/table storage 29

Queues

30

Windows Azure Developer Experience

Extends what you already know how to do!

Leverages Visual Studio 3 New Templates Focus on Business Logic, and Leave the scalability and availability to us SDK has The Cloud in a Box!

Emulated cloud services Spin up multiple Roles & Instances F5 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 services Spin up multiple Roles & Instances F5 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 Services

Standard T-SQL over TDS Managed SQL Server Fabric Supports most of what you are used to Relational Schema (Tables, Indexes & Views) Stored Procedures Triggers & Constraints Table Variables & Session Temp Tables Non-Distributed Transactions Connection string change: local to cloud There will be a per-DB max size limit

If Time Permits

we will talk about

.NET Services Access Control Service [Internet] Service Bus Workflow

.NET Services: Access Control Svc

Challenge Ensuring secure transactions for systems in disparate security domains is crucial but difficult to implement COMPANY C COMPANY A ADFS COMPANY B Secure Provides hosted identity and access services for organizations while allowing them to fully control it Federated & Flexible Next-generation AD access and federation services for organization and third-party applications Standards Based Claims based access control using secure tokens Based on standards such as WS-Trust, REST and SOAP

.NET Services: Service Bus

Challenge Applications built in the cloud will need to span systems to talk to other third party apps or applications that are on premise APPLICATION D INTERNET SERVICE BUS APPLICATION A APPLICATION B APPLICATION C Federated Applications can connect securely across firewalls and org boundaries in a loosely coupled, federated manner Powerful Request - Response, and publish subscribe with multiple senders and receivers on a single rendezvous point Simple low footprint download built using standards such as HTTP, RSS, SOAP

Service Bus (WCF Relay Bindings)

Authenticate

3

Client

Identity Service

Trust

Connectivity Service 4

Connect

5 Relayed Connection

Open

2 6 Direct Connection

(optional)

1

Service Authenticate

42

.NET Services: Workflow

Challenge As activities are offloaded to the cloud, how do you do long running multi step activities driven by events Application C Visual Studio XAML Application B Application A Agility Enables you to create workflows without worrying about deployments Simplicity Uses similar programming model as on-premises workflows Federated Enables cross-organization and cross-trust domain workflows

Workflow (Update)

Windows Workflow in the cloud!

XOML only Restricted list of allowed activities Basic “process orchestration” between parties HttpReceive HttpSend ServiceBusSend XPathRead XPathUpdate Basic copy/paste deployment Can also be done via an API 44

Workflow

45

CTP Temporary Limitations (Updt)

Only in Two US data centers so far Access token expiration based on inactivity Quota based account suspension, but arrangements can be made for exceptions Support limited to: Forums Limited incident support 46

CTP Temporary Limitations (Updt)

VMs provided 1 Core 1.9GHZ

2 GB memory 160 GB local storage (non-persistent) 2 role instances 8 VMs in simultaneous use per account 2 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 Authorities 1000 Containers per Authority 1 GB of Blob Entities per Container 100 MB of Flexible Entities per Container Each Blob Entity will be capped at 100mb

Sounds great! What should I do next?

Download the Visual Studio tools & SDK Develop and test locally Start experimenting now Get access to the real Cloud Sign up for an account Deploy 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