Staging Environment

Staging environment is the most crucial pre-release environment. It is where release-candidate code meets live data. This should be treated as a pre-release simulation. The staging environment should contain all code changes expected to be deployed to live, a current copy of the live data and an identical configuration taken from live. This serves as a boundary between the developer changes before propagating into the Live environment, also used to demo or showcase functionalities and fixes done during development which is accessible to the client. Unlike Developer Local, there will be three personas involve in this stage,  Arcadier, Expert Partners and Client.

From the Arcadier side, the code changes will be deployed only to staging once it has passed the initial regression testing from Test Server. Once on Staging Arcadier’s QA's will do another round of regression testing but now, it’s against actual data from the Live environment and with Live server settings. The only things varied in Staging to Live are payment details (Which should ideally be set to a Live Test account) and email address (which are hashed so email testing doesn’t affect live users). The most crucial part is when a bug is found at this stage depending on the severity and interconnected functionality involved, once a fix is applied, regression should restart from the Test Server. If only partial; testing is done on Staging the Live release carries a risk. It is recommended that all bugs require a complete redeploy and regression restart.

For Expert Partners its different, code changes will only be deployed once Expert Partners had done their own manual and automated testing with their work and an approval from the Client is required before Arcadier performed the release to Live. Expert Partners need to obtain this approval from their client. If an Expert Partner has created a dependant environment hosted off Arcadier, this too needs to be duplicated and run against staging. This Expert Partner Staging environment MUST exist for proper testing of Staging to be robust.

Lastly for Clients, they are the one who owns the project, the Staging environment is use so that they can check the completeness of work that have requested is checked before actually doing to Live. It is the final stage of Client verification before a live push.

Once all changes are identified and fulfilled without issues, a release to live will commence.