Server Storage: Durable, scalable, & available storage Management: Automated, model-driven management of the service Database: Relational processing for structured/unstructured data Service Bus: General purpose application bus Access Control: Rules-driven, claims-based access control AppFabric
on startup, allows you to perform initialization tasks. Reports Busy status to load balancer until you return true. OnStop() Method Called when role is to be shutdown, graceful exit. Run() Method Main logic is here – can do anything, typically loop and never exit.
replicas Guaranteed consistency Accessible directly from the internet via REST API .NET Client library supported Does not require compute Storage account drives unique URL, e.g.: https://<youraccount>.blob.core.windows.net
account Scoping is at container level …/Container/blobname $root is special name for root container Blobs Two types, Page and Block Page is random R/W, Block has block semantics Metadata, accessed independently name/value pairs (8kb total) Private or Public container access
account Designed for billions+ Scale-out using partitions Partition key & row key Operations performed on partitions Efficient queries No limit on number of partitions Use ADO.NET Data Services
Ch9, Jan-2, 2 1 : Ch9, Jan-2, 2 1 : Ch9, Jan-2, 2 2: Ch9, Jan-2, 5 Use standard HTTP mechanisms – Etag and If-Match Get entity – get system maintained version as ETag Update Entities Locally – change rating Send Update with version check - IF-Match with Etag Success if version matches, and update version on Client-A Precondition failed (412) if version does not match Concurrent Updates 9 : Ch9, Jan-3, 6 If-Match: 1 Ch9, Jan-2, 5 If-Match: 1 Ch9, Jan-2, 4 Version Rating 1: Ch9, Jan-2, 4 1: Ch9, Jan-2, 5 Error: 412 2: Ch9, Jan-2, 5
= new Uri("http://<account>.table.core.windows.net"); DataServiceContext context = new DataServiceContext(serviceUri); var allMessages = context.CreateQuery<Message>("Messages"); foreach (Message message in allMessages.Take(100)) { Console.WriteLine(message.Name); } GET http://<serviceUri>/Messages?$top=100
Snapshot isolation for query within a single partition Consistent view from start time of the query No dirty (uncommitted) reads Does not block concurrent updates No snapshot isolation across partitions No snapshot isolation across different continuations of a query Batch transactions within partition only
When a channel is deleted, delete all the messages for that channel Failures can occur in the middle Example - Application fails after deleting some messages Use Windows Azure Queues to help ensure completion of operation
within MS Datacenter (Azure compute – ADO.NET) Windows Azure T-SQL (TDS) MS Datacenter T-SQL (TDS) App Code / Tools SQL Azure access from outside MS Datacenter (On-premises – ADO.NET) App Code (ASP.NET) ADO.NET Data Svcs/REST - EF HTTP/S Code Far SQL Data Services SQL Data Services Application/ Browser Code Near
Stored Procedures Triggers Constraints Table variables, session temp tables (#t) Spatial … Not Currently Supported Distributed Transactions Distributed Query CLR Service Broker Physical server or catalog DDL and views
gateways, and other problematic network boundaries Lower barriers to building composite applications by exposing endpoints easily, supporting multiple connection options and publish and subscribe for multicasting. Lightweight developer friendly programming model that supports standard protocols and extends similar standard bindings for Windows® Communication Foundation programmers Helps blocks malicious traffic and shields your services from intrusions and denial-of-service attacks Access Control Federated identity and access control through rule based authorization enables applications to respond as if the user accounts were managed locally Flexible standards-based service that supports multiple credentials and relying parties Lightweight developer-friendly programming model based on the Microsoft .NET Framework and Windows Communication Foundation
consist of three service components: Service provider: The REST Web service. Service consumer: The client application that accesses the Web service. Token issuer: The AppFabric Access Control service itself. AppFabric Access Control features Cross-platform support. AppFabric Access Control can be accessed from applications that run on on almost any operating system or platform that can perform HTTPS operations. Active Directory Federation Services (ADFS) version 2.0 integration. This includes the ability to parse and publish WS-Federation metadata. Lightweight authentication and authorization using symmetric keys and HMACSHA256 signatures. Configurable rules that enable mapping input claims to output claims. Web Resource Authorization Protocol (WRAP) and Simple Web Token (SWT) support.
Java™ Developers PHP Windows Azure SDK for PHP Windows Azure Command-line Tools for PHP AppFabric SDK for PHP Developers Ruby AppFabric SDK for Ruby Developers
Edition: 1 GB @ $9.99/month | 5 GB @ $49.95/month Business Edition: Up to 50 GB @ $99.99/10 GB/month 10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95 You specify Web or Business Edition Web: EDITION = Web Business: EDITION = Business You specify MAXSIZE Web: MAXSIZE = 1GB| 5GB Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB This is the size we will not let you grow beyond You will be charged for the actual (peak) size (in any one day) CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB); CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB); CREATE DATABASE bar1 (EDITION='web', MAXSIZE=5GB); CREATE DATABASE bar2 (EDITION='web'); -- Defaults to 1GB
connections $3.99 per connection on a “pay-as-you-go” basis $9.95 for a pack of 5 connections $49.75 for a pack of 25 connections $199 for a pack of 100 connections $995 for a pack of 500 connections Data transfers Data transfers = $0.10 in / $0.15 out / GB - ($0.30 in / $0.45 out / GB in Asia)*
Today Introductory 8-month Offer Available Today Services by Subscription Level (no extra charge) * Premium, Ultimate & BizSpark Windows Azure Small compute instance 750 hours / month Storage 10 GB Transactions 1,000,000 / month AppFabric Service Bus Connections 5 / month Access Control Transactions 1,000,000 / month SQL Azure Web Edition databases (1GB) 3 Data Transfers Europe and North America 7 GB in / month 14 GB out / month Asia Pacific 2.5 GB in / month 5 GB out / month Estimated retail value for 8 months (USD): $1,264