This is an exemplary method of a customer project, based on specific project requirements.
In software development, the staging process is a crucial step to ensure that changes to an application are smoothly transitioned into the production environment without undesired impacts. The goal of the staging process is to test, validate, and observe any installations and changes before their go-live. The process is applied to all releases and patches and encompasses a total of 28 working days until deployment to the production environment (go-live). The order of the stages must always be followed as each environment serves a specific purpose.
The following are brief explanations of the different environments used in the staging process: DEV, TEST, LAST, INT, prePROD, and PROD. It will elucidate the specific purposes and benefits of each environment and how they work together to ensure software quality and reliability.
- DEV Environment: The DEV environment is the initial development stage of an application. Here, developers work on new features, bug fixes, and other changes. It is an isolated environment where developers can work flexibly without impacting the functionality of other environments. This environment allows developers to test and debug a release, for example, before moving it to the next stage of the staging process.
- TEST Environment: The TEST environment is a replica of the production environment where extensive testing takes place. Here, developed features, bug fixes, and other changes are thoroughly tested to ensure they meet requirements and function correctly. Various types of tests are conducted, such as functional tests and smoke tests. The TEST environment helps identify and address potential issues early on before the software enters the live environment.
- Load Test Environment: The load test environment is a specialized environment where the software is tested under realistic load conditions. Performance tests are conducted here to ensure that the application operates efficiently and stably even under high load. These tests help identify bottlenecks and vulnerabilities and verify the scalability of the application.
- INT Environment: The INT environment, also known as the integration environment, is where different components or modules of an application are brought together and integrated. Interfaces and interactions between different parts of the application are tested here to ensure smooth functionality and proper communication.
- prePROD Environment: The prePROD environment, also referred to as the pre-production environment, is an exact replica of the production environment. Extensive tests are conducted here to ensure that the software functions flawlessly in a realistic environment. Usually, final tests are performed, such as user acceptance tests or customer tests, to ensure smooth operation of the application.
- PROD Environment: The PROD environment, also known as the production or live environment, is where the application is actually deployed and used by users. This is where the fully tested and deployed software runs. All changes that have successfully passed through the previous environments according to the staging process are deployed in this environment.
The PROD environment is extremely important as it reflects the real-world usage of the application. Performance, reliability, and security must be ensured here. As the PROD environment is critical to production, changes and updates are carefully monitored and managed to minimize downtime and disruptions. Regular maintenance is typically performed in the PROD environment to maintain application performance and security.
The staging process aims to minimize the risks and impacts of changes to an application before transitioning them to the PROD environment. Each environment plays a crucial role in verifying the quality and stability of the software. By progressing step by step through the different environments, errors can be detected and resolved early, ultimately leading to an improved user experience and higher customer satisfaction.
If you want to learn more about staging, especially using Kubernetes with multiple pre-production setups, check out our preivious article titled 'The Art of Staging and Keeping up with Updates'
Author: Tatjana Reither