Why is performance so important?
The failure of a business application due to performance issues can be extreme. Fallouts include:
- damage to brand,
- loss of service,
- disgruntled customers,
- bad reviews.
Will moving to the cloud help?
Cloud services, including AWS, Azure & GCP, support vertical and horizontal scaling, allowing flexibility when managing unusually high demand. Then why not migrate your services to a cloud platform, implement autoscaling, and call it a day?
Cloud based services must be performance tested as comprehensively as data centre systems. This is necessary to ensure the available services are correctly operational before activating autoscaling technology, and then to verify that autoscaling is working as intended. Otherwise you might be left with a higher cost, unchanged performance, and equally disgruntled customers.
What is performance testing?
Classically, performance testing tools are used to identify break points and capacity limits within applications and systems. The results are then used to debug applications and tune environments.
Testing can be focused around:
- transaction response times as observed by users e.g. how long does it take to purchase a widget?
- how many transactions the application supports over a measured period of time e.g. a business requirement of “The application needs to support 1000 purchase widget transactions per minute, with the 90th percentile having a response time of 4 seconds”
Detailed analysis of system & application logs and performance counters is required to identify why an application runs slower than expected; a server reporting low percentage CPU busy may not be a healthy sign as it can be a result of bottle necks elsewhere, for example a slow or misconfigured network.
What about Performance Engineering?
Performance Engineering takes testing a stage further by comparing the efficiency of given components, at the unit level, to their theoretical maximum performance and adjusting the implementation as appropriate. Examples here are database locking methods and sorting algorithms within code.
Sample Performance Engineering analysis investigating usage of Oracle verses Sybase for a customer.
So, what is the solution?
It is extremely important that applications and architectures intended to be used with cloud autoscaling technology should be performance tested ahead of turning on autoscaling. The reasons for this are two-fold:
- autoscaling can mask an underlying performance issue, resulting in unnecessary infrastructure being autoscaled into action (with associated costs), and
- a performance issue (masked by autoscaling) can soon become a functional error, for example a timeout.
Cloud applications with users spread across the world should be performance tested using methods representing all user locations. This was a problem for classic performance test tools, which were not ready to support cloud internet testing. However, current tools such as Micro Focus LoadRunner Cloud allow a performance engineer to configure tests with user load generated in selected international geographies to simulate users located across the world.
Analysing the results will identify if network latency is a challenge for the application, which may result in:
- changes to the application logic,
- application servers in additional countries, or
- identifying whether the environmental topology needs to be modified to support caching.
How can we help?
Automation Consultants Ltd has 20 years’ experience providing Performance Test and Engineering services to Banking, Government and Telecommunications verticals. Engagements typically involve ensuring that applications and their supporting environments match business requirements for 100’s or 1000’s of transactions per hour with acceptable performance experience for worldwide end-users.