Choosing an architecture for HA & DR requirements
This section covers the following topics:
Understanding your Business Continuity Requirements
The ability of a business to resist the downtime and to continue its functioning and operations normally with zero or minimum interruption is known as business continuity. The main goal is to provide zero downtime and 100% uptime. It also considers how to keep the business as a whole operating.
To achieve business continuity, a collection of services of the system environment is needed which includes the software, hardware, and documentation of relevant procedures, its implementation, and regular practice. The business continuity solution must address the data, the operational environment, the applications, the application-hosting environment, and the end-user interface. All must be available to deliver a good, complete business continuity solution.
Business continuity includes High Availability (HA) and Disaster Recovery (DR). HA focuses on eliminating Single Point of Failure (SPoF) by providing a fully automated failover to a backup system. DR preserves the continuity of service after a disruptive event such as a fire or earthquake. The purpose of DR is to restore access to technological assets like data and applications. It aims to restore as much as possible in the minimum amount of time.
Understanding Scalability requirements
Scalability simply refers to the ability of an application or a system to handle a huge volume of
workload or expand in response to an increased demand for database access, processing, networking, or
other system resources. A scalable system is one that can handle increasing numbers of requests without
adversely affecting response time and throughput. The web application is said to be scalable if by
adding more hardware resources the application can linearly take more requests than before.
There are two ways of achieving this:
The growth of computational power within one operating environment is called vertical scaling. Vertical scaling refers to adding more computing resources (CPU/RAM/DISK) to your server as on-demand. One of the most common examples of Virtual Scaling is to buy expensive hardware and use it as a Virtual Machine hypervisor (VMWare ESX). However, even after using virtualization, whenever an improved performance is targeted, the risk for downtimes with it is much higher than using horizontal scaling.
Scaling horizontally refers to adding more physical machines to your server or database. It is about adding more nodes in the cluster, reducing the responsibilities of each member node, and providing additional end-points for client connections. Organizations prefer to scale horizontally to increase I/O concurrency and reduce the load on existing nodes.