How Active Agenda server is best implemented depends on the hardware resources, technical expertise and operational requirements of your organization. This document offers some insight to help with those implementation decisions.
Active Agenda server functions as a conventional web server, utilizing a Linux, Apache, PHP, PostgreSQL software stack, and is compatible with most industry standard high-availability strategies. Active Agenda server can be run as a standalone server, or as a cluster with automatic fail-over, with standby servers that can also process read-only queries (active-active).
The diagram below shows a example setup that includes a primary server, and 1 standby server.
In this example setup the PostgreSQL database servers are separate from the Active Agenda server, however they can be on the same machine. In the event the primary server goes offline, the standby server would initiate an IP fail-over and promote the Hot-standby PostgreSQL server to master/primary. The roles of the 2 servers would now be reversed, before bringing the original primary back online it would first be demoted to now being the standby server.
Alternative fail-over mechanisms such as DNS Fail-over are compatible with Active Agenda server.
Load balancing & performance
Active Agenda is a write-heavy database application, making database responsiveness the key to high performance. A cluster of Active Agenda servers sharing the same database server will not provide meaningful performance improvement for most setups. This is one reasons why it is often preferred to have both the Active Agenda server, and the PostgreSQL server on the same physical machine.
Load balancing can be accomplished by:
- Using separate Active Agenda databases for different catchments/organizations. The databases can be on the same PostgreSQL server, but by separating the databases the contention for data locks is significantly reduced.
- Running reports standby or a data warehouse server.
PostgreSQL performance suggestions:
- Put data on RAID10 or SSD disk drives.
- Configure PostgreSQL according to the underlying hardware. The default PostgreSQL configuration is very conservative.
- Have enough RAM so that entire database(s) can fit entirely into memory. Active Agenda is compact, making this easily attainable on modern hardware. 8GB per 50 staff is recommended.
Active Agenda server requirements
- Ubuntu 18.04.1 LTS
- Apache 2 server
- PHP 7
- PostgreSQL 11