There a several ways, a user can configure Sharepoint farm topology, for two primary reasons, i.e performance and availability.
The key to achieve both performance and availability is redundancy. By redundancy, i mean having identical server farms in order to swap between the farms either using network load balancing software or hardware such as a router or a switch box.
Here are some interesting topologies that one can implement for performance, availability and scalability.
a) Single Server farm: In this topology, you have everything under one box as explained in the diagram below: b) Two server farm: This is the most recommended approach in general situations
Server 1 : Web Server and Search server
Server 2 : A dedicated SQL Content database serverc) Four server farm : This topology brings in some redundancy to the table.
Servers 1 and 2 are webservers with a search server configured with any one web server
Servers 3 and 4 are Clustered or mirrored content SQL database servers for high availability d) Five Server Farm: This adds a middle tier layer.
Servers 1 and 2 are webservers
Server 3 : A dedicated search server
Servers 4 and 5 are Clustered or mirrored content SQL database servers for high availability
e) Three server farm: Choose the below mentioned topology when performance is more important than availability. If your focus is on availability as well, reduce the web server and add an additional SQL content database server as mentioned in the diagram below: Choose any of the above topology that best fits for your organizational need, scale/magnitude of your application, number of users and most importantly how critical is the availability of your sharepoint application for your business and end users.