I have an application that requires high availability. The app works as follows:
1) Clients authenticate with an App server that uses a SQL database. Only the server accesses the SQL db, not the clients. However, if the server can't see the DB, the clients can't function at all.
2) The App server connects to the DB, not using ODBC, but some internal mechanism. However, tech support says it supports accessing the SQL database HA via either Mirroring, AlwaysOn Availability Groups, and SQL Clustering.
3) There are 5 physical sites that all need to contact the app server. Each site can see every other site across L2 fiber connections (that occasionally fail.)
4) Licensing allows for there to be multiple App servers.
5) The vendor's recommended HA setup is 1 App server at each site. Each App server points to a SQL database. The DB can be onsite...