Large-scale strategies
In a perfect world, we could assume that our software is developed perfectly and when we deliver it to our production environment, it works as intended. The applications we deliver might consist of multiple services developed by different teams. Although microservices should be de-coupled and APIs follow a clear versioning scheme, we want to test the functionality and performance of the whole system before putting it into production.
Traditionally, such tests have been realized using multiple stages. The most commonly used scheme for achieving this is using a development, quality assurance, and production environment. In the real world, there are various concepts for stages but regardless of the specifics, these concepts should be carefully planned and thought out.
In this section, we will take a look at the different stages and their purposes. We will also take a look at the different strategies for deploying applications to these stages.