Performance & Load Testing

Resources Center

Scaling up or scaling out


To manage the increasing load / performance requirements, many times scaling the infrastructure become an essential activity. This scale up can be achieved through two options

  • Scale up: Increasing the capabilities of existing infrastructure and system
  • Scale out: Increase the number of boxes / servers in the system (or infrastructure)

While designing the application and its infrastructure, it is important to consider the scaling up and scaling out scenarios. Why to consider scale out scenario? – While planning for scale out situation in future, a load balancing middle tier is essential to distribute and balance the load to multiple systems. Hence while designing the infrastructure we need to make sure that the design supports this.

Scale Up:

 

We add hardware items like processor, network interface cards, RAM, etc to the existing network of servers and thus support the increased capacity, in this approach. It’s a cost effective option that doesn’t require a lot of maintenance and support costs. However it comes with risk. The number of servers being limited, if that component goes down, it would cause the application to also go down. In case of multiple servers however, in case of multiple servers if one goes down the others support the application. One point is important to consider though. If one server is scaled up, other components of the infrastructure also need to be scaled up to support the increase.

Scale Out:

In case of scaling out, more number of servers are added to the infrastructure and load balancing solutions are used. Scaling out solutions also address the application failure issues that occur due to one server failing. To validate if such application failures would be addressed, failure testing is done while building the infrastructure.

Key aspects that would govern the decision making pointers:

  • Check the possibility of server failure and impact associated with the same
  • Consider the possibility of additional servers / capacity required for other components while scaling up one
  • Consider the cost implications of both approach and finalize the solution
  • Ease in database partitioning
  • Number of simultaneous queries supported by the existing db infrastructure
  • Impact on operations (if they exist in the system) that require multiple disks / processes
  • Design level impacts / implications need to be considered
  • Weather the data supported by the system is static / dynamic

Thus the scaling up / scaling out option depends on a lot of factor and a lot of planning and thinking is required while taking a decision. Whatever the decision is taken, failure & other types of performance tests are necessary to be performed on the system to validate the change made on the system and the impact of the same.


Learn more about QTest
AgileLoad.com
Agile Software Security


More Blog