DEV Community

Cover image for Building a Reliable, High-Availability Storage Solution for Your Public Website
Tunmise timothy
Tunmise timothy

Posted on

Building a Reliable, High-Availability Storage Solution for Your Public Website

In today’s digital age, managing a growing customer base means providing seamless access to mission-critical content like product images, videos, marketing materials, and customer success stories. For companies with global audiences, ensuring low-latency access and high availability of website resources is vital to keeping customers engaged and satisfied.

At the same time, managing document versions and being able to restore accidentally deleted files is crucial to maintaining smooth operations. This is why creating a high-availability storage solution with proper version control and data recovery options is a must for any modern company.

Here’s why this setup is so important:

**High Availability for Global Demand: **With demand expanding worldwide, your storage solution must guarantee that content remains available even in the event of regional outages. This ensures uninterrupted service and user satisfaction.

**Effortless Content Management: **Your website needs to provide public, anonymous access to resources like images and documents without requiring users to log in, allowing customers to quickly and easily access your content.

**Version Control and Restoration: **Having the ability to track document versions and restore deleted content ensures that even if something goes wrong, your data can be quickly recovered, minimizing downtime and errors

Let Me Show You How
Let’s dive into the step-by-step procedure to set up this robust storage solution on Azure, ensuring high availability, public access, version control, and recovery features.
Problem Statement
The company website supplies product images, videos, marketing literature, and customer success stories. Customers are located worldwide and demand is rapidly expanding. The content is mission-critical and requires low latency load times. It’s important to keep track of the document versions and to quickly restore documents if they’re deleted.

Skilling tasks
Create a storage account with high availability.
Ensure the storage account has anonymous public access.
Create a blob storage container for the website documents.
Enable soft delete so files can be easily restored.
Enable blob versioning.

Exercise instructions
Create a storage account with high availability.

  • Create a storage account to support the public website.

In the portal, search for and select Storage accounts.
Select + Create.
Image description

Image description
For resource group select new. Give your resource group a name and select OK.
Set the Storage account name to publicwebsite. Make sure the storage account name is unique by adding an identifier.
Take the defaults for other settings.
Select Review and then Create.

Image description

Wait for the storage account to deploy, and then select Go to resource.
This storage requires high availability if there’s a regional outage. Additionally, enable read access to the secondary region, Learn more about storage account redundancy.

In the storage account, in the Data management section, select the Redundancy blade.
Ensure Read-access Geo-redundant storage is selected.

Image description
Review the primary and secondary location information.
Information on the public website should be accessible without requiring customers to login.
In the storage account, in the Settings section, select the Configuration blade.
Ensure the Allow blob anonymous access setting is Enabled.
Be sure to Save your changes.

Image description

Create a blob storage container with anonymous read access
The public website has various images and documents. Create a blob storage container for the content. Learn more about storage containers.
In your storage account, in the Data storage section, select the Containers blade.
Select + Container.

Image description
Ensure the Name of the container is public.
Select Create.
Image description
Customers should be able to view the images without being authenticated. Configure anonymous read access for the public container blobs. Learn more about configuring anonymous public access.
Select your public container.
On the Overview blade, select Change access level.

Image description
Ensure the Public access level is Blob (anonymous read access for blobs only).
Select OK.

Image description

Practice uploading files and testing access.
For testing, upload a file to the public container. The type of file doesn’t matter. A small image or text file is a good choice.
Ensure you are viewing your container.
Select Upload.
Browse to files and select a file. Browse to a file of your choice.
Select Upload.
Close the upload window, Refresh the page and ensure your file was uploaded.
Determine the URL for your uploaded file. Open a browser and test the URL.

Image description
Select your uploaded file.
On the Overview tab, copy the URL.
Paste the URL into a new browser tab.
If you have uploaded an image file it will display in the browser. Other file types should be downloaded.
Configure soft delete
It’s important that the website documents can be restored if they’re deleted. Configure blob soft delete for 21 days. Learn more about soft delete for blobs.
Go to the Overview blade of the storage account.
On the Properties page, locate the Blob service section.
Select the Blob soft delete setting.
Image description
Ensure the Enable soft delete for blobs is checked.
Change the Keep deleted blobs for (in days setting is 21.
Notice you can also Enable soft delete for containers.

Image description
Don’t forget to Save your changes.
If something gets deleted, you need to practice using soft delete to restore the files.
Navigate to your container where you uploaded a file.
Select the file you uploaded and then select Delete.
Select OK to confirm deleting the file.

Image description
On the container Overview page, toggle the slider Show deleted blobs. This toggle is to the right of the search box.
Select your deleted file, and use the ellipses on the far right, to Undelete the file.
Refresh the container and confirm the file has been restored.

Image description
Configure blob versioning
It’s important to keep track of the different website product document versions. Learn more about blob versioning.
Go to the Overview blade of the storage account.
In the Properties section, locate the Blob service section.
Select the Versioning setting.

Image description
Ensure the Enable versioning for blobs checkbox is checked.
Notice your options to keep all versions or delete versions after.
Don’t forget to Save your changes.

Image description

As you have time experiment with restoring previous blob versions.
Upload another version of your container file. This overwrites your existing file.
Your previous file version is listed on Show deleted blobs page.

Top comments (1)

Collapse
 
tobidelly profile image
TD!

Well done