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
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
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