1 / 30

Windows Azure Storage

Windows Azure Storage. Olav Tollefsen Microsoft Norge AS Email: olavt@microsoft.com Twitter: olavtoll. Agenda. Windows Azure Storage Blob Storage Tables Queues. Windows Azure Storage. Storage in the Cloud Scalable, durable, and available Anywhere at anytime access

shen
Download Presentation

Windows Azure Storage

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Azure Storage Olav Tollefsen Microsoft Norge AS Email: olavt@microsoft.com Twitter: olavtoll

  2. Agenda Windows Azure Storage Blob Storage Tables Queues

  3. Windows Azure Storage Storage in the Cloud Scalable, durable, and available Anywhere at anytime access Only pay for what the service uses Exposed via RESTful Web Services Use from Windows Azure Compute Use from anywhere on the internet

  4. Windows Azure Storage AccountUser specified globally unique account name Can choose geo-location to host storage account: US Europe Asia North Central US Northern Europe Western Europe East Asia South East Asia South Central US West US East US

  5. Windows Azure Storage Account Can CDN Enable Account Blobs delivered via 24 global CDN nodes Can co-locate storage account with compute account Explicitly or using affinity groups Accounts have two independent 512 bit shared secret keys 100 TBs per account

  6. The Storage Client API In this presentation we’ll cover the underlying RESTful API Can call these from any HTTP cliente.g. Flash, Silverlight, etc… Client API from SDK Microsoft.WindowsAzure.StorageClient Provides a strongly typed wrapper around REST services

  7. Storage Libraries in Many Languages C#/.NET Python Ruby Perl JavaScript (Node) Java PHP Erlang Common LISP Objective-C C#/VB on Windows Phone 7

  8. Storage Security Windows Azure Storage provides simple security for calls to storage service HTTPS endpoint Digitally sign requests for privileged operations Two 512bit symmetric keys per storage account Can be regenerated independently More granular security via Shared Access Signatures

  9. Windows Azure Storage Abstractions Tables Structured storage. A table is a set of entities; an entity is a set of properties. Blobs Simple named files along with metadata for the file. Queues Reliable storage and delivery of messages for an application.

  10. Blob Storage

  11. Blob Storage Concepts http://<account>.blob.core.windows.net/<container>/<blobname> Blob Pages/ Blocks • Account Container PIC01.JPG images Block/Page PIC02.JPG contoso Block/Page videos VID1.AVI

  12. Blob Containers Multiple Containers per Account Special $root container Blob Container A container holds a set of blobs Set access policies at the container level Associate Metadata with Container List the blobs in a container Including Blob Metadata and MD5 NO search/query. i.e. no WHERE MetadataValue = ? Blobs Throughput Effectively in Partition of 1 Target of 60MB/s per Blob

  13. Queues

  14. Queue Storage Concepts Account Queue Message customer ID order ID http://… adventureworks order processing • customer ID order ID http://…

  15. Loosely Coupled Workflow with Queues Enables workflow between roles Load work in a queue Producer can forget about message once it is in queue Many workers consume the queue For extreme throughput (>500 tps) Use multiple queues Read messages in batches Multiple work items per message Input Queue (Work Items) Queue Web Role Worker Role Worker Role Web Role Worker Role Web Role Worker Role

  16. Queue Details Simple asynchronous dispatch queue No limit to queue length subject to storage limit 64kb per message ListQueues - List queues in account Queue operations CreateQueue DeleteQueue Get/Set Metadata Clear Messages

  17. Queue Details Message operations PutMessage– Reads message and hides for time period GetMessages – Reads one or more messages and hides them PeekMessages – Reads one or more messages w/o hiding them DeleteMessage – Permanently deletes messages from queue UpdateMessage – Clients renew the lease and contents

  18. Queue’s Reliable Delivery Guarantee delivery/processing of messages (two-step consumption) Worker queues message and it is marked as Invisible for a specified “Invisibility Time” Worker Deletes message when finished processing If Worker role crashes, message becomes visible for another Worker to process

  19. Windows Azure Storage Summary Fundamental data abstractions to build your applications Blobs: Files and large objects Drives: NTFS APIs for migrating applications Tables: Massively scalable structured storage Queues: Reliable delivery of messages Easy to use via the Storage Client Library Hands on Labs

  20. Hands-On LAB Step 1-4

  21. Tables

  22. Table Storage Concepts Account Table Entity Name =… Email = … customers Name =… EMailAdd= contoso Photo ID =… Date =… photos Photo ID =… Date =…

  23. TableDetails Create, Query, Delete Tables can have metadata Not an RDBMS! Table Insert Update Merge – Partial update Replace – Update entire entity Upsert Delete Query Entity Group Transactions Multiple CUD Operations in a single atomic transaction Entities

  24. Entity Properties Entity can have up to 255 properties Up to 1MB per entity Mandatory Properties for every entity PartitionKey & RowKey (only indexed properties) Uniquely identifies an entity Defines the sort order Timestamp Optimistic Concurrency Exposed as an HTTP Etag No fixed schema for other properties Each property is stored as a <name, typed value> pair No schema stored for a table Properties can be the standard .NET types String, binary, bool, DateTime, GUID, int, int64, and double

  25. No Fixed Schema FAV SPORT Canoeing

  26. Querying ?$filter=Last eq ‘Wegner’

  27. Purpose of the PartitionKey Entity Locality Entities in the same partition will be stored together Efficient querying and cache locality Endeavour to include partition key in all queries Entity Group Transactions Atomic multiple Insert/Update/Delete in same partition in a single transaction Table Scalability Target throughput – 500 tps/partition, several thousand tps/account Windows Azure monitors the usage patterns of partitions Automatically load balance partitions Each partition can be served by a different storage node Scale to meet the traffic needs of your table

  28. Partitions and Partition Ranges Server A Table = Products [MinKey - Canoes) Server A Table = Products Server B Table = Products [Canoes - MaxKey)

  29. Hands-On LAB Step 5, 6, 7

More Related