Five tips to keep apps from failing

29.06.2012

Performance testing is a critical step in application performance planning, but sometimes it's overlooked in the rush to go live with a new application or service. If IT skips the performance test, which ensures that the application meets basic SLAs before releasing to users, there's no way of knowing if the application will survive once demand grows or usage behavior changes. Perhaps the application works just fine with 200 users, but what about when there are 500 users? Automation tools can simulate many use case scenarios quickly. Performance testing can also deliver a baseline metric for application performance, which indicates the normal average response times. Baselines are extremely valuable because it allows IT to compare performance metrics over time to see how the application behavior is changing and when service levels are out of whack. Redefining the baseline is often necessary to adjust to new application features, a significant increase in users, or business shifts including changing customer requirements.

4. Monitor performance in production.

Performance is never a constant. Usage patterns and the total application environment will change without notice. Active monitoring of end-to-end application performance in production means that issues affecting customers and causing SLA breaches can set off alerts so that IT employees can fix them quickly. The ability to determine the exact point of and reason for poor performance ("root cause") in the complete application flow is vital in order to respond quickly. An ultimate goal is to respond automatically to performance issues through adding capacity or making configuration changes.

5. Encourage collaboration between application and infrastructure teams.

Application and infrastructure managers aren't always on the same page. Developers are focused on new features and improving user experience while the operations team is thinking about provisioning servers and optimizing storage devices and network architecture. Yet bringing these two groups together can head off a lot of application problems. Developers should apprise the operations team of any upcoming changes in the application. Meantime, operations can inform the applications team when they are seeing spikes in transaction loads that may require tweaks to the code, so the app can run more efficiently and consume less resources. Collaborating with the customer support team is also helpful. Those individuals are on the frontline of user issues as they occur, and may be able to spot trends indicating a widespread problem in the works. Collaboration can happen in many forms -- real-time automated alerts, a shared dashboard for the entire infrastructure, weekly meetings and online discussion boards.