Application deployment architecture

Application architecture plays a crucial role in ensuring the high availability of an application. An application whose components are deployed on a single machine is not highly available. When the machine reboots, the application is not available to its users. Similarly, depending on a single instance of a resource can become a single point of failure from a high-availability point of view. Each component of an application should be designed so that it can be deployed on multiple machines, and redundancy should not be a bottleneck. Some software provides features related to high availability and is not dependent on host operating systems or other third-party tools. SQL server availability groups is an example of such features.