02/05/2024

Azure Storage Accounts and their various uses

With the rise of cloud computing in the last decade, one of the major players that has emerged in the market is Azure – a platform provided by Microsoft.

By Victor Onwuka in blob storage, queue storage

Share on facebook Icon Share on twitter Icon Share on linkedin Icon
blog main image

With the rise of cloud computing in the last decade, one of the major players that has emerged in the market is Azure, a platform provided by Microsoft. 

It goes without saying that data is a key part of any system or software application and as such how it’s stored, managed, processed and utilized in order to achieve the objectives of the application (and by extension, its users) is critical. The Azure platform offers the ability to cater for the storage and management of data with the use of its Azure Storage offering. 

Azure Storage is a comprehensive suite of services that enable users to store and manage data in various forms. It serves to provide a highly scalable, available, reliable, secure and cost-effective way to wrangle data in the cloud to cater for the various needs and use cases of businesses and individuals.  

There are four types of storage options available under the Azure Storage umbrella and they are: Blob Storage, File Storage, Table Storage, and Queue Storage. Each option is geared towards handling data of a specific type, in a specific way or for a specific purpose. 

Blob Storage 

Blob Storage is one of the most commonly used storage options. It is Microsoft's solution to object storage. It is designed for the storage of unstructured data (i.e. data that is not arranged according to a preset data model or definition, for example, text or binary data).  

Some applications Blob Storage can be used for include: 

  • Storing files to enable distributed access. 
  • Serving images, documents, files etc. directly to a browser. 
  • Video and audio streaming. 
  • Writing to log files. 
  • Storing data for analysis, content delivery, backup, disaster recovery and archival purposes. 

Blobs can be stored in three different formats, namely block blobs, page blobs and append blobs. Block blobs are optimized for large amounts of data. It includes features that help you manage large files over networks and as such is suitable for services such as content delivery. With a block blob, you can upload multiple blocks in parallel to decrease upload time. Each block can include an MD5 hash to verify the transfer, so you can track upload progress and re-send blocks as needed. Page blobs, on the other hand, are optimized for random read and/or write operations and as such is suitable for use cases that require consistent high performance and low latency (for example, virtual machine applications). Append blobs are optimized for append operations. When you modify an append blob, blocks are added to the end of the blob only, via the Append Block operation. Updating or deleting of existing blocks is not supported. Unlike a block blob, an append blob does not expose its block IDs. 

Blob Storage offers 3 types of access tiers which enable you to store your data in the most cost-effective manner based on how it's being used. The 3 tiers are as follows: 

  • Hot Tier: Out of the three options, the hot access tier is the most optimized for data that is accessed or modified frequently. It offers the lowest access cost, but the highest storage cost. 
  • Cool Tier: This option is better suited for use cases where data is accessed or modified infrequently. Data in the cool tier should be stored for a minimum of 30 days. Compared to the hot tier, this tier offers lower storage costs and higher access costs. 
  • Archive Tier: This tier has the highest access cost. It is designed for use cases where the data is rarely accessed. Data in this tier should be stored for a minimum of 180 days. 

Blob Storage capacity limits are set at an account level, rather than according to access tier. You can choose to maximize your capacity usage in one tier, or to distribute capacity across two or more tiers. 

File Storage 

Unlike Blob Storage, File Storage is made precisely for structured data. As the name denotes, it caters for the storage of files. It provides a highly scalable and secure way for users to store and access files from anywhere in the world. With File Storage users can set up highly available network file shares that can be accessed using the industry standard Server Message Block (SMB) protocol, Network File System (NFS) protocol, and Azure Files REST API. 

Some scenarios File Storage can be used for include: 

  • File backups and archives. 
  • Storing files for collaboration amongst team members dispersed across locations. 
  • Creating persistent volumes for stateful containers with containerized applications. 
  • Storing commonly used tool and utilities to avoid time consuming copying and unnecessary duplication across virtual machines. 
  • Storing configuration files in a centralized location where they can be accessed from many application instances. Application instances can load their configuration through the REST API, and users can access them by mounting the file share locally. 

Where security is concerned, File Storage isn’t lacking. It uses advanced security measures to protect files from unauthorized access. Files are encrypted at rest, and users can also enable encryption in transit to protect files as they are being transferred to and from the cloud. Additionally, File Storage supports multi-factor authentication, which adds an extra layer of security to ensure that only authorized users can access the files. File Storage can also be integrated with other Azure services such as Azure Backup and Azure Site Recovery, to provide additional data protection and disaster recovery options for users. 

Table Storage 

Like File Storage, Table Storage also caters for structured data. It provides users the ability to store large amounts of data in a non-relational (NoSQL) fashion. Data is stored using a key/attribute (key-value pair) paradigm. Although users can still enforce a schema, the schema-less nature of Table Storage makes it easy to adapt your data as the needs of your application grow and evolve. Tables are organized into partitions which can be queried efficiently. A table consists of a collection of entities (rows), and in turn, entities have properties (columns). Every entity has a pair of keys to uniquely identify it, and a timestamp column that keeps track of when the entity was last updated. The timestamp is applied automatically, and you cannot manually overwrite the timestamp with an arbitrary value.  

Some scenarios Table Storage can be used for include: 

  • Storing flexible datasets like user data for web applications, device information or other types of metadata. 
  • Storing datasets that don't require complex joins, foreign keys, or stored procedures and can be denormalized for fast access. 
  • Applications that want to take advantage of the OData protocol and LINQ queries. 

Queue Storage 

Queue Storage enables asynchronous messaging between application components. It is designed for storing large numbers of messages that can be accessed and processed by multiple applications or parts of a system. This allows you to decouple your application so that they can scale independently. A queue message can be up to 64 KB in size and a queue can contain any amount of messages limited only by the capacity of the storage account. Messages in the queue typically uses a first-in, first-out (FIFO) messaging pattern although it is worth mentioning that they can still be out of order, therefore if adhering to the FIFO pattern is required in your application, another service offered by Azure called Service Bus would be better suited. Queue Storage can also be integrated with other Azure services as well, such as Azure Event Grid and Azure Functions to create powerful event-driven architectures, support a variety of serverless computing scenarios and workflows. 

With its ability to handle millions of messages per second, it is ideal for use cases such as processing large amounts of data in parallel, handling high-volume traffic, and storing messages for later processing. It is also performant and offers flexibility; for instance you can set a visibility timeout upon the enqueuing or dequeuing of a message. Also, you can update a message with different lease values at runtime, and update different values across messages in the same queue. 

Some use cases where Queue Storage can be applied include: 

  • Passing data across microservices. 
  • Load balancing. 
  • Decoupling application components to aid scalability and tolerance for failures 
  • Building process workflows. 

Microsoft provides client libraries to easily integrate Azure Storage functionality in applications. Also with the easy-to-use Azure Storage Explorer application you can manage all your storage accounts in one place. 

In conclusion, Azure Storage is a powerful and versatile storage solution that can be used for a wide variety of storage needs. Whether you need to store large amounts of data, share files, or create easily scalable decoupled applications with event-driven architectures, it has a storage option that can meet your needs.  

With inherent benefits such as scalability, availability, reliability, redundancy, security, cost effectiveness (Azure offers a pay-as-you-go pricing model, which means that you only pay for the storage and bandwidth you use), ease of use, as well as its seamless integration and synergy with other services in the Azure and broader Microsoft ecosystem, Azure Storage forms a valuable addition to any organization's IT infrastructure.  

Get Started With Full Stack!

Ready to transform your business? Contact us today to discuss your project needs and goals.