Storage is a popular cloud service and one of the strong points for making a migration. As storage is simple enough for customers to understand and affordable compared with other cloud services, customers often choose storage as the initial use case they migrate to the cloud.
Microsoft has been offering Azure Storage services since the release of Azure Service Manager (ASM). Though they are constantly upgrading existing solutions with new features in terms of redundancy and security, core services have not changed much from their very beginnings. This post will take a look at this successful part of Azure’s cloud service and break it down.
Introduction to Azure Storage
From an infrastructure point of view, the foundation of every storage service is a storage account. A storage account represents a logical grouping of Azure Storage resources which will be utilized in a subscription. There are several types of storage account from which you can choose, depending on purpose and performance needs:
- General-purpose Standard: With this account type data is saved on conventional spinning disks so performance is not top of the line. However, this storage account supports all types of Azure Storage services.
- General-purpose Premium: In General-purpose Premium accounts data is stored on SSD drives. Using SSD drives results in much better performance than with the General-purpose Standard account type, though it is limited to page blobs only. You would choose this account type when you need low latency, high performance disks for IaaS machines.
- Blob Storage Account: Limited only to the block and append Blobs, this type of storage account offers hot, cold, and archive tiers. Depending on how often your data is accessed, the Blob storage account type is perfect for large-scale applications.
It should be noted that you can have more than one storage account in the same Azure subscription. Your data will always have at least two additional copies located in a local data center, but Azure will also let you choose the level of replication you want your account to have from their globally-dispersed data centers. This option allows you to achieve redundancy in case of possible failures and service outages.
When it comes to protection, you can choose from Azure Storage Service Encryption (SSE) for at-rest data or client-side libraries to encrypt your data before sending it to Azure Storage. Microsoft also includes libraries, command-line, and graphical tools for manipulating and managing an Azure storage solution.
Types of Azure Storage
Now that we have discussed the basics of Azure Storage account classifications and parameters, we can look at the actual storage services offered in by Microsoft.
Blob storage represents a type of storage where you can keep pretty much any kind file you need, much like you would on your own computer. You can create containers in which you can place your files and make them available to applications or end users mostly over HTTP, which easily makes use of Blob storage without the need for pesky publishing and access-policy tuning. You are not limited to the number of containers or blobs you can have, but the total size of storage accounts is generally limited.
Blob storage pricing includes multiple parameters, such as replication level, the amount of data stored, and the number of operations performed on it. Depending on the purpose of your blobs, Azure offers support for different types of files:
- Block blobs: The most general category of blobs where files are written in blocks, convenient for storing all type of files. You would make use of this service to store and use files that are consumed whole, such as images for your web applications or audio and video files. IT pros can also benefit from block blobs by using them to store scripts while deploying Azure Custom Script Extension in ARM Template. Another great example is to use separate Azure solutions or even third-party solutions which rely on Azure storage, such as Azure Backup.
- Page blobs: This type of blob supports 512-byte pages with random read and write operations, which makes it the perfect service for storing the virtual disk files used for Azure IaaS workloads. Lately, Microsoft has been segregating page blobs as a completely new offering called Disk storage, which we will discuss later in this article. Page blobs are used for storing disks for virtual machines with Windows, Linux or even specialized Oracle, IBM or SAP workloads and create volumes and partitions on different file systems, for testing or production. It depends solely on your choice of OS and needed software.
- Append blobs: These blobs utilize the same logic as block blobs but are optimized for append operations on the same file, such as storing logs, crash dumps, or similar files which only add more information to the blob.
File shares are widely employed at most companies as they are easy to use and a convenient way for teams to share documents, even on different platforms. The folks at IT department will never tell you that they’re passionate about managing shares or thinking about all the ways disks can fail; you might as well move workloads to an abstracted file share in the cloud with Azure File storage and let Microsoft worry about service availability.
With Azure File storage, all your clients can access files using SMB or REST API, even on Linux, MacOS, or mobile devices. You can store configuration files, tools, and utilities for future use or documents, logs, metrics, and crash dumps for your environment. When it comes to pricing, file storage also combines multiple parameters such as replication scope, the amount of stored data, and access operations.
The Table storage format represents NoSQL store, which enables you to store extremely large amounts of non-relational, semi-structured data. It adds additional logic on top of storage, enabling you to insert and retrieve data using API calls or client libraries. Your data is organized in tables holding collections of row entities with their properties.
You would use Table storage when storing flexible datasets at massive scale without needing to establish relations between them, as you would have to do with a conventional SQL database. Examples include storing diagnostic logs, order or customer information, or something simpler such as an address book. However, if you need stored procedures, foreign keys, or complex joins, you should possibly consider using advanced Azure services such as CosmosDB.
Similar to other Azure storage options, pricing for Table storage differs depending on the replication scope, access operations, and storage capacity you are using.
Azure’s Queue storage service is designed to store and retrieve messages consumed asynchronously by your applications, offering the best effort by first in, first out (FIFO) queues. It’s a perfect candidate for applications implementing workflow logic where each step is based on messages stored in Azure Queue.
Messages from the queue can be read one or more times, and they are not automatically deleted. However, they are limited to 64KB in size and a single queue can contain large number of messages, limited by the maximum size of the storage account. Queue Storage pricing is similar to other options, taking capacity and redundancy level into account.
Disk storage stores virtual disks as page blobs but separates them into two types: managed and unmanaged disks. When you are using unmanaged disks, you are the one in charge of the storage account and all its required administration tasks.
With managed disks Azure takes care of the underlying storage account, and you only have to take care of the virtual machine and your data. For both managed and unmanaged disks you can choose different performance tiers and templates and also limit their size, number of IOPS, and throughput.
New to Azure: NFS Service with NetApp
Microsoft is now offering for the first time, a native, first-party enterprise NFS service that is based on NetApp’s ONTAP technology. This strategic partnership between NetApp and Microsoft now brings NetApp’s world-class data storage, data management, security, and protection to Azure.
In conjunction with Cloud Volumes ONTAP (formerly ONTAP Cloud) for Azure, this new NFS service will easily unify your storage solutions and manage them from single pane of glass, and will be available in public preview in early 2018. To see how your Azure storage costs can be lowered with Cloud Volumes ONTAP, check out our Azure calculator.
To sum things up, Microsoft really puts a lot of effort into offering advanced storage solutions out of the box. You need to plan your performance tier and to what extent you want to protect your data with cross-zone replication or storage encryption.
Depending on your needs, you can use one or more Azure Storage services, even for the same workload, which allows you to focus on your application instead of worrying about hardware, redundancy, or logic for your storage services.
If you are still skeptical about Azure or cloud services in general, try migrating something easy and non-critical to Azure, such as off-site backups. You could also put public materials in Azure Files or Azure Blobs. Additionally, pay attention to service announcements: changes may help you work smarter and faster by updating management features or integrating storage with other Azure services, but they can also impact your application.