Azure Storage offers several options to save data in the cloud. One of the first questions we asked is what kind of files are the best candidates to save with Azure Storage in the cloud? Here’s how we answered that question.
Azure Storage Tables are a good option for storing data from small websites that are non-transactional. For example, you can use Azure Storage Tables to save non-processed order requests, a list of processed orders, or manage a customer’s purchase history. The main advantage is that Azure tables are cheaper than SQL Azure DataBases and allow the storage of data that will never change or data that we need to access quickly. Azure Storage Tables are not good in general for reports, huge queries and height relational integrity. Azure tables are a form of a non-SQL database, therefore there are no inherent relationships within the data. We have only one key per table, for this reason, we have to carefully design the right strategy to save and retrieve data. We have to be very intentional to not build queries that need more than the key relationships to ensure high rates of performance.
Like Microsoft T-SQL we manage blobs to save files in our database, Azure Storage Blobs allows for saving any kind of file with the following advantages: A URL to access the blob, this URL could be public or private or it can be requested by a token. You can save using virtual folders, for instance it is similar to saving files using the windows file system. File info can be accessed easily to determinate file properties like size or extension. Ability to download files directly in the application for example, blobs are good for saving customer invoices in PDF format or product related images. Finally, because the BLOB is stored external to the database it is less expensive than saving large amounts of data in the database and if you are using Azure Virtual machines, you can attach blob Storage as a hard drive.
There are fewer people with knowledge of MS Queues or who use queues on a daily basis. When we considered queues we thought about batch processing, jobs and windows services. Azure has two types of jobs: Azure jobs – these are essentially scripts running a task or like a windows task from back in the day. Azure Worker Roles – these are similar to windows services and can run a group of processes. With both types of jobs you can create a process that uses an Azure Storage Queue and processes data. The queue works in a FIFO structure that can keep the data up to seven days. You can read or process the first element or move to another queue. Queues work with messages where each message is a small object that can be saved for processing. In a practical example, we can use queues to save all customer orders that are received in an eCommerce site instead of having a SQL Table and asking for the newest orders order by date. We place the orders in the queue and use a process to read and move the data to the other permanent structures when we process the order. The queues can also be optimized for higher performance by utilizing the Azure Service Bus.
To summarize, we chose Azure as it gave us the type of flexibility to store and manage data in the cloud that was best suited for our specific application requirements. We hope you find some value in what we have shared and that our experience sheds more light on a few of the key elements of cloud storage systems that can save you time and money.
Article was written by Ronny Muñoz