Azure Blob storage is Microsoft’s object storage solution for the cloud. Blob storage allows Microsoft Azure to store arbitrarily large amounts of unstructured data and serve them to users over HTTP and HTTPS. Blobs are grouped into “containers” that are tied to user accounts. Azure Storage capacity is virtually limitless. It uses a pay-as-you-go model, it gives you the flexibility of paying only for what you have used. Azure Storage supports different clients like .NET, Ruby, Java, etc. which gives developers an option.
Microsoft’s use cases include serving streaming video, files, text, and images to remote users. Azure allows users to store blobs in containers. A blob might be dedicated solely to a video while another might store image files. Blob storage handles trillions of stored objects, with millions of average requests per second, for customers around the world. One of the significant capabilities that Microsoft Azure provides is the agility to migrate to different storage options if required.
Microsoft defines azure blob storage in three types :
- Block blobs are a collection of individual blocks with unique block ID. The block blobs allow users to upload large amounts of data.
- Append blobs are optimized blocks that help in making the operations efficient.
- Page blobs are a compilation of pages. They allow random read and write operations. While creating a blob, if the type is not specified they are set to block type by default.
Block blobs support up to 50,000 blocks up to 100 megabytes, with up to 195 gigabytes in total. Block blobs are intended for text and other binary files. Append blobs support appending operations and are designed for log files. Page blobs are designed for frequent read/write operations. Blobs are created and accessed with .NET code.
Why choose Azure Blob Storage?
Durability and high availability: Stored data in azure data center replicated and kept in different geographical locations. Hence, in the case of any hardware failure, you have your replicas safe and so your data. Also, if there is any natural disaster, your data will remain secure and you can avail them pretty easily.
Scalability: The storage is massively scalable depending on the requirements. Data is automatically scaled up to accommodate any peak demands.
Security: Accessing any information by an intruder from your storage is not an easy task, and hence your data is secure. Azure Storage uses a shared key model to authenticate a user. The usage of the shared access signature (SAS) can restrict access to data.
Accessibility: You can access your data from anywhere over HTTP or HTTPS. You can write your code on Azure PowerShell or on Azure CLI. Azure Storage Explorer and Azure portal provide you an easy way to work with your data.
Now that you have a very general understanding of the storage tiers let’s bring it all together and see what Azure offers (as of now, things change all the time) within their five types of storage accounts.
- General-purpose v2 is the most basic account and offers all five storage services. It will cover the majority of Azure storage needs.
- General-purpose v1 same as v2 but does not support Hot, Cold or Archived data access tiers nor Zone redundancy replication options. This is considered legacy and should not be your first choice.
- BlockBlobStorage is a premium tier but goes not support geo-redundancy. According to Microsoft It’s for scenarios with high transaction rates, using smaller objects, or requiring consistently low storage latency. It allows you to upload and access data in large blobs efficiently. This one is kind of new to me; you can read more here.
- File Storage is a premium tier for files only, and like BlockBlobStorage, it too does not support geo-redundancy.
- blob storage is very similar to General-purpose v2 in which it has Hot, Cold, and Archive data access and is available for standard performance tier but does not offer Zone redundancy.
Additionally, look at the below image taken from Microsoft documentation which gives us the full line of options you have a better idea of what you’re viewing.
Azure Blob Storage offers five redundancy options.
- Locally redundant storage (LRS)—provides 11 9’s of durability, fault tolerance for storage within one Azure datacenter
- Zone-Redundant Storage (ZRS)—12 9’s of durability, replicates data across three Availability Zones (AZ) in one region
- Geo-Redundant Storage (GRS)—16 9’s of durability, data stored in a primary and secondary region, with failover if the primary region fails
- Read-Access Geo-Redundant Storage (RA-GRS)—replicates data to a secondary zone in another region, with access to secondary location even if the primary location is still alive
- Geo-zone-redundant storage (GZRS) (available in GPv2 storage-accounts)—combines ZRS with GRS. Data is replicated across three availability zones in both a primary region and a secondary region. For Read-access geo-zone-redundant storage (RA-GZRS) (available in GPv2 storage accounts)—like GZRS but enabling read access from either replicated region
A higher level of redundancy means higher pricing across almost all billable aspects of the service—per-GB storage cost, data use cost, and charges for data operations. Data egress is also free in small amounts; in most Azure regions, there is no charge for the first five gigabytes of data transferred per month.
While Azure Blob Storage is easy to use, its pricing is a bit harder to understand. Azure Blob Storage pricing depends on multiple aspects of the service—types of Storage Accounts in Azure, type of blob storage, storage tiers, and redundancy options.
Total cost of block blob storage depends on:
- Volume of data stored per month.
- Quantity and types of operations performed
- data transfer costs if any
- Data redundancy option selected.
There are four Azure blog storage tiers, letting you move data to a lower storage tier if you need to access it less quickly or less often.
- Premium—for sensitive applications with high throughput
- Hot—for ordinary, frequently accessed data, with 99.9% availability SLA
- Cool—for less frequently accessed data that is likely to be stored at least a month
- Archive— intended for data that is likely to be stored for at least 180 days, where you can tolerate some retrieval latency
Microsoft offers several options to store data on the cloud. Each option has its unique purpose for serving different business needs.
- Azure Blobs or block blobs are content libraries of unstructured data that are randomly accessed from anywhere. This can also be streamable data like videos or audio. This is commonly used for log files, backups, and disaster recovery files.
- Azure Queues are used to store messages using HTTP or HTTPs. Typically, you use these to queue up work and process it asynchronously like Service Broker.
- Azure Files are fully managed files share which are accessed using the Server Message Block (SMB) protocol. These can be on both the cloud or on-premises and accessed by the cloud. Meaning this acts like a local file share. Both on-prem users and cloud users can access files easily. These are a great solution for moving your local file shares to the cloud as well as “lifting and shifting” data to the cloud.
- Azure Tables store structured schema-less flexible NoSQL data. This is typically a lower-cost option for storing data you need to get to fast for web apps, address books, device information and metadata according to Microsoft.
- Azure Disks are managed by virtual hard disks (VHD). They are similar to on-prem virtual disk but only virtualized and managed by Azure. Just like on-prem, you can get Ultra Disk, Premium or Standard Solid-State drives or just a Standard hard disk drive. If you are using SQL Server, or any other I/O intensive application you should only use Ultra or Premium disks. Even the Standard SSD offering will not meet the I/O needs of a small database but might be suitable for test and development environments.
Azure storage service is a fine example of well-designed architecture that fits many use cases, including enterprise needs. With an SLA ranging from 99.9% – 99.99%, it is an easy choice for users looking for scalable, reliable, and effectively infinite space.