Release gates give you more control over the start and completion of the deployment pipeline. They're often set up as pre-deployment and post-deployment conditions.
Think of downtime of a database server or an update of an API. It takes much time and effort, and the only thing needed is a signal if the release can continue.
You can create a mechanism where people press a button on a form when the release can't advance.
When the release starts, it checks the state of the gate by calling an API. If the "gate" is open, we can continue. Otherwise, we'll stop the release.
By using scripts and APIs, you can create your release gates instead of manual approval. Or at least extending your manual approval.
Approvals and gates give you more control over the start and completion of the deployment pipeline.
Whereas, a quality gate is the best way to enforce a quality policy in your organization. It's there to answer one question: can I deliver my application to production or not?
A quality gate is located before a stage that is dependent on the outcome of a previous stage. A quality gate was typically something that a QA department monitored in the past. They had several documents or guidelines, and they verified if the software was of a good enough quality to move on to the next stage.
We need to reconsider the notion of quality gates and see how we can automate these checks as part of our release pipeline
Many quality gates can be considered.
- No new blocker issues.
- Code coverage on new code greater than 80%.
- No license violations.
- No vulnerabilities in dependencies.
- No further technical debt was introduced.
- Is the performance not affected after a new release?
- Compliance checks
- Are there work items linked to the release?
- Is the release started by someone else as the one who commits the code?
Defining quality gates improves the release process, and you should always consider adding them.
Comments
Post a Comment