Solr can be deployed in different architectures.
- Single Node Deployment
- Distributed Solr Deployment
- Replicated Solr Deployment
- Solrcloud (Sharded and replicated)
A Single Node deployment is probably the easiest deployment where all the components of Solr are installed in a single server instance. This is definitely not suitable for a production environment considering the amount of indexing involved and the lack of fault tolerance and high availability. However, in the development environment a single node solr is suitable.
In a distributed solr deployment, multiple shards are created where the data is split into multiple server instances. This greatly improves the speed of search but if a particular shard is down, then portion of the index data is not available for search. Therefore, for critical production environments, this architecture is not suitable.
In a replicated solr deployment, the index copy is replicated in multiple server instances. This provides high availability and faster search, however since the whole index is duplicated (replicated), it is not good for scaling. Therefore, both the distributed solr deployment and the replicated solr deployment although serving different purposes are now not a recommended deployment option for a mission critical solution.
A Solrcloud deployment combines the best of both sharding as well as replicating thereby enabling true High Availability and distributed search that is highly scalable. Additionally zookeeper is used to manage these different nodes in the solrcloud and does auto load balancing.
This is the best solution for a production environment.