How to improve APP network performance
I want to share some of my thoughts about improving APP network performance.
In the IT era today, businesses and communities are running on top of connections every single second. Internet is that foundation.
Even today, the broadband of networking with 4G/5G cellular and Wi-Fi 5/6, as well as fiber connections are everywhere, while the applications are so much more and keep increasing that really offset the infra growth.
Therefore, the efficiency of running applications is vital to secure user experience, then the business success.
This article focuses on the infra side, aka “Networking”.
Let’s define the term “networking” first.
“Networking” here means the end-to-end connection from the APP to the Server, it stands for the end user-perceived quality of the network connections.
According to the normal network architecture, this end-to-end connection is simply divided into three parts.
- End user-controlled connection, e.g. home Wi-Fi. The end-user owns a home device that can be easily monitored and optimized. It is also the connection gateway of your mobile devices that runs an APP.
- Internet access line that offered by an ISP, e.g. fiber to the home connection from your home modem to the ISP edge service router or DC.
- ISP core internet network. It rarely has issues as it’s normally monitored and maintained very well by any ISP’s.
- The application server network to the Internet. It’s also closely monitored and maintained well by the APP vendor as it’s the business foundation for its existence.
By understanding these network segments, we would easily design ways to run APP connections for end-users.
- Zero-touch network connections by offering mobile APP only. There will be no visibility and guarantee to any segment network connections.
- Build a service tunnel between the mobile APP and server. communication security and connection will be guaranteed, while the connection quality is not controlled.
- Build segment tunnels for better control over the service delivering quality. It would include “edge network tunnel between mobile APP and edge router” and “core network tunnel between the edge router to APP server”.
The recommendation is of course the third one with segmented tunnels as the best design. Reasons are:
- The nature of different network segments has different challenges of securing connection quality, but in general, the last mile from the edge to the end-user is the most problematic part.
- The resources and competencies to troubleshoot and fix issues for last-mile and core networks are different. normally the ISP and APP vendor have the dedicated tech team to do so, while the end-users would heavily rely on the APP vendor to guide them or even fix issues for them.
Now, let’s talk about the network performance metrics and potential solutions.
If we put focus on the “edge network tunnel”, we can start with the three traditional network quality metrics: delay, jitter, and packet loss.
From the mobile APP standpoint, it could monitor the connection quality from itself to the gateway (e.g. ISP fiber modem or Wi-Fi AP) and to the ISP edge router.
These data will feedback to the end-user and the APP vendor in real-time to justify the last-mile connection quality, and take actions accordingly or follow the per-defined fail-over strategy to improve network quality.
Moving further and proactive monitoring strategy, we could add more metrics like bandwidth detection to adjust video quality (e.g. 720p v.s. 360p), and use a different codec to transmit videos.
We could also define the priority levels of video and audio transmission so that the end-user will still get the content from the APP server or secure basic interactions between the end-user and the APP server.
If we want to add some intelligence, we can use machine learning to get the tolerance level of a specific end-user on what important to him/her (video v.s. audio), and how much video distortion and delay he/she can afford in the worst network connection scenario, etc.
All in all, this is to secure the best customer experience with the network infra monitoring by collecting network metrics, as well as learning end-user behaviors, then to adjust network connections and streaming strategies.
This feedback loop never stops running but keeps evolving to support the business growth and deliver the best user experience.
Please comment if you have more ideas and best practices on this topic, or connect with me in person to discuss it further.
I am fully convinced that people can build a better world via cooperation and collaboration.