Staging environment
The staging environment is configured to be the same as the production environment. For example, the data setup should be similar in scope and size to production workloads. Use the staging environment to verify that code and infrastructure operate as expected. This environment is also the preferred choice for business use cases, such as previews or customer demonstrations.
Access
Assign permissions according to the principle of least privilege. Developers should have the same access to the staging environment as they do the production environment.
Build steps
None. The same artifacts that were used in the testing environment are reused in the staging environment.
Deployment steps
Automatically initiate deployment of the release
branch (Gitflow) or
the main
branch (Trunk or GitHub Flow) in the staging environment after
approval and deployment in the testing environment. The following are the deployment
steps in the staging environment:
-
Deploy the
release
branch (Gitflow) ormain
branch (Trunk or GitHub Flow) in the staging environment -
Pause for manual approval by designated personnel
-
Download published artifacts
-
Perform database versioning
-
Perform IaC deployment
-
(Optional) Perform integration testing
-
(Optional) Perform load testing
-
Obtain approval from the required development, QA, product, or business approvers
Expectations before moving to the production environment
-
A production-equivalent release has been deployed successfully to the staging environment
-
(Optional) Integration and load testing were successful