There are considerable design considerations for designing redundancy into a SQL Server database system for high availability(HA).

The extent to which redundancy is built into a system will depend on : expertise, cost,resources, service level agreements (SLA)

General areas in considering the HA stack.Consider all these categories - ensuring every element is documented . One of the most resource intensive aspects of maintaining a high availability environment is the managing and monitoring of the system once it's designed and deployed