35
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL [email protected] www.welcometoyoga.com www.ChanderDhall.com Twitter @csdhall

Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL [email protected]

Embed Size (px)

Citation preview

Page 1: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Austin code camp 2010

asp.net apps with

azure table storage

PRESENTED BYCHANDER SHEKHAR DHALL

csdhall@ChanderDhall.comwww.welcometoyoga.comwww.ChanderDhall.com

Twitter @csdhall

Page 2: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

www.welcometoyoga.com

Page 3: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

wARNING

• THIS PRESENTATION IS ON A MAC

Page 4: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Worked on Azure?

Counts

Page 5: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Specifically Azure Table Storage?

Counts

Page 6: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Planning to use Azure?

Counts

Page 7: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Working for Start-Up?

Counts

Page 8: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Attended PDC?

Counts

Page 9: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Attending Tech-ED?

Counts

Page 10: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

• Anyone Recording?

Counts

Page 11: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Why Azure?

Page 12: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

azure

• Windows Azure is the foundation of Microsoft’s Cloud Platform

• It is an “Operating System in the Cloud” and provides Essential Services for the cloud Virtualized Computation Scalable Storage Automatic Management Developer SDK

Page 13: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

azure

Page 14: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

azure

Page 15: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Azure Roles

• An Azure application is implemented with a Web and/or a Worker role. Developer defines what the role does. Azure takes care of the rest. Each VM assigner to a role.

Page 16: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Azure Roles

Page 17: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Stateless

• Azure Web Roles must be designer to be stateless Request from the same user may reach different

web role instances. Store state in Azure storage or client side.

Page 18: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Stateless

Page 19: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Windows Azure data storage

• Azure allow data to be stored in: Blobs (large items of user data) Tables(simple tables, caches) Queues(service communicationz)

• Massive scale, availability and durability.

• Everything is accessible via RESTful services.

Page 20: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Fundamental data abstractions• Blobs – Provide a simple interface for storing

named files along with 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 delivery of messages for an application

Page 21: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Windows Azure data storage

Page 22: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Windows azure tables

• Provides Structured Storage Massively Scalable Tables

• Billions of entities (rows) and TBs of data• Can use thousands of servers as traffic grows

Highly Available• Can always access your data

Durable• Data is replicated several times

• Familiar and Easy to use API ADO.NET Data Services – .NET 3.5 SP1

• .NET classes and LINQ• REST – with any platform or language

Page 23: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Agenda

• Data model

• Demo – creating Tables

• Demo – creating Blobs

• Demo – creating Queues

• Basic CRUD using .NET and REST

• Best Practices

• Demo – A better Approach

Page 24: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Data model

• TableA Storage Account can create many tablesTable name is scoped by Account

• Data is stored in TablesA Table is a set of Entities (rows)An Entity is a set of Properties (columns)

• EntityTwo “key” properties that together

are the unique ID of the entity• PartitionKey – enables scalability• RowKey – uniquely identifies

the entity within the partition

Page 25: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

partition

Table Partition – all entities in table with same partition key value

Application controls granularity of partition

Page 26: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

partition

Table Partition – all entities in table with same partition key value

Application controls granularity of partition

Partition KeyItem

Row KeyModelNo

Property 3Sold

Property 4

Laptop M1.0.0.0 10/1/2010

Laptop M1.0.0.1 23/1/2010

PC V1.0 5/2/2007

PC V1.0.1 7/6/2007

PC V1.0.2 8/1/2007

Page 27: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Partiton guidelines

• Performance Use a PartitionKey that is

common in your queries• Entities with same partition key value are

clustered

• Scalability We monitor partition traffic Automatically load balance partitions

• Each partition can potentially be served by a different storage node

• Scale to meet the traffic needs of your application More partitions – makes it easier

to balance load

Page 28: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

DEMO

TALK IS CHEAP. SHOW ME THE CODE

- LINUS TORVALDS

Page 29: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

entities and properties

• Each Entity can have up to 255 properties

• Every Entity has fixed key properties Partition key Row key

• No fixed schema for rest of properties 2 entities in the same table

can have different properties Properties stored as <Name, TypedValue> pairs

• Each entity has a system maintained version

Page 30: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Automated service management• Our responsibilities

Develop and model the service. Deploy the service to the cloud. Configure the settings and constraints.

• Azure’s responsibilities Run the service. Maintain the service’s health. Configure the settings and constraints.

Page 31: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Azure services

Page 32: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Azure services

Page 33: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Property types

• Partition key and Row key String (up to 64KB)

• Other properties String (up to 64KB) Binary (up to 64KB) Bool DateTime GUID Int Int64 Double

Page 34: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

References (bing it out)

• Azure Team Blog.

• Channel 9 webcast/RSS.

• For beginners – Azure platform toolkits

• White papers on Azure Storage.

• Twitter @csdhall

Page 35: Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL csdhall@ChanderDhall.com

Questions