CD + QA
Continuous Deployment (CD) and Quality Assurance (QA) are the natural continuation of our CI pipeline. The goal is to deliver new features to users quickly, automatically, and securely.
Continuous Deployment (CD) Pipeline
Once a new version of the application has been built, tested, and uploaded to the artifact registry, the CD pipeline deploys it to the different environments.
-
Deployment to Development Environment (
develop):- Each time a change is merged into the
developbranch, the pipeline automatically deploys the latest version to the development environment. - Developers use this environment for functional and integration testing.
- Each time a change is merged into the
-
Deployment to Testing/Staging Environment (
staging):- When a set of features is ready for validation, a release is created and deployed to the Staging environment.
- This deployment is generally a manual step, executed by a technical lead or the QA team.
- In this environment, the QA team performs:
- User Acceptance Testing (UAT): To verify that features meet business requirements.
- Regression Testing: To ensure that new changes have not affected existing functionality.
- Performance and Load Testing: Using tools such as JMeter or Gatling to simulate user load and measure system response.
-
Deployment to Production (
production):- Once the release has been validated in Staging, it is ready to be deployed to production.
- This deployment is a manual step that requires approval.
- We use deployment strategies such as Blue-Green or Canary to minimize risk and downtime.
- Blue-Green: The new version is deployed to an environment identical to production ("Green"). Once validated, traffic is redirected from the previous environment ("Blue") to the new one.
- Canary: The new version is deployed to a small subset of users. If no issues are observed, traffic is gradually increased until all users are on the new version.
Continuous Quality
Quality is not only a phase, but an ongoing process. In addition to automated testing, we encourage:
- Code Reviews (Pull Requests): As the first line of defense to ensure quality and share knowledge.
- Pair Programming: To solve complex problems and improve code quality from the start.
- Monitoring and Alerts: Once in production, we actively monitor performance and errors to detect issues proactively.