As we continue to test and build with RockRMS, as well as run it in production with our church, we need a number of different testing envrionments. This document is the guide for where our instances live, who is responsible for them, and the purpose of them exsiting.
This is our primary instance of Rock. It is the production server that our church builds off of and uses on a day to day basis. The web team is responsible for the uptime of the application, the solidity of the database, and the deployment of new code. IT is responsible for the uptime of the server and the backup of the database.
This is our secondary instance of Rock. It is a clone of the production server (size and power) and is used to verify and test new builds before they are rolled into production. The web team is responsible for the uptime of the application, the solidity of the database, and the deployment of new code. IT is responsible for the uptime of the server and the backup of the database.
Alpha is meant to be an open testing ground for new features of NewSpring + Spark. If a feature is destined to be shipped to our production envrionement, it must run through alpha for internal testing. The web team is responsible for the uptime of the application, the solidity of the database, and the deployment of new code. IT is responsible for the uptime of the server and the backup of the database. This branch only runs pre-alpha-release as the newest code from core.
Gauntlet is a temporary instance used for gauntlet registration since rock is not active yet. It is 100% stable builds from core. This will go away after launch
Stock is used for testing new updates from Spark, updates of NewSpring that are targeted to be merged into core, and as a benchmark tool for NewSprings custom fork. This can run any version of Rock as long as it doesn't have NewSpring specific code. It is also used to test 3rd party apps (like apollos) when they are targeted as community projects (not newspring specific projects). The web team is responsible for the uptime of the application, the solidity of the database, and the deployment of new code. IT is responsible for the uptime of the server and the backup of the database.
The canary server is a test flight server. It can run the latest code from Spark (develop branch) and is used to verify core features if the timeline from develop -> pre-alpha is too long to wait. The web team is responsible for the uptime of the application, the solidity of the database, and the deployment of new code. IT is responsible for the uptime of the server and the backup of the database.
Members of IT/Web will not have admin access to rock, gauntlet, or beta. This is to safeguard finanical data. Certian members of IT/Web (David, Ben, James, Daniel, Paul) will have server and db access to all of the instances. Stock and canary will be open to all of Web/IT and the Spark team both on a db level and an instance level. This allows close examination of code for testing.
All instances will be configured to run from GitHub with protected branches turned on. We will add in the required signoff from Frank + David + James for rock and gauntlet, Frank + David for beta, and the web team for alpha. Canary and stock will be signed off on by either James or David.
All production rock instances (rock and gauntlet) will be configured with NewRelic and pagerduty with scheduled members on call