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
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.
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.
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:
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.