Environments

Environment types

Development

Usually done locally, but sometimes also an extra environment within the cloud, this environment is where a developer works and does on-the-fly testing. This environment may be connected to a CI/CD pipeline.

Test

Within this environment all new features and bugfixes are merged. The test environment is used for internal testing and is not meant for external use. Test environments must therefore also not be publicly accessible. It is also possible to use a test environment for automated (end-to-end) testing, although it is preferred to create a containerized environment that can be run from a CI pipeline. In case this is not possible, for example because of a heavy usage of cloud resources, a separate test environment can be used.

All releases to the test environment are done automatically from a CI/CD pipeline.

Acceptance

The project team can use this environment to test new releases. This environment is usually publicly accessible and therefore security policies must be in place.

All releases to the acceptance environment are done automatically from a CI/CD pipeline.

Production

The production environment is where end-users can use the product. This environment is usually publicly accessible and therefore security policies must be in place.

All releases to the production environment are done automatically from a CI/CD pipeline.

Data

It is not allowed to have production data outside of the production environment, unless sensitive and personal data have been removed properly. However, the use of specific test data is encouraged instead.

It is allowed to have basic personal data of project team members within the test and acceptance environments because we encourage the use of a single identity in our work.

More information regarding the use of data within project environment can be found in the privacy policy.

Multiple instances

It is possible that there are multiple instances of the same environment type.

Example: a demo environment separate from the production environment is needed. We can create a second instance, based on the production environment for this demo environment.

However, both instances in this case must not deviate in versions too much. As a rule we do not deploy a new version if all instances are not up-to-date with the current release. It is however allowed to deviate in resource allocation between both instances.

Example: two instances of the production environment are needed, named A and B respectively. Instances A is running version 1.0.0 of the software, whereas instance B is running version 1.1.0. Then, it is not allowed to update instance B until A is upgraded to version 1.1.0.

Example: the demo environment uses less computing power than the production environment because requirements are not equal to the production environment.