General Design Approach for Achieving High Availability
A good overall approach for achieving high availability for any application can be accomplished by
Shoring up your “software” system stack from the center out (operating system, database, middleware, antivirus, and so on, in this order). This would include upgrading to the latest OS levels and other software component releases, and putting into place all the support service contracts for these (this turns out to be extremely important for being able to get that quick fix for a bug that happened to bring your system down).
Shoring up your hardware devices (redundant network cards, ECC memory, RAID disk arrays, disk mirroring, clustered servers, and so on). Be careful with the RAID levels since ...