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:
Server 1 : Web Server and Search server
Server 2 : A dedicated SQL Content database server
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
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
Source: Technet