I have a Webapplication which is running in multiple Regions in the Azure Cloud (4 right now). Now i have the following problem:
The traffic manager is configured for speed so he chooses the Region with the lowest latency for the user.
Now i have users which are in some kind of let's say greyzone. They jump between the regions. Concrete example: I have servers in US Center and Westeurope and the user is in atlanta. The pings to those two regions seam to be very close to each other because the user is at one time on the europe servers and on the next day he lands on US Center.
This is a problem for me because of the sessionmanagement... the user is then not logged in in the other Region. I use Redis Cache as a storage for the session but each region has it's own Redis Cache. One solution would be for that to use one Redis Cache for all Regions on the globe. But i read that Microsoft recommends to keep the Redis Cache in the same Region as the Webservers are...
It becomes really funny for this "greyzone" users when it comes to fileuploads. My Webapplication allows authenticated users to upload files which can be multiple 100MBs large. We use chunking to upload this large files. It did not happen yet to my knowledge but theoretically it would be possible that lets say the first half of the chunks lands on the europe servers and the rest on the US Center servers. Nightmare... :)
I'm currently stuck because i'm note sure what's the best way to solve something like this?
The only solution i came up with is the follwoing: Global rediscache so the user is authenticated in all Regions. If it really happens that during the upload process one chunk lands on the wrong region i would know that at least and could transfer it to the other Region where the rest of the chunks are.
I'm not very happy with this solution... How is a situation like this normaly solved? Whats the best approach here?
I would appreciate any advice! Thank you very much in advance,
Best Regards, Metabolic