Horizontal expansion
Elasticsearch is a highly scalable search and analytics platform. We can scale it both horizontally and vertically. We discussed how to tune a single node in the Preparing a single Elasticsearch node section earlier in this chapter and we would like to focus on horizontal scaling now; how to handle multiple nodes in the same cluster, what roles should they have, and how to tune the configuration to have a highly reliable, available, and fault tolerant cluster.
You can imagine vertical scaling like building a sky scrapper – we have limited space available and we need to go as high as we can. Of course, that is expensive and requires a lot of engineering done right. On the other hand, we have horizontal scaling, which is like having many houses in a residential area. Instead of investing into hardware and having powerful machines, we choose to have multiple machines and our data split between them. Horizontal scaling gives us virtually unlimited scaling possibilities...