Azure, Cloud Computing & Services

  • 3,081 views
Uploaded on

My presentation to the Charteris Tech Day in December 2008.

My presentation to the Charteris Tech Day in December 2008.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,081
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
127
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Azure, Cloud Computing & Services
  • 2. What Is The Cloud? A set of connected servers On which developers can: Install and run services Store and retrieve data
  • 3. What Is Windows Azure? It is an operating system for the cloud It is designed for utility computing It has four primary features: Service management Compute Storage Developer experience
  • 4. This Is What Every Cloud Service Developer Has To Do Today! Business logic … Expand to new locale Perform live upgrade for new feature Apply OS patches Service “glue” Diagnose service failures and operations Add storage capacity Handle increase in traffic Respond to hardware failures Datacenter
  • 5. What's Missing In The Cloud? …. …… Service 1 Service 2 Service 3 Service N
  • 6. What Should The Cloud OS Provide? The same facilities that a desktop OS provides, but on a set of connected servers: Abstract execution environment Shared file system Resource allocation Programming environments And more: Utility computing 24/7 operation Pay for what you use Simpler, transparent administration
  • 7. How Is The Cloud OS Manifested? Automated service management You define the rules and provide your code The platform follows the rules: deploys, monitors, and manages your service A powerful service hosting environment All of the hardware: servers; load balancers; … Virtualized and direct execution Scalable, available cloud storage Blobs, tables, queues, … A rich, familiar developer experience
  • 8. A Look Inside Azure
  • 9. So What? Default.aspx
  • 10. We Get Scalability For Free! LB Default.aspx Scalability Availability Zero-downtime upgrades All with existing tools and skills
  • 11. Horizontal Scaling What about state? (e.g., shopping cart)
  • 12. Separating State Durable Store
  • 13. Durable Storage Durable, scalable, available store Simple abstractions Blobs Queues Tables … Simple interface REST ADO.NET Data Services
  • 14. Simple Storage LB Default.aspx Storage (Blobs, Tables, Queues)
  • 15. Not Just Websites Cloud services aren’t just websites Many other types of work for the cloud Bulk file conversion Heavy analytics Finding extraterrestrials Even websites can offload async work We need a more complex architecture
  • 16. Service Architectures Web role LB Default.aspx Worker.cs Storage
  • 17. Service Architectures Worker role LB Default.aspx Worker.cs Storage
  • 18. Service Architectures Web and worker roles LB Default.aspx Worker.cs Storage
  • 19. Windows Azure Storage The goal is to allow users and applications to Access their data efficiently from anywhere at anytime Store data for any length of time Scale to store any amount of data Be confident that the data will not be lost Pay for only what they use/store
  • 20. 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
  • 21. Blob Namespace Blob URL http://<Account>.blob.core.windows.net/<Container>/<BlobName> Example: Account – sally Container – music BlobName – rock/rush/xanadu.mp3 URL: http://sally.blob.core.windows.net/music/rock/rush/xanadu.mp3 Account Container Blob IMG001.JP G pictures IMG002.JP G sally movies MOV1.AVI
  • 22. Blob Features And Functions Store Large Objects (up to 50 GB each) Standard REST PUT/GET Interface http://<Account>.blob.core.windows.net/<Container>/<BlobName> PutBlob Inserts a new blob or overwrites the existing blob GetBlob Get whole blob or by starting offset, length DeleteBlob Support for Continuation on Upload Associate Metadata with Blob
  • 23. 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 Highly Available Can always access your data Durable Data is replicated at least 3 times Familiar and Easy to use Programming Interfaces ADO.NET Data Services – .NET 3.5 SP1 .NET classes and LINQ or REST - with any platform or language
  • 24. Table Data Model Table A Storage Account can create many tables Table name is scoped by Account Data is stored in Tables A Table is a set of Entities (rows) An Entity is a set of Properties (columns) Entity Two “key” properties that together are the unique ID of the entity in the Table PartitionKey – enables scalability RowKey – uniquely identifies the entity in the partition
  • 25. Partition Example Partition Key Row Key Property 3 …. Property N Document Version Modification . Description Name Time Examples V1.0 8/2/2007 …. Committed version Partition 1 Doc . Examples V2.0.1 9/28/2007 Alice’s working version Doc FAQ Doc V1.0 5/2/2007 Committed version Partition 2 FAQ Doc V1.0.1 7/6/2007 Alice’s working version FAQ Doc V1.0.2 8/1/2007 Sally’s working version
  • 26. Summary Of Windows Azure Tables Built to provide Massively Scalable, Highly Available and Durable Structured Storage Automatic Load Balancing and Scaling of Tables Partition Key is exposed to the application Familiar and Easy to use LINQ and REST programming interfaces ADO.Net Data Services Not a “relational database” No joins, no maintenance of foreign keys, etc
  • 27. Future Windows Azure Table Support  At CTP  Single Index  Query and retrieve results sorted by PartitionKey and RowKey  Single Entity Transactions  Atomically Insert, Update, or Delete a Single Entity
  • 28. Windows Azure Queues Provide reliable message delivery Simple, asynchronous work dispatch Programming semantics ensure that a message can be processed at least once Queues are Highly Available, Durable and Performance Efficient Access is provided via REST
  • 29. Account, Queues And Messages An Account can create many Queues Queue Name is scoped by the Account A Queue contains Messages No limit on number of messages stored in a Queue But a Message is stored for at most a week http://<Account>.queue.core.windows.net/<QueueName> Messages Message Size <= 8 KB To store larger data, store data in blob/entity storage, and the blob/entity name in the message
  • 30. Queue Programming API Queues Create/Clear/Delete Queues Inspect Queue Length Messages Enqueue (QueueName, Message) Dequeue (QueueName, Invisibility Time T) Returns the Message with a MessageID Makes the Message Invisible for Time T Delete(QueueName, MessageID)
  • 31. Storage Durability All data is replicated at least 3 times Replicas are spread out over different fault and upgrade domains in same data center Future support for geo-distribution and geo-replication All of Storage (Blobs, Tables and Queues) is built on this replication layer Dynamic replication to maintain a healthy number of replicas Recover from a lost/unresponsive Drive or Node Data continuously scanned against data bit rot
  • 32. Availability And Scalability Efficient Failover Data served immediately elsewhere within data center from available replicas Automatic Load Balancing of Hot Data Monitor the usage patterns and load balance access to Blob Containers, Table Partitions and Queues Distribute access to the hot data over the data center according to traffic Caching of Hot Blobs, Entities and Queues Hot Blobs are cached to scale out access to them Hot Entity and Queue data pages are cached and served from memory
  • 33. Windows Azure Data Storage Concepts Blobs Container http://<account>.blob.core.windows.net/<container> Table Entities Account http://<account>.table.core.windows.net/<table> Queue Messages http://<account>.queue.core.windows.net/<queue>
  • 34. Windows Azure Storage Summary Essential Storage for the Cloud Durable, Scalable, Highly Available, Security, Performance Efficient Familiar and Easy to Use Programming Interfaces REST Accessible, LINQ and ADO.NET Rich Data Abstractions Service communication: queues, locks, … Large user data items: blobs, blocks, … Service state: tables, caches, …
  • 35. Links http://www.microsoft.com/azure http://blog.smarx.com http://delicious.com/alan.dean/azure