Application Developer and Network Performance Woes

Date:   Monday , January 02, 2012

The life of an application developer is an interesting one. They take in business requirements and try to carve out a program that will do everything that the business wants it to, and some more. While there may be the hardware promising the performance that the business requires but it’s the application that forms the heart of a business process enabled by IT.

However requirements are as dynamic as the business is and therefore more often than not the developer is looking at re-writing the code or adding new functionalities to the application. Add to that noose-tightening deadlines and the developer is left with very little time to perfect his creation. There is no point in time, wherein the application is complete or perfect, as 10 different users would want to use it, make their own suggestions and want those suggestions to be incorporated.

No matter how unhappy users can be, fixing that nagging bug you’ve been chasing for hours is a rush, and starting with a blank source code file is like looking across a wide-open plain. You can see what might be, and you get to go figure out how to do it.

Therefore developers spend a lot of time working and re-working on these applications to tweak them to best meet the requirements. However with the world increasingly going the Web application way, application performance of a web application is a problem that is just adding to the application developer woes.

Why the network is all important

The availability of the network, factors such as network congestion, failure of network devices can severely affect the availability and performance of the application. Often developers end up working around the application to solve a problem created by the network.

Let us assume a web application that has been tweaked to meet the performance requirements. A load balancer or an application delivery controller is added to share the load among multiple copies just in case the tweaks aren’t enough to meet unforeseen challenges.

Let us further assume that the primary internet connection goes down, and the networking staff switches to the backup connection, which is invariably a smaller pipe than the primary. Now while your application can be load balanced or optimized it is now fighting for bandwidth.

This is just one of the many other network related problems such as a router configuration error or a DDOS attack aimed at clogging the network.

The router configuration error could leave the enterprise network and the applications unavailable to the users and route them to a different location. The DDPS attack may have a lesser impact and result only in a degraded network performance especially if the network has devices that can fight DDOS attacks.

While an application developer may not be able to solve network problems, he can understand the network; the devices placed in the network, their impact on the application and then code applications that can work around performance issues that are network related.

Cloud Compounds the Problem

Many believe that putting the app into the cloud, will change everything. However cloud only changes the application delivery model and therefore the problem remains. The developer would still need to worry about application performance caused to users by the network.

However, as everything is hosted on the cloud, there are many network related factors that the developer would not have visibility into. For instance he would not know if there is a virtual ADC deployed, or the kind of firewall services being used. He would not know about the performance tools deployed to determine bottlenecks of applications deployed in the cloud. It would be ideal to determine these factors before the application is deployed in the cloud as it would make it easier to troubleshoot unforeseen problems as they occur.

The problem in this scenario is that your application can be load balanced and highly optimized, but now it is fighting for bandwidth on a reduced connection.

Learning about these problems post an event would only increase time to re-work and redeploy the application and the developer could end up with bugs in a hastily coded application. A good Web acceleration tool can be placed between the application and the user. It then only requires tweaking the web acceleration engine to handle network performance issues rather than rewriting a chunk of code. It could save the developer both time and potential coding defect issues.

This tool is an advanced web application delivery solution that provides a series of intelligent technologies that overcome performance issues involving browsers, web application platforms, and WAN latency. Pre-defined, validated web acceleration policies enable application acceleration right from the start. These policies can be used as built-in templates for specific web applications. Generic policies can be applied for custom and less common applications that do not have a pre-defined policy. It’s still a great time to be a developer, the fun is still all there, it’s just a more complex world. Master your network architecture, and be a better developer for it.

The author is Managing Director, F5 Networks India