Explain the concepts and related practices needed to ensure high availability for servers.
Examples: clustering, fault tolerance, load balancing