Getting the Most From Azure Storage
The course is part of these learning pathsSee 3 more
The Azure Storage suite of services form the core foundation of much of the rest of the Azure services ecosystem. Blobs are low-level data primitives that can store any data type and size. Tables provide inexpensive, scalable NoSQL storage of key/value data pairs. Azure queues provide a messaging substrate to asynchronously and reliably connect distinct elements of a distributed system. Azure files provide an SMB-compatible file system for enabling lift-and-shift scenarios of legacy applications that use file shares. Azure disks provide consistent, high-performance storage for virtual machines running in the cloud.
In this Introduction to Azure Storage course you'll learn about the features of these core services, and see demonstrations of their use. Specifically, you will:
- Define the major components of Azure Storage
- Understand the different types of blobs and their intended use
- Learn basic programming APIs for table storage
- Discover how queues are used to pipeline cloud compute node together
- Learn to integrate Azure files with multiple applications
- Understand the tradeoffs between standard/premium storage and unmanaged/managed disks
Now let's take a closer look at Azure Blob storage. Blob storage is typically used to store unstructured binary or text data like images, video, application or server logs, CSV files and so on. Note that the actual data stored may be highly structured in nature. But unlike for example, SQL databases, Blob storage itself imposes no notion of schema on top of data it contains.
Any data fields or relationships in the data exist only in the scope of accessing applications. As mentioned already, Blob storage is used extensively by other services in the Azure cloud like virtual machines. Thus it can make a high reliability, high performance foundation, for your data intensive applications as well.
Storage accounts can contain up to 500 terabytes of Blobs in total. Within a storage account, Blobs are scoped by a named Blob container. There is always at least one container called Root in a storage account. And you can create others as needed. Some storage libraries like the . NET SDK also have support for virtual folder hierarchies which allow you to organize Blobs in file system like tree structures.
Note that these folders don't physically exist in Blob storage but are merely naming conventions supported as folders by the specific SDK. Blobs have a number of interesting features that make them useful to application developers targeting the cloud. There's support for defining metadata for Blobs which allows calling applications to interrogate some Blob details without directly accessing the Blob itself with a potentially time consuming read operation.
Blobs support both random access at specific offsets as well as streamed sequential reads of Blob data. For rights you can choose chunked access or Blobs optimized for append operations like logging. You can also us page Blobs which are optimized for virtual machine disk usage. You can create Blob snapshots to capture the state of a Blob at a specific moment in time.
This can be useful for supporting application behaviors like reverting user changes or historical debugging of application state. Finally, all Blobs in a storage account can be directly accessed on an HTTP endpoint. You can configure these endpoints to allow anonymous or authenticated access as desired.
This feature lets you hand out URLs to applications or users to directly download say images or video stored in an Azure Blob storage account without having to construct a specific REST API call. There are three main types of Blobs to choose from. Block Blobs are general purpose binary storage. They're optimized for network transfer and fast chunked access of data.
Block Blobs are useful for storing images and text documents. Append Blobs are like Block Blobs but optimized for append only instead of offset based rights. This makes them an excellent choice to support capture of application and server logs. Page Blobs are optimized for random access reads and writes as typically found in virtual machine disk behavior.
Disks that you attach to VMs in Azure are backed by Page Blobs. If you choose to create a Blob storage account, you can opt into Hot or Cool storage tiers. The Hot tier is optimized for frequent access of contained Blob data. Use this tier to minimize access costs of relatively smaller amounts of Blob data.
The Cool tier is optimized for infrequent access. So you use this tier to optimize storage costs of larger amounts of less frequently accessed data. You can change these tiers at any time if your data access needs change. Now let's take a closer look at creating and configuring Blobs and see some of the features that they offer.
About the Author
Josh Lane is a Microsoft Azure MVP and Azure Trainer and Researcher at Cloud Academy. He’s spent almost twenty years architecting and building enterprise software for companies around the world, in industries as diverse as financial services, insurance, energy, education, and telecom. He loves the challenges that come with designing, building, and running software at scale. Away from the keyboard you'll find him crashing his mountain bike, drumming quasi-rythmically, spending time outdoors with his wife and daughters, or drinking good beer with good friends.