Azure Blob Storage on IoT Edge now includes Auto-Tiering and Auto-Prune functionalities

This post was authored by @Arpita Duppala, PM on the High Availability and Storage team. Follow her @arnuwish on Twitter.

Azure Blob Storage on IoT Edge is a light-weight Azure consistent module which provides local block blob storage, available in public preview. We are excited to introduce auto-tiering and auto-prune functionalities to our “Azure Blob Storage on IoT Edge” module. Currently both these new features are only available for Linux AMD64 and Linux ARM32, support for Windows AMD64 is coming soon.

Auto-tiering is a configurable functionality, which allows you to automatically upload the data from your local blob storage to Azure with intermittent internet connectivity support. It allows you to:

  1. Turn ON/OFF the tiering feature
  2. Choose the order in which the data will be uploaded to Azure like FIFO or LIFO
  3. Specify the Azure Storage account where the data will be uploaded.
  4. Specify the containers you want to upload to Azure.
  5. Do full blob tiering(using Put Blob operation) and block level tiering (using Put Block and Put Block List operations).

When your blob consists of blocks, it uses block-level tiering to upload your data to Azure. Here are some of the common scenarios:

  1. Your application updates some blocks of a previously uploaded blob, this module will upload only the updated blocks and not the whole blob.
  2. The module is uploading blob and internet connection goes away, when the connectivity is back again it will upload only the remaining blocks and not the whole blob.

Auto-Prune (auto-expiration) is a configurable functionality where this module automatically deletes your blobs from local blob storage when TTL(Time to Live) expires. It allows you to:

  1. Turn ON/OFF the auto-prune (auto-expiration) feature
  2. Specify the TTL in minutes

Video

 

Azure Blob Storage on IoT Edge – Version 1.1 (March 07, 2019)

In the diagram below, we have an edge device pre-installed with Azure IoT Edge runtime. It is running a custom module to process the data collected from the sensor and saving the data to the local blob storage account. Because it is Azure-consistent, the custom module can be developed using the Azure Storage SDK to make calls to the local blob storage. Then it will automatically upload the data from specified containers to Azure while making sure your IoT Edge device does not run out of space.

This scenario is useful when there is a lot of data to process. For example, data from industries who captures survey and behavioral data, research data, financial data, hospital data and so on. It is efficient to do the processing of data locally because there is a lot of data that is continuously being captured. Azure Blob Storage on IoT Edge module allows you to store and access such data efficiently, process if required, and then automatically upload that data for you to Azure and automatically deletes the old data from IoT Edge device to make space for new data.

Current Functionality:

With the current public preview module, the users can:

  • Store data locally and access the local blob storage account using the Azure Storage SDK.
  • Auto-tiering from IoT Edge device to Azure
  • Auto-prune (auto-expiration) of the data in IoT Edge device
  • Reuse the same business logic of an app written to store/access data on Azure.
  • Deploy multiple instances in an IoT Edge device.
  • Use any Azure IoT Edge Tier 1 host operating system

Next Steps:

  • Releasing auto-tiering and auto-pruning features for Windows IoT
  • Integration with EventGrid, to light up the event-driven computing scenario on IoT Edge platform
  • Reverse tiering: On-demand tier back the data from Azure to IoT edge device
  • Support more sophisticated tiering and pruning policies, based on early customer feedback
  • Expanding the scope of Azure Storage consistency, e.g. Append Blob support

More Information:

Find more information about this module at https://aka.ms/AzureBlobStorage-IotModule

Feedback:

Your feedback is very important to us, to make this module and its features useful and easy to use. Please share your feedback and let us know how we can improve.

You can reach out to us at absiotfeedback@microsoft.com