If you were looking for a one-stop shop to learn everything there is to learn about Microsoft Azure Storage, then look no further. You found it! You hit the jackpot! Now, let’s get serious. In this two-part blog series, I have covered everything that you need to know from an Azure Storage perspective. What the different services are? What kind of availability do they offer? How good is the Azure Storage Data Protection? etc.
Microsoft Azure Storage is a Microsoft-managed Cloud Service that provides you with a highly available, durable, secure, and redundant storage. Let’s start by talking about the different Storage services that are part of Azure Storage:
- Blob Storage: You can use Blob Storage to store any kind of unstructured object data. This can be anything ranging from cat videos to excel spreadsheets to virtual machine files. If you are familiar with AWS, then this is similar to AWS S3 service. All the data stored in Blob storage can be accessed from anywhere in the world using URLs, REST Interfaces or any of the Azure SDKs. Blob storage follows the following hierarchy:
- Storage Account: In order to access any Azure Storage service, you need to create what we call a Storage Account. Each storage account can have all the services that are part of the Azure Storage services and is not limited to just Blob storage. Each Storage Account can have multiple Storage Containers.
- Storage Container: Storage containers are nothing but a Directory or a Bucket under which you can store your blobs.
- Blobs: Blobs are the individual objects that you want to store in your Storage Container. Hopefully, the image helped to clarify these terms for you.
Blob storage itself has three different types of Blobs that are optimized for specific use cases:
- Block Blob: First, try saying that quickly multiple times. Block blobs are used to hold generic files. You can pretty much save anything in block blob. Each block blob can have 50000 blocks with the maximum for each block being 100MB.
- Append Blob: This is a block blob, but with special capabilities. Append blob has been optimized specifically for Append operations. So think of this like the best place to store your log files, where multiple VMs are appending data at the end of the log file. Each object can be just 4MB in size for Append Blob.
- Page Blob: Page blob has been optimized for more efficient frequent read-write operations. So, if you want to store your virtual hard drives (VHDs) files, then Page Blob is the best place to store those. You can have up to 8TB large Page Blobs in your storage container.
- Azure Files: You can think of Azure Files as a fully managed file share in the cloud which is accessible via the SMB protocol. These file shares are created in the Azure Cloud, but these can be utilized by applications running in the cloud or inside your datacenter. You can compare Azure Files to the Elastic File Service (EFS) in AWS. Each Azure File Share can be up to 5TB in size and each object inside the File Share can be of max 1TB in size. The most common use cases for Azure Files are:
- Replacing or Supplementing On-Prem File Shares.
- Lift and Shift Applications to the cloud. You can either move both your application and the file share to the cloud, or you can just move the file share/data to the cloud and keep running your application on-prem.
- Shared Repository: Azure Files is a great place to store your configuration files, log files, crash dumps etc.
- Queue Storage: You use Queue Storage when you want to store a large number of messages that can be accessed from anywhere in the world. Each message in the queue can be 64KB in size, and you can have possibly an unlimited number of messages in your queue at any given point. Queue Storage is helpful when you want to build loosely coupled applications. You can compare Queue Storage to AWS SQS Service if you are familiar with the AWS terminology.
- Table Storage: This is used when you want to store large amounts of structured data. Table storage is a NoSQL Datastore that you can use for storing non-relational data. After the release of Azure Cosmos DB last year, Table Storage has been officially moved as one of the modes available under Cosmos DB. For comparison, you can think of Table Storage as AWS DynamoDB service.
- Disk Storage: Disk Storage or Azure Managed Disks provides simplified disk management for your IaaS VM disks. By using Azure Disk Storage you don’t have to worry about the availability of your disks. Microsoft uses different storage scale units inside the Azure Datacenter to store the disks that belong to VMs in an Availability Set. This way you can rest assured that even if Microsoft takes a rack under maintenance, not all the disks that belong to your VMs will be affected. And to add to that, Microsoft stores three copies of your data, thus giving you an availability of 99.999%. There are two types of disks:
- Premium Disks: These are nothing but SSDs. Microsoft highly recommends using Premium Disks for the boot disks for your VMs
- Standard Disks: These are traditional HDDs that you can attach to your VMs. Standard disks are cheaper as compared to Premium Disks.
That’s it for part one of the two-part blog series. In the next blog post we will look at the different types of storage accounts, how do we do access control for Azure Storage, how do we encrypt our data, how does Microsoft handle Replication and last but certainly not the least, how much do you have to pay for all these services.