Atlassian Confluence Witness Server
A Docker container that provides a witness server for a high-availability (HA) Confluence cluster involving a Hot "normal" server (aka R/W Confluence) and a Hot Read-Only server (aka R/O Confluence).
In this HA cluster, both servers are hot, and both have their own DB (the DBs and home-dirs are sync'd nightly).
The idea is for the R/W server to take 100% of the load unless it is down (due to failure or being upgraded).
If the R/W is down, the R/O should take 100% of the load, but should be configured to prevent users from writing new content (editing, commenting, blogging, etc.)
Such a cluster provides a nice supplement to Confluence "Data Center" because it can continue to provide partial availability during a Data Center upgrade.
Data Center is true clustered environment that provides high-available and high-performance (at a commensurately high price). Because all nodes in a DC cluster use the same DB, one thing Data Center can't yet handle is a rolling upgrade. Instead, all nodes must be brought down for an upgrade.
A R/W-R/O cluster can be leveraged to provide partial, read-only service during a DC cluster upgrade and failover in the case the R/W DB goes down.
The witness Server is designed to be run on each Confluence host (R/W and R/O) behind an AWS ELB. An AWS ELB is HA (good), but not very configurable (bad). The type of routing needed for this HA cluster is not achievable w/out resorting to a witness (at least we haven't been able to figure out an alternative).
An AWS ELB uses the witness output to direct traffic to either the R/W Confluence or the R/O Confluence based on the state of R/W Confluence.
Provision a Confluence Host
Container is run on both the R/W Host and the R/O Host and is
provisioned via the <nordstrom stash>/OPSETS/confluence-stack/src/load.py pipeline script