Reference Architecture (Active-Passive Configuration)
Publisher: Psychz Networks, October 11,2023
Introduction
Purpose and Scope
The purpose of this document is to provide a comprehensive reference architecture for the implementation of a load-balanced deployment with an active-passive configuration. This architecture aims to ensure high availability and scalability for critical applications by distributing traffic across multiple clusters of database and application servers.
This document will cover the architectural design, configuration, and best practices for setting up the infrastructure, clusters, load balancers, and networking required for a robust active-passive load-balanced deployment. It will also provide guidance on high availability, security, performance optimization, and monitoring.
Key Components
There are two main components in the system viz Load Balancer and Cluster (Application, Database, Backup, ……..). We will discuss their roles and their importance in the system.
Load Balancer:
A load balancer is critical in a distributed system to ensure that incoming network traffic is efficiently and effectively distributed across multiple servers or server clusters. This helps in optimizing performance, increasing availability, and enhancing the overall reliability of the system. Below, I'll explain the role of a load balancer and mention some popular load balancers available in the market.
Traffic Distribution
The primary role of a load balancer is to evenly distribute incoming network traffic (requests) across a pool of backend servers.
Scalability
Load balancers enable horizontal scalability by allowing you to add or remove servers from the pool without affecting the overall system.
High Availability
In active-passive configurations, a load balancer can automatically redirect traffic to an active cluster of servers while seamlessly switching to a passive cluster in case of server failures.
Security
Load balancers can also act as a security barrier by hiding the internal structure of your server infrastructure.
Popular Load Balancers:
Nginx
Nginx is a widely used open-source web server and reverse proxy server. It is known for its high performance and low resource usage. Nginx can be configured as a load balancer to distribute HTTP, HTTPS, TCP, and UDP traffic.
HAProxy
HAProxy is another open-source software that serves as a high-performance TCP/HTTP load balancer and proxy. It is known for its flexibility and support for advanced load balancing algorithms.
Clusters
In an Active-Passive cluster configuration, you have a group of two or more servers or nodes where one server is designated as the active node, responsible for handling incoming traffic and processing requests, while the others are in a passive state, essentially on standby.
Infrastructure Requirements:
Hardware components needed to build and maintain an Active-Passive load-balanced deployment typically includes
Servers
A variety of 5th, 4th, and 3rd Gen Intel Xeon Scalable processors, Intel Xeon processor, Intel Atom processors, Intel Data Center GPU Flex Series, and Intel Arc Series GPUs.
Storage
Storage drives including NVMe SSDs and enterprise-grade HDDs are available. Storage infrastructure are needed for databases, application code, and logs. Consider any redundancy or backup requirements.
Network Connectivity
Networking hardware like switches and routers required to establish connectivity between servers and the external network. Ensure that your networking equipment can handle the anticipated network traffic.
Connectivity
ISPs like Comcast, Telia TiNet, China Telecom, GTT, and Hurricane Electric connect to our edge layer routers, ensuring optimized traffic delivery.
Edge Routers
These routers serve as the first line of defense, analyzing incoming traffic and scrubbing out potential threats, thus allowing only clean and validated traffic.
Firewall & POPs
Clean traffic is directed to specific Points of Presence (POPs) and is further scrutinized by an edge layer firewall at each POP. This firewall filters traffic based on security policies.
Software Requirements:
List the software components that need to be installed on the servers and network infrastructure. This may include:
Operating Systems
We provide options for Red Hat Enterprise Linux (RHEL)/CentOS/AlmaLinux, Debian, FreeBSD, and Ubuntu Linux. Windows Standard and DataCenter editions (2012, 2016, 2019) are also available. Ensure that the selected OS versions are compatible with the software stack you plan to deploy.
Load Balancing Software
Load balancing software distributes network traffic across multiple servers to optimize resource utilization, ensure high availability, and enhance system performance. Software load balancers like Nginx or HAProxy
Database Software
MySQL, PostgreSQL and the clustering or replication technology (e.g., Galera Cluster for MySQL). Include versions and configurations.
Server and Infrastructure Monitoring
Server and infrastructure monitoring tools continuously assess and report on the health, performance, and availability of servers, network devices, and infrastructure components to proactively detect and resolve issues.
Nagios: An open-source monitoring system for network and infrastructure monitoring.
Zabbix: A free and open-source server and network monitoring tool.
Prometheus: An open-source monitoring and alerting toolkit designed for reliability and scalability.
Conlusion
Active-Passive configuration reference architecture serves as a robust blueprint for achieving high availability and reliability in mission-critical systems. By seamlessly managing failover, maintaining data synchronization, and leveraging standby resources, it ensures uninterrupted service delivery while minimizing downtime. This architecture stands as a testament to the commitment to providing continuous, resilient, and scalable solutions, thereby safeguarding the integrity and availability of vital services.