Tuesday, September 11, 2012

Mobile APM: Experiential vs. Operational

I mentioned before, mobile APM is different. One aspect it is different in, is the structure of the delivery chain, which commonly includes the wireless carrier.
The complete mobile delivery chain (Image Courtesy: Compuware)
When you think about the end user experience, unless their on wifi, performance over the wireless-cellular network is almost chaotic. Even optimal performance, when you have good reception and reasonable data protocol, you are still bound to the doppler effect (basically at any second signal reflections and cancellations can create temporary signal drop even if you're standing still in good coverage area). Compared to the ISP delivery model, cellular interfaces are creating a headache in trying to maintain mobile APM. According to Shunra, over 60%of application failures are due to non-functional issues. Sometimes you want a "clean room" environment.
"Clean room" environment allows quick isolation and correction of the APM issue (Image courtesy: Compuware)

You still need to maintain the monitoring methodology from the end user perspective. Why? because all components making the experience come together in the browser/app. In mobile, typically there are more 3rd party vendors (which you need to watch!) compared to desktop.
So you ask yourself, should I include the wireless carrier in my monitoring, or monitor via a connected ethernet line? Here is my recommendation.
  • When you're trying to identify, isolate and address issues, you want to perform operational monitoring over the ethernet (eliminate noise from the cellular link). Why?
    • Most issues have to do with backend issues which you can correct, and those manifest themselves in the same way on wired connections (you can think of a wired connection as the equivalent of iPad on wifi).
    • Issues related to cellular link performance are highly intermittent and you can't fix them (unless you're the carrier or someone the size of Google, and even then.).
  • When you're trying to optimize the experience, understand the true end user experience, perform experiential monitoring (using real user experience data that includes the cellular and wifi links). Why?
    • Because you can understand the end user experience globally and tune your CDN, composition of components on your page/app
    • You can better identify trends and address those by dynamic tuning of the backend
Naturally, experiential monitoring is best served by tagging apps and websites ('Real user monitoring') like many companies offer (Compuware, Google, Localytics, Flurry, Yottaa etc.).

Hope this helps, interested in your thoughts!

No comments: