Performance Engineering and Monitoring

Performance Engineering as a process consists of System Evaluation and Formulating a Performance Strategy, Performance testing, measurement, analysis, and tuning, and can be mapped to every phase of the software development Life-Cycle (SDLC). Performance must be designed and built into the system right from the inception. Ironically, the need for Performance engineering is generally realized very late in the product cycle. Product organizations pay attention to performance needs or rather issues, after applications go live in production and start facing actual scalability challenges. A good product or service tends to get rapid user attention and along with it fetches scalability challenges. A typical inquiry that AFour gets is related to the classical issue of a product not being able to scale. Other common issues pertain to: data loss during volume transactions, deadlock on database, transaction time outs due to slow response time, etc. Such clients have to go after reactive ad-hoc solutions to address the performance issues.

In order to ensure that Performance is built into the system and that it is not added as an afterthought, the Performance Engineering life cycle must be integrated with the SDLC. It starts with understanding and analysis of non-functional requirements followed by architecture performance review (including identification of cloud and virtualization dependencies), production infrastructure assessment and performance infrastructure planning, workload modeling, performance metrics identification, performance testing and tuning, performance baselining and monitoring.

Many of our clients who partner with us for end to end QA activities, typically ask for performance engineering as one of the key initiatives to be included as a part of the product QA strategy.

While working on a performance engineering initiative, AFour Solution Architect (SA) works closely with the client engineering team and prepares a Performance Requirements document. This document forms the basis of a detailed performance engineering strategy. Performance engineering strategy elaborates on performance architecture review, analysis of cloud services and virtualization dependency, analysis of third party services dependencies, production and performance infrastructure planning, workload modeling, performance metrics, performance testing and tuning, and performance monitoring process. Each phase of the performance engineering document is then implemented by the AFour Performance Test engineer along with close guidance and review by AFour SA.

Business Impact

  • Executed end to end performance engineering for our Healthcare and MDM enterprise clients
  • Conducted performance architecture review for client and identified 22 valid issues in the early phases of the SDLC
  • Identified performance bottlenecks of a healthcare enterprise application
  • Performed database performance tuning for our healthcare and retail client
  • Performed application server tuning for employee benefits systems hosted on IIS server
  • Performed code profiling for a business layer components of healthcare software application
  • Performed capacity planning for an online workflow management system hosted in private data center and provided optimal infrastructure planning for next 2 years
  • Developed custom framework and integrated with nagios for monitoring uptime of cloud provider services
  • Developed custom framework to monitor uptime of website instances of volunteer management system
  • Performed stress testing for social networking mobile app client and reported data loss issues

Tools and Technologies

  • SQL Profilers: MS SQL Server, Oracle
  • Code Profilers: VSTS, ANTS, JProfiler
  • Load Generators: AppPerfect, VSTS, JMeter, LoadRunner, LoadUI and Custome Load Generators
  • Performance monitoring tools: AppFirst, nagios, pingdom and customer performance monitoring tools developed internally

Contact Us for relevant Case Studies.