Scott Zimmerman Solutions Architect, SOA/.NET/Azure/BizTalk Agenda Overview of Azure Services Platform Windows Azure Storage: Tables, Queues, BLOBs Compute: Web Role, Worker.
Download ReportTranscript Scott Zimmerman Solutions Architect, SOA/.NET/Azure/BizTalk Agenda Overview of Azure Services Platform Windows Azure Storage: Tables, Queues, BLOBs Compute: Web Role, Worker.
Scott Zimmerman Solutions Architect, SOA/.NET/Azure/BizTalk Agenda Overview of Azure Services Platform Windows Azure Storage: Tables, Queues, BLOBs Compute: Web Role, Worker Role Azure Services Platform Infrastructure Getting Started Quick Tour Q&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,000 B: 12 * $12,000 = $144,000 Hypothetical savings = $60,000 Windows Azure is a cloud OS Scalability, Security, Interoperability Microsoft forecasts half of Exchange, SharePoint, and Dynamics CRM revenue coming from online versions within five years. Accelerating Business Productivity Optimization Business Productivity Online Suite Basic Basic e-mail & traditional phone File Share collaboration and ad hoc teaming Standardized Rationalized Dynamic Unified Communications Integrated, softwarepowered business communications Collaboration Federated collaboration outside the firewall Continuum of Services Cloud 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 AzureHosted: Standard apps (Exchange, SQL, SharePoint); Distributed apps; Dynamically scalable apps Azure Services Platform ™ Write Applications for Windows Azure 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 Worker Role Web Role User Queues, Tables, BLOBs Application Cloud On Premise Should every developer in your company start using cloud services? Azure Web Role Azure Storage .NET Services SDS BizTalk Server 2009 Geneva Compose, Aggregate, Transform, Connect, Publish, Monitor, Govern SharePoint SQL Server SAP Oracle Peoplesoft Live Services AD Siebel Custom Apps… Windows Azure Architecture LB Internet WebSite Site Web (ASPX, ASMX, Web (ASPX, Site ASMX, Worker Worker Service Service WCF) (ASPX, WCF) WCF) Your Service Queue LB Blobs Tables Storage Windows Azure Datacenter 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 async delivery of messages for an application. Windows Azure Storage Concepts Container Blobs http://<account>.blob.core.windows.net/<container> Account Table Entities http://<account>.table.core.windows.net/<table> Queue Messages 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 GB Containers can be “Public Read” or “Private” PutBlock… PutBlock… PutBlockList Blocks can go out of order and/or in parallel Blob Storage Concepts Account Container pictures Blob Block IMG001. JPG IMG002. JPG sally Block 1 movies MOV1.AVI 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 Tables Provides Structured Storage Massively Scalable Tables Billions of entities (rows) and TBs of data Automatically scales to thousands of servers as traffic grows Durable Data replicated at least 3 times (in different domains) Familiar and Easy to use Programming Interfaces ADO.NET Data Services and LINQ – .NET 3.5 SP1 REST - with any platform or language Windows Azure Table Capabilities What tables can do What tables don’t do Not relational No Referential Integrity No Joins Limited Queries No Group by No Aggregations No Transactions Cheap Very Scalable Flexible Durable Table Data Model Table Each account can create many tables Just insert into a master table called "Tables“ (per account) Data is stored in Tables A 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 Key It is the first property (column) of your Table Used 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 Example Partition Key Row Key Property 3 Document Version Modification Name Time … Property N Description Examples Doc V1.0 8/2/2007 … Committed version Examples Doc V2.0.1 9/28/2007 Partition 1 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 Partition FAQ Doc V1.0.2 8/1/2007 Sally’s working version 2 • Get all versions of FAQ Doc is fast (single partition) • Get all documents before 9/1/2007 takes longer Getting Started Example Requirements Employees at WorldWide Palindrome need to reverse strings. 2. They need a web page to submit strings to Windows Azure and view results. 1. Use Cases 1. 2. 3. 4. 5. User: User: User: User: User: create workspace submit string get results delete record delete workspace UML Sequence Diagram User Web Role Queue Worker Role Table Create Workspace Create Table Submit String Enqueue String Dequeue String Insert Reversed String View Results Query Results .NET or REST ADO.NET Data Services REST Interface Use .NET 3.5 SP1 Use any HTTP stack Data represented as .NET Data represented in Atom objects Use DataServiceContext methods for updates Use LINQ to define queries Richer error codes (XML) Use HTTP verbs for updates Use URLs to define queries Standard HTTP errors Windows Azure Service Lifecycle Goal is to automate life cycle as much as possible Coding & Modeling Provisioning • New services and updates •Desired configuration Developer Developer/ Deployer Deployment • Mapping and deploying to actual hardware • Network configuration Automated Maintain goal state • Monitor • React to events Automated Windows Azure Automation Fabric Controller (FC) “What” is needed Maps declarative service specifications to available resources Manages service life cycle starting from bare metal Maintains system health and satisfies SLA Fabric Controller Make it happen What’s special about it Model-driven service management Enables utility-model shared fabric Automates hardware management Fabric Loadbalancers Switches Windows Azure Compute Instance Community Tech Preview (CTP) offers one virtual machine type Platform: 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 Fault/Update Domains Fault domains are based on the topology of the data center Statistical in nature Fault domains 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 Allocation is across fault domains Getting Started 1. 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 Quick Tour Q&A 1. 2. 3. 4. 5. 6. 7. Please visit Azure.com Get a token Install SDK Read white papers Watch PDC and MIX videos Get sample code in “Azure Training Kit” Create your application