The concept of having a multistage environment is a very important one. Obviously, one should not perform code and infrastructure changes to a live system without testing things out first. To allow for proper testing of changes to code and infrastructure, separate systems need to be provided; those systems are typically named development, test, staging, and production. This is accurately referred to as a multistage environment.
For the purpose of this book and its readers, we will be focusing on a three tier multistage environment that includes development, staging, and production. Each tier or environment that exists within a multistage environment is referred to as a stack in OpsWorks.