Sequence 1 โ Foundations & Architecture of Azure Storage
Prerequisites: None โ this is the entry point. ยท What you'll be able to do: name the four core data services and position the related ones ยท explain the account โ service โ container/share โ object hierarchy ยท parse and construct any storage endpoint URL ยท state the headline scalability limits and why they matter. ยท Est. time: ~12 min
1. The big picture: what Azure Storage is
Azure Storage is Microsoft's cloud storage platform. Everything you store lives in a storage account, is reachable from anywhere over HTTP/HTTPS via a REST API (plus client libraries for .NET, Java, Python, JavaScript, Go, C++), and inherits five platform guarantees worth memorizing:
- Durable & highly available โ multiple copies are kept; you choose how widely they replicate (redundancy is Sequence 3).
- Secure โ all data is encrypted at rest by the service, automatically (encryption is Sequence 4); access is finely controlled (auth is Sequences 6โ9).
- Scalable โ designed for massive capacity and throughput.
- Managed โ Microsoft handles hardware, patching, and failures.
- Accessible โ reachable via portal, Azure CLI, Az PowerShell, AzCopy, Storage Explorer, REST, and SDKs.
Mnemonic: D-S-S-M-A (Durable, Secure, Scalable, Managed, Accessible).
2. The data services (and the related ones)
The Azure Storage platform hosts four core data services, all addressed through a storage account. Memorize these four cold โ they are the spine of the whole module.
| Service | Stores | Shape of data | Typical use |
|---|---|---|---|
| Azure Blobs | Objects (text/binary) | Unstructured | Images, video/audio streaming, backups, archives, data lakes (Sequences 10โ12) |
| Azure Files | Managed file shares | Hierarchical files/folders | Lift-and-shift, replace on-prem file servers/NAS, shared config (Sequences 9 & 13) |
| Azure Queues | Messages | Asynchronous messages | Decouple app components; messages up to 64 KB, millions per queue |
| Azure Tables | Key/attribute entities | Schemaless NoSQL | Flexible metadata, address books, device data |
Correction / clarification: older material lumps everything as "Azure AD" or "blob storage." Current terminology is Microsoft Entra ID for identity and the four blob tiers are Hot / Cool / Cold / Archive. Azure Table Storage is now documented under Azure Cosmos DB, but the classic Table service in a storage account still exists and is what AZ-104 means by "Table".
Related storage services โ know what they are, not how to run them. They are not general data services inside a standard account:
| Related service | One-line position |
|---|---|
| Azure managed disks | Virtual hard disks for VMs; an abstraction over page blobs |
| Azure Elastic SAN | Fully managed SAN, accessed over iSCSI, for large IO-intensive databases |
| Azure Container Storage | Volume orchestration for Kubernetes / stateful containers |
| Azure NetApp Files | Enterprise NAS (NFS/SMB) for demanding, low-latency workloads (e.g. SAP HANA) |
Memory hook โ the four core services are B-F-Q-T (Blob, Files, Queue, Table). Disks, Elastic SAN, Container Storage, and NetApp Files sit around the platform, not inside the standard account.
3. The storage account: namespace + management boundary
A storage account is the top-level container for all your Blob, Files, Queue, and Table data. Two ideas to lock in:
- It is a unique namespace. Every object gets a URL built from your globally unique account name. Because the name becomes a DNS subdomain, it must be unique across all of Azure.
- It is the management/billing boundary. Redundancy, default encryption, networking, and billing are configured per account, and all objects in an account are billed together.
Account naming rules (commonly tested):
- 3โ24 characters, lowercase letters and numbers only (no hyphens, no uppercase).
- Globally unique across Azure.
The recommended account type for almost everything is Standard general-purpose v2 (GPv2) โ it supports all four services. Premium tiers (block blob, file shares, page blob) are SSD-backed and service-specific. You cannot change an account's type after creation โ to switch, you create a new account and copy the data. (Account creation and type selection are Sequence 2.)
4. The resource hierarchy
Each service nests objects inside a per-service container, all under the one account. Internalize this chain โ it explains every URL and every permission scope later in the module.
The pattern is always: account โ service โ container โ object. The middle "container" word just changes per service:
| Service | "Container" level | "Object" level |
|---|---|---|
| Blob | Container | Blob |
| Files | File share | File / directory |
| Queue | Queue | Message |
| Table | Table | Entity |
5. Service endpoints & URL structure
Because the account name is a DNS subdomain, each service has its own endpoint. A standard endpoint = https:// + account name + a fixed per-service domain. Memorize the four core service subdomains:
| Service | Standard endpoint |
|---|---|
| Blob | https://<account>.blob.core.windows.net |
| Files | https://<account>.file.core.windows.net |
| Queue | https://<account>.queue.core.windows.net |
| Table | https://<account>.table.core.windows.net |
| Data Lake (Blob w/ HNS) | https://<account>.dfs.core.windows.net |
| Static website (Blob) | https://<account>.web.core.windows.net |
To address an object, append its path to the service endpoint:
https://<account>.blob.core.windows.net/<container>/<blob>
https://<account>.file.core.windows.net/<share>/<directory>/<file>
Build-an-endpoint drill (B-F-Q-T โ blob, file, queue, table): given account salesdata, its Files endpoint is https://salesdata.file.core.windows.net.
Practical notes: Prefer HTTPS. Treat the endpoint hostname as stable, but never hard-code the resolved IP address โ the underlying DNS CNAME/A records can change without notice; honor the DNS TTL. (Azure DNS zone endpoints โ the
โฆz<N>.<service>.storage.azure.netform โ are (Preview) and slated for retirement, so use standard endpoints.)
6. Blob storage โ the conceptual minimum
Blob = Binary Large OBject = Microsoft's object store for unstructured data. Three resource levels: storage account โ container โ blob. A container groups blobs like a directory; its name must be a valid DNS name (3โ63 chars, lowercase letters/numbers/hyphens, no consecutive hyphens). One account can hold unlimited containers; one container, unlimited blobs.
Three blob types โ know which is which:
| Blob type | Optimized for | Approx. max size | Classic use |
|---|---|---|---|
| Block blob | Upload/read of large objects in blocks | ~190.7 TiB | Files, images, video, backups |
| Append blob | Append-only writes | (block-based) | Logging, audit trails |
| Page blob | Random read/write in 512-byte pages | 8 TiB | VHDs / managed disk backing |
Mnemonic: BAP โ Block (general), Append (logs), Page (disks). Deeper blob topics โ access tiers (Hot/Cool/Cold/Archive), data protection, lifecycle โ are Sequences 10โ12.
7. Azure Files โ the conceptual minimum
Azure Files = fully managed file shares in the cloud. Unlike blobs, it speaks real file-share protocols, so apps and OSes mount it like a network drive with no code change:
- SMB โ mountable from Windows, Linux, macOS.
- NFS โ mountable from Linux (requires a premium file shares account).
- Azure Files REST API โ programmatic access.
Key value: many machines share the same files concurrently (read/write); shares can be cached on-prem with Azure File Sync; you can reach a file via URL plus a shared access signature (SAS) token (auth in Sequence 6). Detailed planning, tiers, File Sync, and protection are Sequence 13.
8. Scalability & performance targets โ "limits exist, plan around them"
Azure Storage is massive but not infinite. A single standard GPv2 account has published scale targets; design so a hot account doesn't hit a ceiling. The headline figures (current typical values โ always confirm against current Azure limits):
| Target (standard GPv2 account) | Approx. value |
|---|---|
| Max capacity per account | ~5 PiB |
| Max request rate | ~20,000 requests/sec |
| Max ingress (into account) | region-dependent, tens of Gbps (e.g. ~25 Gbps in many regions) |
| Max egress (out of account) | region-dependent, typically higher than ingress (tens of Gbps) |
| Max storage accounts per region per subscription | 250 (up to 500 with a quota increase) |
Why it matters: these are per account. The standard mitigation is to spread very high-throughput workloads across multiple storage accounts (a "scale-out" / partitioning strategy) rather than overloading one. Ingress/egress vary by region and redundancy, so treat the numbers as planning guidance, not contractual maximums.
Key takeaways
- D-S-S-M-A: Durable, Secure, Scalable, Managed, Accessible โ the five platform promises.
- Four core data services = B-F-Q-T: Blob, Files, Queue, Table. Disks, Elastic SAN, Container Storage, NetApp Files sit around the platform.
- The storage account is both a globally unique namespace and the management/billing boundary; name = 3โ24 chars, lowercase + digits, globally unique. Type can't be changed after creation.
- Hierarchy is always account โ service โ container/share/queue/table โ object.
- Endpoint =
https://<account>.<service>.core.windows.net; the four subdomains are blob / file / queue / table. Don't cache the IP. - Blob types = BAP: Block (general), Append (logs), Page (disks).
- Azure Files speaks SMB/NFS so it mounts like a network drive.
- Scale targets are per account (~5 PiB, ~20k req/s); scale out across accounts when a single one isn't enough.
Exercises
- Recall. List the four core Azure Storage data services and the kind of data each holds.
- Recall. What are the three naming constraints for a storage account name?
- Applied. An account is named
contosologs. Write the full standard endpoint URL for a queue namedevents, and for a blob named2026/app.loginside containerapp. - Applied. A team needs append-only storage for VM log lines, and separately a VHD that backs an Azure VM disk. Which blob type fits each, and why?
- Scenario. An analytics pipeline pushes data so hard that one storage account is hitting its request-rate ceiling, and uploads are throttling. Without changing the workload's logic, what is the standard architectural fix, and why does it work?
- Concept. A teammate says "let's just change this Standard GPv2 account to a Premium block blob account to get lower latency." What's wrong with that plan, and what must you do instead?
Answers
- Blob (unstructured objects), Files (managed file shares / hierarchical files), Queue (asynchronous messages, โค64 KB each), Table (schemaless NoSQL key/attribute entities). Mnemonic B-F-Q-T.
- 3โ24 characters; only lowercase letters and numbers (no hyphens/uppercase); globally unique across all of Azure (because it becomes a DNS subdomain).
- Queue:
https://contosologs.queue.core.windows.net/events. Blob:https://contosologs.blob.core.windows.net/app/2026/app.log(the slash inside the blob name is part of the blob name / virtual directory). - Logs โ append blob (optimized for append-only writes, ideal for logging). VHD/VM disk โ page blob (optimized for random read/write; page blobs back managed disks). Mnemonic BAP.
- Spread the workload across multiple storage accounts (scale out / partition). Scalability targets such as max request rate (~20k/s) and capacity (~5 PiB) are enforced per account, so distributing across accounts multiplies the available throughput and avoids throttling on any single one.
- You can't change a storage account's type after creation. You must create a new Premium block blob account and copy the data (e.g. with AzCopy) into it.
Coming up next
Sequence 2 โ Create & Configure Storage Accounts: turning this architecture into a real account โ choosing the type/performance/redundancy, naming, and the portal/CLI/PowerShell creation workflow.