Network load-balancing: Failing at the speed of light | F5 DevCentral
The way in which applications fail is not binary - either on or off in state. Applications can fail to deliver data quickly, accurately, securely or appropriately for the requesting device. Network load balancing alone delivers no protection against these types of delivery failure. This significant limitation is due to a lack of appreciation of context in regard to:
- the performance of remote networks beyond the data centre
- unexpected application behaviour
- the capability of the end user device
- real time, end user experience analytics
Network performance
The slowest segment of data’s journey between server and a remote device is typically the last mile of delivery – the network connected directly to the end user technology. This is increasingly so for mobile devices however, irrespective of the medium, wireless or fixed-line, end-to-end performance management is a critical step toward a positive end user experience. The effect of poor performance caused by networks beyond the hosting data center are amplified by the inefficiencies of web applications and their protocols. Web applications are often developed in sterile lab environments lacking the difficulties of real world application access. Consequently, behavioural testing in these labs return acceptable results that are not mirrored in production environments. In the case of interactive applications, where data is received from and pushed to the data centre, the impact of minor latency becomes significantly increased.
Unexpected application behaviour
Unforeseen errors occur during application run-time. For example, uncaught exceptions, as they are referred to in programming terminology, occur when an application reaches a state that was unexpected by the developer. They make their way into applications via a number of means - inexperienced developers, oversight from pressure to release functionality quickly, bugs in API’s (application programming interfaces), to name just a few – and they typically result in an application crash. Unfortunately, requesting of developers to not make mistakes isn’t a viable solution. Such a symptom is a consequence of the human element in computing. The resulting experience for end users can range from meaningless or confusing application error messages to long delays ending with a session timeout and a web browser error. The cost to the enterprise is loss of business and damaged reputation.
Device capability
Optimal application responses for laptops, tablets and smartphones are not alike. For example, Apple’s IOS, the operating system found on iPhone’s and iPad’s, cannot consume web applications developed with Adobe’s Shockwave Flash. Nor can they interpret web applications developed in Microsoft’s Silverlight. The application delivery network must concern itself with the unique requirements of a growing list of end user device types and ensure the devices are connected to the appropriate service. Failing to do so leads to poor end user experience – errors, confusion and disappointment.
Real time analytics
Analytics provide enterprises with operational visibility. However, unless that visibility is derived from real time behaviour, includes detailed application and end user device information, then the data is of little use. Only end user experience related analytics can be used to measure successful application delivery. The analytics must include performance, operating system and web browser versions, network and application responsiveness, to be useful in determining service levels.
With a broad range of devices to support and varying remote network connectivity problems, IT departments must deliver access from anywhere and on any device securely, fast & always available, 24 hours a day. Solving todays application delivery issues requires intelligence in the network, delivering:
- Application awareness: Total insight into how the application is supposed to look on the wire
- User awareness: The ability to see which users are trying to access what application, from which devices.
- Resource awareness: The intelligence to tie all the pieces of the application delivery infrastructure together to provide real-time visibility into the entire Application Delivery Network.
There is little strategic about the unintelligent forwarding of packets form device to device as performed by network load balancers. Gartner's Mark Fabbi shares this view, "Cisco's move limiting Application Control Engine development shows that the time for stand-alone load balancers has passed. IT leaders should focus on leveraging more advanced application delivery controller features to improve application deployments."