Files
AVEX-Systems-Architecture/HA_ARCHITECTURE.md

274 lines
5.2 KiB
Markdown

# High Availability System Architecture
## Overview
This document describes the architecture for the **high availability deployment of the application system**.
The system is designed to maintain service availability during infrastructure or network failures by using **cloud infrastructure as the primary environment** and **on-premises infrastructure as a failover system**.
The design prioritizes:
* minimal downtime
* automatic failover during internet outages
* data replication between cloud and local systems
* disaster recovery backups through CBM Technology
The architecture combines **cloud reliability with local failover capability** to maintain service continuity.
---
# Architecture Overview
```mermaid
flowchart TB
USER[Users]
INT[Internet]
CLOUD[Cloud Application Server]
CLOUDDB[(Primary Database)]
ONPREM[On Prem Application Server]
ONDB[(Replica Database)]
BACKUP[CBM Backup System]
USER --> INT
INT --> CLOUD
CLOUD --> CLOUDDB
CLOUDDB --> ONDB
ONDB --> ONPREM
CLOUD --> BACKUP
CLOUDDB --> BACKUP
```
---
# System Access
Users normally access the system through the internet using the **primary cloud deployment**.
Example:
```
https://app.avexmro.com
```
Traffic flow during normal operation:
```mermaid
flowchart LR
USER[User Device]
INT[Internet]
APP[Cloud Application Server]
DB[(Primary Database)]
USER --> INT
INT --> APP
APP --> DB
```
---
# Failover Operation
If the office internet connection fails, internal users are redirected to the **local on-premises server**.
```mermaid
flowchart LR
USER[User Device]
LAN[Company Network]
ONAPP[On Prem Application Server]
ONDB[(Local Database)]
USER --> LAN
LAN --> ONAPP
ONAPP --> ONDB
```
This allows employees to continue using the system locally until internet connectivity is restored.
---
# Infrastructure Components
## Cloud Application Server
The primary system runs in the **cloud environment**.
Responsibilities include:
* hosting the web application
* processing user requests
* managing application services
* connecting to the primary database
The cloud server is the **default production environment**.
---
## On-Prem Application Server
The on-prem server provides **local failover capability**.
Responsibilities include:
* maintaining a replica of the application
* providing access during internet outages
* hosting the replicated database
This server remains **standby during normal operations**.
---
## Primary Database
The primary database resides in the cloud environment and stores all operational data.
Examples include:
* inventory records
* user data
* configuration settings
* system transactions
The cloud database acts as the **authoritative source of data**.
---
## Replica Database
A replica database runs on the on-prem server.
The replica receives continuous updates from the cloud database to ensure the local system stays synchronized.
---
# Database Replication
Database replication ensures the on-prem system has an up-to-date copy of the cloud database.
```mermaid
flowchart LR
CLOUDDB[(Cloud Primary Database)]
ONDB[(On Prem Replica Database)]
CLOUDDB --> ONDB
```
Normal operation:
```
Cloud → On Prem replication
```
Failover mode:
```
On Prem database promoted to primary
Replication temporarily paused
```
Recovery mode:
```
On Prem → Cloud resynchronization
Cloud resumes primary role
```
---
# Backup System
Backups are managed by CBM Technology.
```mermaid
flowchart LR
APP[Cloud Application Server]
DB[(Primary Database)]
CBM[CBM Backup Storage]
APP --> CBM
DB --> CBM
```
Backups typically include:
* database backups
* server snapshots
* file storage backups
---
# Backup Schedule
Typical configuration:
| Backup Type | Frequency |
| ------------------- | --------------------- |
| Database Backup | Daily |
| Server Snapshot | Daily |
| File Storage Backup | Daily |
| Retention Period | Defined by CBM policy |
Backups are stored **offsite** to protect against data loss.
---
# Disaster Recovery
If the primary cloud system fails:
1. The on-prem server can be promoted to the primary system.
2. Internal users connect to the local server.
3. Operations continue locally until the cloud environment is restored.
If both environments fail or data corruption occurs:
1. CBM Technology restores the most recent backup.
2. The system infrastructure is rebuilt if required.
3. Services are returned to normal operation.
---
# Expected System Behavior
| Event | Result |
| ---------------------- | ---------------------------------------- |
| Cloud server failure | Failover to on-prem server |
| Office internet outage | Internal users connect to on-prem server |
| Local server failure | Cloud system remains available |
| Database corruption | Restore from CBM backup |
| Company power outage | System temporarily unavailable |
---
# Potential Future Improvements
Additional improvements may include:
* cloud load balancing
* multiple application servers
* automated failover monitoring
* geographic redundancy
* network redundancy inside the office
These improvements would further increase system reliability and reduce recovery times.