Thursday, August 9, 2018

Improving performance of latency sensitive internet hosted application

The main LOB app my company uses is a client/server type application where the developer of said application provides all hosting of the back end in their datacenters, where we are hosted out of Chicago. They spin up a VM for each customer and size accordingly. We then install a client on our machine (a very fat .NET client) that makes calls over the internet to our instance in their datacenter. No data is cached locally in the client, everything is a request to the datacenter, from opening a full record, to changing screens within a record that load different field data.

Latency is the #1 enemy of this application, and I have offices all over the USA. My corporate office is in the Chicagoland area and average latency to the hosting DC is around 5ms, can't be more than 40-50 miles of fiber distance in this instance. My offices in California are generally 45-50ms depending on provider.

To give you an example on impact of more latency, the Chicago area office takes about 14s to open application, 4s to open a data record, and 2-4s to flip between different screens within the record. The west coast office times are 30s to open application, 13s to open a data record, and 2-6s to flip between different screens within the record.

I've been ask to "find a way to make the experience faster for the slower offices". I understand that I can't make light move faster, and that distance is always a factor. I can explore alternate internet providers for a given location to see if latency would go down due to better routing, reduced hops count, etc., but I would expect this to not have much more than 5ms improve on average, maybe 10ms if I was lucky. Would you concur?

Another thought is an MPLS/PNT type connection between west coast offices and my corporate office in Chicagoland, routing them over this link and out to the hosted DC. But, I don't know if this would yield any substantial performance improvement or not.

Next thought is an SD-WAN provider, to see if one of them can do some magic in their black boxes to reduce latency once traffic hits their cloud. Zero experience with any of these whatsoever though.

Last though Is standalone WAN optimization/acceleration gear (as opposed to SD-WAN offering it).

SD-WAN/WAN optimization seem like they could offer the most potential benefit, assuming this application proves friendly to that kind of optimization. Easy enough (relatively speaking) to vet that out I suppose.

Looking for feedback from those of you more experienced than me to suggest where I focus my efforts and prioritize my options.



No comments:

Post a Comment