Saturday, April 25, 2009

Scalability in an application

Scalability is one of the biggest concerns in enterprise grade application architecture and it gains more importance for SaaS applications due to their very nature of business model.

Scalability in an application can be achieved in three dimensions.

1. Vertical Scalability: This is the easiest form of scalability. In this approach just keep on adding horse power of m/c on which application is deployed. Practically, here effort on the part of application architectural and engineering team is zero.
2. Horizontal Scalability: This approach is quite common. This approach supports two flavors. Hardware approach and software approach. In layman’s terms if one can run two or multiple instances of application then software based scalability can be achieved by utilizing m/c’s resources optimally. The hardware approach requires little effort on architectural and engineering team. In this approach application should be able to on multiple m/c s to cater increasing business demands. The common technique used to achieve this type of scalability is clustering – software & hardware clustering.
3. Multi Component Scalability: To achieve this form of scalability application to be developed very carefully. This approach requires significant effort from architectural and engineering team. In this case components of application should be independently deploy-able and should be scalable – horizontally and vertically. The famous example of this approach is EJB based solutions where EJBs can scale separately from web server.



Due to very nature of SaaS application customer class is very important. Customer may have various needs in terms of QoS and security. This challenge open one more dimension of scalability.

4. Customer Class Scalability: In this approach one can scale customer as per the required QoS and security needs.



Just to make picture clearer, all four dimensions of are applicable to binaries (code) and persistence layer (RDBMS; hierarchical data base – LDAP; File system – logs, file servers, multimedia repositories, etc).

No comments:

Post a Comment