Skip to content

Azure Storage

Overview

Azure Storage is a suite of cloud storage services provided by Microsoft Azure to store blobs (files), tables, queues, disks, and more — with high availability, durability, scalability, and security.

It’s the foundation for many Azure services, and it's designed to support both unstructured data (files, images, logs) and structured/semi-structured data (key-value, messages).

Main Azure Storage Types

Storage Type Description
Blob Storage Stores large binary objects (images, videos, backups, logs, etc.)
File Storage Fully managed SMB file shares (lift-and-shift workloads)
Queue Storage Simple messaging for decoupled services
Table Storage NoSQL key-attribute store for structured data
Disk Storage Persistent virtual disks for Azure VMs

Blob Storage (Most commonly used)

  • Stores unstructured data (files, media, documents, backups)
  • Optimized for massive scale and durability (up to exabytes)
  • Supports tiers:
    • Hot: Frequent access
    • Cool: Infrequent access
    • Archive: Long-term storage (cold)

Typical Use Cases

  • Upload user files (images, documents)
  • Store backups and logs
  • Serve static content for websites
  • Stream videos
  • Persist large datasets for ML or analytics

Example (C# Upload)

BlobServiceClient service = new BlobServiceClient("<connection_string>");
BlobContainerClient container = service.GetBlobContainerClient("my-container");
BlobClient blob = container.GetBlobClient("photo.jpg");

await blob.UploadAsync("photo.jpg", overwrite: true);

Queue Storage

  • Simple message queueing between app components
  • Message size: up to 64 KB
  • Max retention: 7 days (unless renewed)

Use Cases

  • Decouple background processing (e.g., image resize, email send)
  • Buffer work for worker roles or Azure Functions
  • Retry and dead-letter messaging patterns

Example (C# Send Message)

QueueClient queue = new QueueClient("<connection_string>", "tasks");
await queue.CreateIfNotExistsAsync();
await queue.SendMessageAsync("process-order-123");

Table Storage

  • NoSQL key-attribute store
  • Scalable, partitioned, schemaless
  • Replaced in many use cases by Cosmos DB Table API

Use Cases

  • App configuration, user preferences
  • Lightweight audit logs
  • Large volumes of structured but simple data

File Storage

  • Azure-hosted SMB 3.0 file shares
  • Mountable from Windows, Linux, or macOS
  • Supports identity-based authentication (Azure AD, AD DS)

Use Cases

  • Lift-and-shift legacy apps using file shares
  • Shared drives for VMs or container workloads
  • Backup or content distribution across machines

Disk Storage

  • Virtual hard disks for Azure VMs
  • Managed and zonally redundant options
  • High IOPS and throughput tiers (Premium SSD, Ultra Disk)

Security Features

  • Encryption at rest (enabled by default with AES-256)
  • Private endpoints to restrict access to VNet
  • SAS tokens for time-limited access
  • RBAC and ACLs for granular access control
  • Soft delete for blob and file recovery

Monitoring & Diagnostics

  • Azure Monitor integration: metrics like transactions, latency, errors
  • Logging: request logs, access logs, billing info
  • Storage analytics (for advanced data logging)

Conceptual Model

Think of Azure Storage as a toolkit of storage types, each tuned for different patterns:

  • Blob = “object storage” (like Amazon S3)
  • Queue = “basic messaging”
  • Table = “simple structured data”
  • File = “network shared folders”
  • Disk = “persistent volumes for VMs”

You pay per GB stored + operations performed, with tiering and redundancy options depending on your cost/durability needs.


Redundancy Options

Redundancy Level Description
LRS (Locally Redundant) 3 copies within same data centre
GRS (Geo-Redundant) LRS + copy to paired region (read-access optional)
ZRS (Zone-Redundant) Copies across 3 availability zones in one region

Tools and SDKs

  • Azure Portal – Manual upload/download, config
  • Azure CLI / PowerShell – Scripting
  • Azure Storage Explorer – GUI tool for managing storage
  • .NET SDK (Azure.Storage.Blobs, etc.) – Programmatic access

Further Reading