Setting up your environments
Every deployment is unique depending on IT resources and policies, the expected load on the components, and the division of responsibility between the administrator, the toolsmith, and the corporate IT department for maintaining the deployment.
At the bare minimum, a deployment consists of two environments:
- A production environment on which the users are working
- A test environment on which modifications, upgrades, or updates are tested before being performed on the production environment itself
Making untested changes directly in the production environment is not recommended since it may cause serious unwanted effects or render the environment unusable.
Each environment may contain one or more machines hosting the components depending on your environment's requirements. The following examples show environments containing multiple machines; however, this is not necessarily what would be recommended in your deployment.
More commonly, a deployment consists of three or four environments. You may have:
- A production environment
- A validation environment
- A test environment
In the test environment you experiment with modifications and perform trials of upgrades and updates to determine what is required for your production environment. This environment allows you to experiment without fear of breaking something since you can easily fix or replace the environment without affecting your users in the production environment.
Once you have documented the specific procedure for implementing the modification, upgrade, or update, you test it on a validation environment to confirm that the changes were applied successfully and functionality that worked previously still works (no regressions have occurred). Usually only administrators and toolsmiths have access to this environment.
Once the procedure is tested and approved, you might then hand it off to the IT department who will test on their own validation or staging environment before applying the changes to the production environment or you might apply the changes to production yourself depending on who is responsible for maintaining it.
So, each modification, upgrade, or update might follow this process:
- Experiment and document: You experiment with the changes on the test environment until you are satisfied with the results and you have documented a complete procedure for implementing the changes in your production environment.
- Test: You perform the procedure on the validation environment to test if the procedure is correct, the changes are applied correctly and no regressions occur.
- Validate: an IT specialist uses your procedure to test on their staging (or validation) environment to verify that the procedure is correct, the changes are applied successfully, and no regressions occur.
- Implement: you or the IT specialist follows the procedure to apply the changes to the production environment.