Azure Storage & Replication Overview
As you would imagine, there are numerous considerations to review when determining the product, you will use for storing your data on Azure. Concepts such as security, performance, scalability, and redundancy all need some thought.
Consider your data storage requirement from a security perspective asking questions like,
- Does the data need to be encrypted?
- does the data need to be encrypted while transferred?
- should it be encrypted at rest, and how secure is accessing the data once migrated to the Azure platform?
After reviewing each of the Azure Storage product capabilities and having your own requirements identified, deciding which product provides the requirements of your data security strategy can then be chosen.
From a performance perspective, SSD are known to have a much better throughput and IOPS than HHD.
- Does your storage solution need to handle more than 20,000 requests per second?
- How many requests per second does your application require?
- How about the growth of the data that your application or customers generate and that needs to be stored?
- Does it only grow, or does it expand and contract over a given timeframe?
let’s talk about data redundancy and concurrency we have option like LRS, ZRS, GRS.
these are the options you have for making sure you neither lose data nor lose access to it if there is an outage in a given region or zone. Concurrency needs thought.
- How stringent do you want to be on reading and writing data?
- Writing, updating, and reading data on hyperscale data storage products might encounter experiences where a row or file is in the process of being written to by different clients at the same time. How do you handle such a scenario?
The Azure Storage products, features, and concepts discussed in the next section consist of the following:
- Storage accounts
- Zone replication
- Azure managed disk storage
Azure Storage Account
The storage account product portfolio contains many of the original Azure cloud offerings. Azure Storage products in the following list will be a great fit:
- Azure Blobs
- Azure Files
- Azure Queues
- Azure Tables
A common pattern between Azure Storage services is that they have a global endpoint, similar to those shown in Table below Simply replace the asterisk ( * ) with your storage account name.
These global endpoints like many other Azure products include the ability to create firewall rules to prevent access.
It is used to store objects in Azure Blob Storage. Small file types like an HTML or CSS file can be saved to an Azure Blob container just like larger file types such as videos and VHDs. There is no limit to the number of objects you can save to a container, and there is no limit on the number of containers you can have in your storage account. The maximum size of a single object that can be stored in a container is about 5TB. There are three types of blobs.
A block blob is an object that is large, can be broken into numerous parts (i.e., blocks), and each block uploaded in parallel. It’s optimal for streaming files. You could imagine that this can improve the management and speed of upload. Consider the time required to upload a 1TB file and consider during that timeframe you must assume the risk of interruption is greater than if you are uploading a 100MB file, which would happen faster. If you could upload that 1TB file in blocks using multiple machines or connections, it will happen faster. A block blob there is a limit on the number of blocks per blob, as well as on the size of block. Those values are 50,000 blocks of 100MB each, which equals 4.75TB.
Append blobs having 50,000 blocks with a maximum size of 4MB, which equals 195GB. Appending means that you add data at the end of a file or in this case a blob. This kind of blob is optimized for updating and should be chosen when you append rather than update the contents contained in your blob.
Page Blob If you upload a custom VHD to create an Azure VM, for example, you would select a page blob, which is optimized for that kind of usage. The maximum size of a page blob is 8TB and is written in pages based on the page size defined also during its creation. The maximum size of the page blob is set at creation time. In addition to being the backbone of the Azure IaaS (i.e., VHD) product, this kind of storage is used for storing data for an Azure SQL and PaaS products.
A page blob is one of the design philosophies that provide sharding capabilities. It is the reason that writes to page blobs are committed immediately and written in place. The last two concepts within the Azure Blob storage context to call out are the public access level of the container and the access tier of a block blob.
There are three type of access levels available for an Azure Blob Storage Container.
The default is Private (no anonymous access). If you wanted to retrieve a blob stored in that container, the client from which you requested the blob would need to send a valid token along with the request. Using a tool like Postman or the Azure Storage SDK would provide the capabilities to add this token to the request, which is in the form of an HTTP.
The blob is accessible globally from any client that can make HTTP requests and can render a PNG image (blob names are case sensitive; PNG must be uppercase).
The third public access level is Container (anonymous read access for containers and blobs). Here you allow all blobs in all containers to be read and listed.
Using the Azure Storage SDK or Azure Storage REST APIs, you would have the access to a list of existing blobs within a container and can read the ones that you wanted or needed.
The final Azure Blob feature to discuss is the access tier, which is available only for block and append blobs. There are three different tiers, Hot, Cold and Archive. Hot means the data is accessed more than once in a 30-day period. Cold means the data is accessed greater than 30 but less than 180 days. Archive is anything over 180 days. The reason for these tiers, as you might expect, is based on cost.
Azure Files is a product that provides storage for files that can then be shared with your customers or employees. It works in the same way as a file share you would create in Windows Explorer by right-clicking a folder. You can then give access by right-clicking Properties and then Sharing. In the case of Azure Files, there is a global endpoint that is accessible from any device with an internet connection running Windows, Linux, or macOS.