Question

I have a primary blob storage in West Europe region that contains user uploaded files accessed through a we application within the same region. This suffers from high latency, say if you're in East US region.

So I add another instance of the application to the East US region, and use traffic manager to route between the two instances based on performance. Users in the East US region now talk to the application instance in their own region.

The problem is, now the East US instance is talking to the blob store in West Europe, so the application suffers from the latency. I can turn on geo-redundancy for the West Europe blob store, but this is basically just for backup, not performance, as I can't pick which region to replicate to.

I can't use a CDN, since the files being access are the users private files, and I only generated Shared Access Signatures for each URL when the user interacts with the application. (CDNs are just for public stores).

So, how to replicate a blob store from one region to another of my choosing? Ideally this would be two way, like I could do for SQL-Sync. The ideal end result is the East US instance talks to a East US based blob store, with the blobs in sync with the West Europe primary.

Was it helpful?

Solution

There's no built-in mechanism in Azure to facilitate blob sync'ing between regions (aside from geo-replication between paired regions). You'd need to implement this in your app. How to do this? That's subjective and would probably invite a lively discussion (plus StackOverflow isn't a place to solicit opinions).

That said... from an objective standpoint, the closest you'd find as a built-in enabler, in Azure, would be Service Bus, as it supports pub/sub. This would allow you to publish messages related to storing content, and then have subscribers representing each desired region consuming these messages from their own subscriber queue and writing to region-specific blob storage.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top