Understanding the Scalability, Availability, Durability, and Billing of Windows Azure Storage
Windows Azure Storage allows the application developers, their applications, and their users to leverage the vast amount of highly available, durable and scalable storage in the cloud. This allows developers to build services that can access their data efficiently from anywhere at any time, store any amount of data and for any length of time, and pay for it as a utility based service based only on what is used and stored. The 4 storage abstractions we provide are:
- Blobs – Provides a simple interface for storing named files along with metadata for the file.
- Drives – Provides durable NTFS volumes for Windows Azure applications to use. This allows applications to use existing NTFS APIs to access a network attached durable drive. The goal is to ease the migration of existing applications using NTFS to the cloud, and provide durability of the volumes on application failover and hardware failures.
- Tables – Provides massively scalable structured storage. A Table is a set of entities, which contain a set of properties. An application can manipulate the entities and query over any of the properties stored in a Table.
- Queues – Provide reliable storage and delivery of messages for an application to build loosely coupled and scalable workflow between the different parts (roles) in an application.
Now that Windows Azure is commercially available, we have gotten questions about how Windows Azure Storage works and how to get the best performance from it. Therefore, over the next couple of months we are going to post a series of blog entries focused on understanding how to best use Windows Azure Storage and its Scalability, Availability, Durability and understanding Billing.
The following outlines the series of posts that are planned (may be posted out of order). We will link each of the posts back here once they are available:
- Storage Abstractions and their Scalability
- What are the Windows Azure Storage abstractions and their scalability targets?
- How to use and scale out access to Blobs?
- How to use and scale out access to Tables?
- How to use and scale out access to Queues?
- Storage Architecture Overview