Azure Solutions Architecture · AZ-305 · Data & Storage Solutions · by Raushan Ranjan, MCT
Non-relational data, often called NoSQL, is a flexible way to store data that doesn't fit neatly into rows and columns like a spreadsheet. It's like having a digital filing cabinet where you can throw in different types of documents, photos, and files without a strict order.
When to use it:
When you have large amounts of unstructured data (like photos or videos), semi-structured data (like JSON documents), or data that changes frequently. This is common for modern web applications, IoT devices, and big data.
Analogy:
A relational database is like a rigid, pre-printed form where every blank must be filled out. A non-relational database is a blank notebook where you can jot down notes, draw pictures, and paste in photos, all on the same page.
Service Use Cases & Analogies
Azure Blob Storage
Use Case: Storing massive amounts of unstructured data like images, videos, backups, and log files.
Analogy: A giant, digital warehouse for any type of item, with separate floors for different purposes (hot, cool, archive).
Azure Cosmos DB
Use Case: Global-scale applications that need low-latency, high-performance access to data. Perfect for user profiles, real-time analytics, and IoT.
Analogy: A high-speed, global courier service that can deliver your packages (data) to any country in a blink. It handles different package types (JSON, key-value, etc.).
Azure Table Storage
Use Case: Storing large amounts of structured, non-relational data (key-value pairs) for a lower cost.
Analogy: A simple, massive phone book. You can quickly look up a person's number (value) by their name (key), but you can't search for everyone who lives on a certain street.
Designing for Azure Storage Accounts
An **Azure Storage Account** is the foundational container for all your Azure storage services. It's like a master key that gives you access to a secure facility containing a warehouse (Blob storage), a file cabinet (Azure Files), and other storage types. You must have one to use any of the services.
Key Design Decisions:
- Account Type: The most common is General-purpose v2, which supports all the latest features and data services. For specific, high-performance needs, you might use BlockBlobStorage for a blog-only account.
- Performance Tier: Choose Standard (for cost-effectiveness) or Premium (for high performance and low latency).
- Redundancy: This is critical for data durability and high availability.
Designing for Data Redundancy
Data redundancy ensures your data is protected from failures. It's like having multiple copies of a book. The more copies you have and the further apart they are, the safer your book is from being lost.
Locally Redundant Storage (LRS):
Your data is copied three times within a single data center.
- Analogy: You make three copies of a report and put them in three different folders on your desk.
- Use Case: Development and testing environments, or non-critical data where a data center-wide outage is an acceptable risk.
Zone-Redundant Storage (ZRS):
Your data is copied three times across three separate data centers (Availability Zones) in the same region.
- Analogy: You make three copies of a report and put them in three different office buildings on the same campus.
- Use Case: Mission-critical applications that need high availability within a single region to meet compliance or low-latency requirements.
Geo-Redundant Storage (GRS):
Your data is copied three times in the primary region (LRS) and then asynchronously copied three more times to a secondary region hundreds of miles away.
- Analogy: You make three copies of a report for your office and send a fourth copy to a branch office in another city.
- Use Case: Disaster recovery for critical data. If the entire primary region goes offline, you can failover to the secondary region.
Geo-Zone-Redundant Storage (GZRS):
The best of both. Your data is copied three times across three Availability Zones in the primary region, and then copied to a secondary region with three LRS copies.
- Analogy: You put three copies of your report in three different office buildings, and then send three more copies to a different city and put them in three different buildings there.
- Use Case: The highest level of data durability and availability for mission-critical applications that require both cross-zone and cross-region protection.
Designing for Azure Blob Storage
Blob storage is for unstructured data. The term "blob" stands for Binary Large Object. It's perfect for data that doesn't have a rigid structure.
Blob Tiers (Cost Optimization):
- Hot Tier: For frequently accessed data. Think of a website's images that are viewed daily. You pay more for storage but less for accessing the data.
- Cool Tier: For infrequently accessed data that needs to be stored for at least 30 days. Think of monthly sales reports. You pay less for storage but more for access.
- Archive Tier: For rarely accessed data that needs to be stored for at least 180 days. Think of old financial records or backups. The storage cost is the lowest, but retrieving the data can take hours and is expensive.
Use Cases:
- Backup and Recovery: Storing backups of databases and virtual machines.
- Data Lakes: Storing vast amounts of data for analytics. This uses Azure Data Lake Storage Gen2, which is built on Blob Storage.
- Serving Content: Hosting images, videos, or documents for a website or application.
Designing for Azure Files
**Azure Files** provides fully managed file shares in the cloud that you can access from anywhere via the standard SMB (Server Message Block) protocol. It's like having a shared network drive in the cloud.
Use Cases:
- "Lift and Shift" Applications: Migrating an on-premises application that relies on a network file share to the cloud without changing the application code.
- Shared Configuration: Storing common configuration files for multiple virtual machines.
- Hybrid File Shares: Using Azure File Sync to synchronize files between an on-premises file server and an Azure file share, creating a hybrid cloud solution.
Designing an Azure Disk Solution
**Azure Disks** are persistent, block-level storage volumes for use with Azure Virtual Machines (VMs). They're like physical hard drives for your cloud computers.
Key Concepts:
- Managed Disks: The default and recommended solution. Azure manages the disk for you, handling durability and complexity.
- Disk Types:
- Standard HDD: Lowest cost, best for backups and non-critical data.
- Standard SSD: Better performance than HDD, good for web servers and dev/test environments.
- Premium SSD: High performance, low latency. Ideal for production workloads, databases, and mission-critical applications.
- Ultra Disk: The highest-performance option. You can customize the IOPS and throughput, perfect for extremely I/O-intensive workloads like SAP HANA and high-end databases.
Analogy: Choosing a disk type is like choosing a car's engine. A Standard HDD is like a small, reliable engine for city driving. An Ultra Disk is like a race car engine you can tune for max performance.
Designing for Storage Security
Securing your data is paramount. A good solution architect knows how to protect data at rest and in transit.
Encryption:
- Encryption at Rest: All data in an Azure storage account is automatically encrypted by default using Microsoft-managed keys. For more control, you can use Customer-managed keys (CMK) with Azure Key Vault.
- Encryption in Transit: Always enforce secure transfer (HTTPS/SSL) for all communication with the storage account.
Authentication and Authorization:
- Microsoft Entra ID (formerly Azure AD): Use this for modern, identity-based access control.
- Role-Based Access Control (RBAC): Use built-in or custom roles to grant permissions based on the principle of least privilege (e.g., a "Storage Blob Data Reader" can only read data).
- Shared Access Signatures (SAS): For limited, temporary access to specific resources (e.g., giving a customer a link to a file that expires in 1 hour).
Network Security:
- Firewalls: Restrict access to your storage account to specific virtual networks or public IP addresses.
- Private Endpoints: A secure way to access your storage account from your private network, eliminating exposure to the public internet. This is a crucial design pattern for secure, enterprise-grade solutions.