Traditional processes and project management approaches rely on gates between stages. Gates have served great purpose but they hinder the flow and frequently decorated to be special, ceremonial, and impressive.
To improve the flow guardrails are useful because it teaches about core principles of what we want to achieve. It is like a actual barrier when hit (and actually hit)
Analogy with road:
Gates sits right across a road to meter and control the progress. One cannot cross without permission. Leads to waiting, traffic jams. Guardrails along a cliffside provides safety, often have reflectors on them. Runs alongside the road, not across it. Given the variability among apps, architectures, technology stacks, businesses and industries some work needs to be done where to put guardrails (cliffside turn) and where not to put (plain desert)
Types of CI/CD Guardrails:
Path Markers: Provide direction and clear delineation of smoothest road towards successful change delivery.
Problem Solvers: Serves as safety points that ensure that if you loose control then worst will happen.
Examples of CI/CD Path Markers:
– If your changes are ready to be part of a batch progressing toward PRODUCTION, put them in this place.
– If you do not put your changes in this place, they will never become part of a batch.
– This is what the CI system will do with your change.
– This is how you identify the post-CI artifact that includes your change.
Examples of CI/CD Problem Stoppers:
– Code scans or other quality inspections during the CI process
– Validating that batches of changes work before creating a deployment artifact for them
– Verifying the checksums of deployment artifacts before deploying them
– Actively refreshing environments to make sure they are representative of PRODUCTION
if people are frequently hitting a guardrail, the proper solution is to re-engineer the road so that the frequency goes down or, ideally, the guardrail is simply no longer needed. So, it is actually better to look at Problem Stoppers as expensive necessities.
Reference and Excerpts from:CI/CD for Databases by Liquibase