Microsoft Azure Storage is a highly-scalable, durable, cloud-based storage platform providing four core services: Blobs, Tables, Queues, and Azure Drives.
Microsoft Azure Storage is a highly-scalable, durable, cloud-based storage platform providing four core services, each based on Durable Storage (storage is replicated at least three times):
- Blobs. Each blob may be up to 200 GB (block-blobs) or 1 TB (page-blobs).
- Tables. Each table may be up to 1 TB, with each row containing up to 1 MB.
- Queues. Each queue may contain up to 8,000 messages.
- Azure Drive. This is an NTFS-formatted drive, stored in a page blob, mountable by an Azure virtual machine (web role, worker role, or VM role).
Blobs are URI-accessible, and may be configured as private or public. Public blobs are well-suited for generally-available web content, as links may be placed directly into web pages for users to access. Also, the Azure Content Delivery Network (CDN) may be activated for a given storage account, providing caching of blobs in approximately two dozen nodes worldwide.
Tables are organized by partition key (which could be a machine- or disk-system boundary), and row key (an index within a partition). By choosing an appropriate partition and row key, content lookup is extremely efficient. Currently, there is a single row key. If a search is dependent on additional row properties, you'd need to scan rows within your partition.
Queues allow for multiple role instances to consume items. Once an item is retrieved, there is a time limit in which your code must complete processing and delete the queue item (default: 30 seconds, maximum 2 hours). If processing is not completed within this time period, the queue item is returned to the queue. Knowing this, your queue-processing must be designed to be idempotent - processing a queue item multiple times should yield the same result. A typical queue pattern, to circumvent the 8,000 messages limit, is to store relevant content in a blob (such as a full-resolution photo), and then reference that blob in a queue message (for instance, a queue message requesting a thumbnail generation for a full-resolution photo).
The Azure Storage API is REST-based. .NET applications have a full SDK built on top of the REST interface. There are Java and PHP implementations as well.
For more details, see the TechNet article Data Storage Offerings on the Windows Azure Platform about Azure Storage Services.