Introduction to clustering
There are two ways to scale a system. One is to scale vertically, that is, by adding more hardware resources to a machine. If the memory requirement of the system increases, add more memory; if more processing is required, upgrade the machine to one using higher-end processors or providing a higher number of cores. Horizontal scaling is another way to scale a system to higher capacity. This means adding more machines when required to form a cluster of nodes. This cluster of nodes work in tandem to provide service. The nodes in the cluster may have applications performing the same role like a pool or they may perform a different role.