Messages can be stored and retrieved using queues. These stored messages can be up to 64 KB in size and can be accessed from anywhere in the world over HTTP or HTTPS. Millions of messages can be handled in a queue, and the limit totally depends on the capacity of the storage account. Queues are appropriate for storing lists of messages that need to be asynchronously processed.
One of the examples that is cited in the Microsoft documentation is very apt for explaining the purpose of queue. An example is, assume you have an application to which customers can upload pictures. Either you can wait for all images to get uploaded and then create the thumbnail or you can create thumbnails while uploading the images. The latter one is user friendly, as the customer will be able to see the thumbnail as soon as they upload. This can be accomplished with the help of queues. When the customer finishes uploading an image, let the application write a message to the queue. An Azure Function App can be triggered that will retrieve the message from the queue and create the thumbnail. If you are not familiar with Azure Function Apps, then it’s a service that can be triggered based on events. Functions are small chunks of code that can be executed to achieve certain tasks like the one you read about earlier. Azure Functions is an example of serverless technology.
Azure Tables
Tables is a NoSQL datastore that is now part of Azure Cosmos DB. Besides the Table Storage, Cosmos DB offers a new Table API with additional features such as turnkey failover, global distribution, automatic secondary indexes, and throughput optimized tables. Table Storage is suitable for storing nonrelational structured data.
Both tables and queues can be tested with application code only. As this book mainly focuses on the infrastructure part, we will not do a deep dive into these topics. Nevertheless, we will discuss blob storage and files in detail later in this chapter.
Azure Disks
Azure Disks provides persistent storage to Azure Virtual Machines, Azure Virtual Machine Scale Set, and the Azure VMware solution. The VMWare solution is under preview at the time of writing this book. With these four performance tiers, Azure Disks acts as a high-performance durable storage for our applications. The performance tiers are Standard HDD, Standard SSD, Premium SSD, and Ultra SSD. These tiers have different IOPS values.
There are two types of disks: unmanaged and managed. In managed disks, Azure takes care of the underlying storage account, and there will be one storage account per region that is used to store the virtual hard disk of our virtual machines. In unmanaged disks, you must create the storage account to hold the virtual machine hard disk. Microsoft recommends that you always use managed disks for better availability.
As mentioned in the introduction of this chapter, Azure Storage offers different redundancy levels based on your requirement. Now you will learn about the redundancy/replication methods available.