Website performance analysis and engineering
Performance analysis is focused on understanding and analyzing how the website will perform under various circumstances. The goal is to produce estimates of the following key performance metrics:
- Response time, i.e. how long will it take to perform a specific task, like view a web page, get the results of a search query, subscribe to a service, place an order, etc.
- Throughput, i.e. the "horsepower" of a website and it can be expressed in many different ways, depending on its nature. For example, typical throughput metrics include:
- maximum concurrent visitors (how many people can visit a website concurrently and use its resources)
- maximum transactions per second (search queries, payment transactions or other requests regardless of the number of concurrent users)
- maximum bytes per second (affects response time and it's crucial for some types of services like Web TV)
- Utilization, i.e. what percentage of the time is a website busy. If utilization is too high, it means you have to upgrade your systems in order to avoid longer response times.
At Alterora we try to identify performance issues from the very onset of every project. We have integrated performance engineering throughout our entire methodology, so performance is never evaluated far too late in the system life cycle.
- Functional testing. The first step is to verify that the website is behave as expected and it is functioning properly.
- Load and scalability testing. The purpose of this step is to simulate website usage at different loads. With the help of automation testing tools we can see how the system responses as we increase concurrent users or the size and the complexity of their requests.
- Interpretation of the results. Analyzing the results can take different directions as uncovering the bottleneck of a system (think of it as the "weakest link") can be not so obvious. It might be a the network misconfiguration, a non-optimized database, a slow piece of code or a hardware issue.
- Optimization. Having analyzed the results in the previous step, we are now in position to identify opportunities for improvement. and suggest specific recommendations.