In this blog post, we will discuss the best practices for CI/CD Applications. The Dos and Don'ts for CI/CD.
The following are some best practice dos and don’ts for CI/CD.
- Treat your infrastructure as code
- Use version control for your infrastructure code.
- Make use of bug tracking/ticketing systems.
- Have peers review changes before applying them.
- Establish infrastructure code patterns/designs.
- Test infrastructure changes like code changes.
- Put developers into integrated teams of no more than 12 self-sustaining members.
- Have all developers commit code to the main trunk frequently, with no long-running feature branches.
- Consistently adopt a build system such as Maven or Gradle across your organization and standardize builds.
- Have developers build unit tests toward 100% coverage of the code base.
- Ensure that unit tests are 70% of the overall testing in duration, number, and scope.
- Ensure that unit tests are up-to-date and not neglected. Unit test failures should be fixed, not bypassed.
- Treat your continuous delivery configuration as code.
- Establish role-based security controls (that is, who can do what and when).
- Monitor/track every resource possible.
- Alert on services, availability, and response times.
- Capture, learn, and improve.
- Share access with everyone on the team.
- Plan metrics and monitoring into the lifecycle.
- Keep and track standard metrics.
- Number of builds.
- Number of deployments.
- Average time for changes to reach production.
- Average time from first pipeline stage to each stage.
- Number of changes reaching production.
- Average build time.
- Use multiple distinct pipelines for each branch and team.
- Have long-running branches with large complicated merges.
- Have manual tests.
- Have manual approval processes, gates, code reviews, and security reviews.
Hope this guide gives you Summary of best practices for CI/CD Applications.
Let me know your thoughts in the comment section 👇 And if you haven't yet, make sure to follow me on below handles:
Like, share and follow me 🚀 for more content.