When it comes to choosing your Azure storage type, the answer is not always an easy one. The cloud has redefined the constructs of storage and its usage in application architectures, providing multiple storage options suitable for different use cases, especially modern-day cloud-native applications. And Microsoft Azure is one popular cloud storage solution that lets you custom-build solutions to deliver innovative solutions, whether you need storage for IaaS, PaaS, or containers.
In this blog, we’ll explore the various Azure Storage Types and how they fit into different usage scenarios.
Why You Should Consider Azure Storage
The Azure Storage service caters to modern data storage requirements in the cloud, such as the disk storage used by VMs in Azure if you’re adopting the IaaS model or flexible blob storage for applications that need massive scalable object storage. Azure also provides a file service to accommodate scenarios that demand a file sharing service, especially when migrating legacy applications, as well as storage for asynchronous messaging and NoSQL tables for storing scalable structured data.
Azure Storage comes with the following key features:
- High availability: Built-in resiliency keeps your data safe from any underlying infrastructure failures; by default, there are always three copies of data available, plus you can enable additional resiliency through geo-replication of data across data centers or geographical regions.
- Security: The service provides security for data at rest and in motion; all data written in storage is encrypted by default, while access to the control plane is strictly controlled using Azure RBAC.
- Scalability: You get up to 5 PB of storage, which can be further increased by contacting Azure support, making it well suited for applications with massively scalable storage requirements.
- Managed service: Azure Storage is a managed service, meaning the underlying infrastructure, hardware, updates, maintenance, etc. are all handled by the Azure platform.
- Ease of access: There are libraries available in all popular languages, including .NET, Python, Java, and Node.js, to enable easy integration with your application; the service can be accessed over the internet using HTTP/HTTPS or tools like Azure PowerShell or CLI, REST API, etc.
Azure Storage Types and When to Use Them
The storage types available in Azure are Azure Blobs, Azure Files, Disk Storage, Azure Tables, and Azure Queue Storage. An important step in the cloud adoption process is to identify the Azure storage type that best fits your organization’s application use case. To help you do this, we explain the various Azure storage types and their use cases below.
The first Azure storage type, called “Blob Storage” is an object storage solution that can be used for storing large volumes of unstructured data, for example, pictures, text, videos, or binary data. The three types of blob storage are Block, Append, and Page.
- Block blobs are primarily used to store text and binary data; data is stored as blocks identified by a block ID that can be accessed individually.
- Append blobs are optimized for scenarios where you need to append data blocks, for example, to store logging data from applications; you can only append new blocks of data and cannot delete or update existing blocks.
- Page blobs are used to store virtual hard disks of VMs in Azure; they are made up of 512-byte pages that are optimized for read/write operations as required for disks.
Data can be uploaded to blob storage using different tools, such as Blobfuse, AzCopy, Storage SDKs, and Import/Export service, to name a few. For large-scale data transfers, customers can also request an Azure Data Box to import/export the data to and from Azure Storage.
Blob Storage has three types of access tiers—Hot, Cool, and Archive. The Hot tier is used for frequently accessed data and has a higher storage cost but lower access cost when compared to the other two tiers. The Cold tier is intended for data that will remain in storage without being accessed for at least 30 days, i.e., short-term backup, old log data, DR data, etc. The Cold tier is cheaper than the Hot tier but has a higher storage access cost. The Archive tier is for data that will not be accessed for a minimum of 180 days, i.e., long-term backup, archival data, etc. It has the cheapest storage cost but the highest data-retrieval charges when compared to the other two tiers.
Blob Storage is typically used for distributed data access in applications to store large files like images and streaming audio/video files. Another popular use case is for storing backups, DR, and archival data sets. You can also stream large-scale log data from different sources to Blob Storage to be consumed by analytics and business intelligence services.
The second Azure storage type is “File Storage”, a managed file share service in which the file shares are hosted by Azure. You can access these file shares via Linux, Windows, and macOS machines on-premises as well as in the cloud over SMB/NFS protocols.
As the file shares are fully managed, organizations can leverage them on-demand without the hassle of deploying and managing full-fledged file share servers. Because Azure Files are part of the Azure Storage service, it is resilient by design to protect your data from outages and can meet shared data-access requirements when the same data has to be accessed by multiple applications or machines. In addition to access over NFS/SMB, the data in Azure Files can be programmatically accessed using Azure Storage client libraries or REST APIs.
Azure Files are a good option for customers migrating to the cloud who need a replacement for on-premises file servers. It also comes in handy in lift-and-shift migration scenarios where applications need a file share in the architecture. Other use cases for Azure Files include shared application storage, log storage, persistent volume for stateful containers, etc.
Azure Disk Storage
A third Azure storage type is called “Disk Storage”. Azure Disks provide block-level storage for Azure Virtual machines. Azure provides managed disk service where the required virtual hard disks are provisioned simply by selecting the disk size and type. Disk storage can be attached to VMs as OS disks, data disks, or temporary disks.
Managed disks are highly available, with an assured 99.999% SLA associated with them. They can also be integrated with features like availability sets/availability zones to protect your applications from data-center or zone-level outages. Data stored in Azure Disks are secured by default using server-side encryption, or you can encrypt data at the VM host level using Azure Disk Encryption, which uses BitLocker for Windows and DM-Crypt for Linux. You can additionally restrict control-plane access to disks using Azure RBAC so that only authorized users have access. Integration with the Azure Backup service helps protect the data on disks from accidental deletion or corruption as well.
There are different types of Azure Disks available to cater to multiple usage scenarios: standard HDD, standard SSD, premium SSD, and ultra disks. Ultra disks provide the highest performance for IO-intensive/transaction-heavy workloads like databases and SAP HANA. Premium SSD is recommended for performance-sensitive production deployments, while you can use standard SSD for light-usage applications or dev/test deployments. Standard HDD disks are good for all kinds of non-critical workloads.
A fifth storage type, Azure Tables, is the Azure Storage service for non-relational structured data or NoSQL data. These are best suited for use cases that require key-attribute storage for schemaless data. It can store TBs of such structured data while being flexible enough to meet changing application needs. When compared to managed SQL database services in the cloud, table storage serves as a cheaper alternative for storing structured data.
While Azure Tables store structured data, they are suitable only for those applications that do not need advanced DB features like foreign keys, complex joints, stored procedures, etc. It is recommended for scenarios where data can be stored in a denormalized manner for quick query and retrieval. You can also use Azure Tables when you need scaling on-demand storage and data can be accessed using LINQ queries and the OData protocol.
And finally, Azure Queue storage is an asynchronous message-queuing service for storing large volumes of messages generated by applications. It is capable of storing millions of messages, capped only by the Azure Storage capacity limit. A single message can be up to 64 KB with a default TTL range of seven days. You can also configure the TTL so that the message does not expire. The service is accessible over the HTTP/HTTPS protocol over the internet.
The targeted use case of Azure Queues is asynchronous processing, where applications can use the service to create a backlog of work. Organizations commonly use queues in decoupled application architectures that need asynchronous messaging between different components.
Azure Storage provides a portfolio of varied services that can be used to fit different usage scenarios. Azure Disks, Files, Blobs, Tables, and Queues are feature-rich and versatile options that can meet most of the complex storage needs of modern-day cloud applications. The guide to these services presented in this blog will help you get started in identifying the best-fit solution for your organization’s use case.