Infrastructure Design

3.1 High-Level Layout

The environment was built around three application servers and three database servers, with a dedicated HAProxy VM placed in front of the application tier.

A simplified view of the flow is shown below:

Users
  |
  v
HAProxy Load Balancer
  |
  +------------+------------+
  |            |            |
  v            v            v
App1         App2         App3
  |            |            |
  v            v            v
DB1          DB2          DB3

This design provides a clear separation between the access layer, the application layer, and the database layer. It also avoids relying on a shared filesystem for normal operation.

3.2 Why This Design Was Selected

This architecture provides several practical benefits:

  • Better availability through VM-level redundancy

  • Easier maintenance because services can be restarted independently

  • Better scalability because additional application nodes can be introduced later

  • Reduced risk of database and application coupling

  • More flexibility during recovery because Proxmox HA can recover application VMs automatically