Azure Solutions Architecture · AZ-305 · Data & Storage Solutions · by Raushan Ranjan, MCT
A relational data storage solution in Azure is designed for structured data that fits into a traditional table format with rows and columns. This is perfect for data with a clear schema, such as customer orders, inventory, and financial transactions. The primary service for relational data in Azure is **Azure SQL Database**.
Design for Azure SQL Databases
**Azure SQL Database** is a managed relational database service. It is the best choice when you need a database that is easy to manage, highly available, and scalable.
Analogy: Think of an Azure SQL Database as a premium bank vault. You don't have to worry about building or maintaining the vault itself; you just rent a space and store your valuables (data). Azure takes care of all the security, power, and maintenance. This lets you focus on your business and the data, not the infrastructure.
Use Case: A good fit for the Tailwind Traders' product catalog, customer orders, and any financial data.
Recommend a Solution for Database Scalability
Scalability is about making sure your database can handle more users or more data without performance issues.
Option 1 (Best): Azure SQL Database Serverless
- What it is: This model automatically scales the compute resources of your database based on demand. When your application is busy, the database gets more power. When it's idle, it scales down to a minimal level, and you only pay for what you use.
- Analogy: A self-adjusting restaurant kitchen. During dinner rush, more chefs and burners appear automatically. When there are no customers, the extra chefs and equipment disappear, and you only pay for the basic kitchen setup.
- Why it's the best: It's cost-effective and completely automated. You don't have to manually monitor or adjust performance. It's a perfect fit for workloads with unpredictable usage, like a holiday sale.
Option 2: Azure SQL Database with Provisioned Compute
- What it is: You manually select and pay for a specific amount of compute power (vCores) 24/7, regardless of whether your database is being used. You can still manually scale up or down as needed.
- Why it's an alternative: Good for workloads with predictable, consistent usage. It can be more cost-effective if your database is busy around the clock. However, it’s not as efficient for spiky or inconsistent workloads.
Recommend a Solution for Database Availability
Availability ensures your database is always accessible and running, even if there's a problem.
Solution: Built-in High Availability
- What it is: Azure SQL Database has high availability built-in. It automatically uses multiple copies of your data to protect against failures. For mission-critical applications, the Premium and Business Critical tiers use Availability Zones to provide a highly redundant solution within a single region.
- Analogy: A modern, high-tech bank vault. Not only does it have a single vault door, but it's actually three identical vaults in different buildings. If one building loses power, the other two keep your data safe and accessible without any interruption.
- Why it works: Because Tailwind Traders' legal requirements dictate all resources must be in a single region, this solution is perfect. It provides superior availability without cross-region data replication.
Design Security for Data at Rest, Data in Transmission, and Data in Use
Securing your data is a top priority. Azure provides a layered approach to protect data at every stage.
Data at Rest:
Data is encrypted while it's stored.
- Solution: **Transparent Data Encryption (TDE)** is enabled by default on Azure SQL Database. This automatically encrypts your entire database, backup files, and transaction log files.
- Analogy: You've locked your valuables in the bank vault, and then the bank automatically seals your box with a special, tamper-proof lock that only you can open.
Data in Transmission:
Data is encrypted as it moves between your application and the database.
- Solution: All connections to Azure SQL Database use SSL/TLS encryption by default.
- Analogy: A secure, armored truck that transports your valuables from your home to the bank vault. Everything inside is encrypted and safe from prying eyes.
Data in Use:
Protecting data while it's being processed by the database.
- Solution: **Always Encrypted** is a feature that allows you to encrypt sensitive data columns so that even the database administrator can't see the plain text.
- Analogy: You put a secret code on your valuables before they even go into the bank. The bank can handle and move the box, but they can't see what's inside, and they can't read the code.
Design for Azure SQL Edge & Azure Cosmos DB and Tables
These services fit specific, specialized use cases and are good to know for a comprehensive solution.
Azure SQL Edge
- What it is: A small, optimized SQL database for IoT and edge devices. It's designed to run on small, low-powered hardware.
- Analogy: A tiny, portable filing cabinet that you can carry in a backpack. It's not for the main office, but it's perfect for a field worker who needs to log data from a remote location.
- Use Case: Storing and processing real-time sensor data from a smart factory or delivery vehicles before sending it to the main cloud database.
Azure Cosmos DB and Tables
The prompt mentions these, which are typically for non-relational data, but they can have use cases alongside a relational database.
Azure Cosmos DB:
- Use Case: Tailwind Traders could use this for user profile data or a recommendation engine that needs to be fast and globally accessible. This data doesn't fit a rigid table structure well.
Azure Table Storage:
- Use Case: Storing large amounts of application data that can be accessed quickly by a single key, like a user's recent activity logs. It's a very cheap and simple option for specific, non-relational needs.