It’s time to talk about how I’m going to organize and store the data in my project. But before I tell you what I’ve decided, let’s see what type of storage Azure has to offer.
There are a few different options to choose from:
Today, I’ll focus on the first three.
Azure Blob Storage
Blob Storage is a type of storage that you can use for your unstructured data. You can keep text, media files, or binary data in it. One of its advantages is high scalability based on your needs. Blob storage is also easy to set up and is cheap to use, just remember that first you need to set up a container to hold your blob in. See Figure 1 for visual representation of the setup. In addition, there are two types of blob storage tiers that have different pricing: hot storage and cool storage. So, whenever you need to store data that you won’t access for a longer time, you can put it in cool storage – that will decrease the storage cost. In the hot storage you should keep data that you need to access regularly on day to day basis.
Figure 1: Setup of blob storage
Azure Table Storage
Table storage can be used for your structured or unstructured dataset. Azure Table allows you to have different schema in different rows of the table, for example, in one row you can have student basic information, and in another row, you can have a list of courses that the student is taking during the next quarter. See Figure 2 for another example and visual representation of the concept.
Table storage has a NoSQL key value structure, which provides quick access to the data. You can also scale up your dataset without manually partitioning it horizontally (sharding).
One of its advantages is that you don’t have to worry about losing your data due to some unexpected disaster because Azure replicates the data three times within your region and three more times in another one.
Figure 2: Setup of Azure Table
Azure Queue Storage
Queue storage is a specific type of storage because you don’t store your data in it. Azure Queue enables asynchronous communication between components of an application, such as web and worker role or consumer and producer scenarios. This facilitates loose coupling between those roles, so the entities can scale independently. Thanks to asynchronous communication, we also can have enhanced responsiveness of the application, which means that if one process takes too long to complete, we add it to the queue and inform the user that we’re working on it.
For my project, I plan to use a web and worker role, which means that I need some channel for them to communicate through. Azure Queue sounds like the best option at this time to provide such communication between them.
Further, Azure Blob sounds good as a place to keep the pictures of the products.
As for the information about the products, I might stick with SQL database that will be set up on Azure because I want to have a well-organized table dataset.
“Blob storage.” Microsoft Azure. Accessed March 19, 2017. https://azure.microsoft.com/en-us/services/storage/blobs/.
“Pricing – Cloud Storage | Microsoft Azure.” Pricing – Cloud Storage | Microsoft Azure. Accessed March 19, 2017. https://azure.microsoft.com/en-us/pricing/details/storage/blobs/.
“Table storage.” Microsoft Azure. Accessed March 19, 2017. https://azure.microsoft.com/en-us/services/storage/tables/.
“Queue storage.” Microsoft Azure. Accessed March 19, 2017. https://azure.microsoft.com/en-us/services/storage/queues/.