How do your business and product teams engage in innovation and experimentation quickly? By having the luxury of making changes fast while not worrying if some new feature will break or will not be successful. We can unlock this agility by eliminating potential points of waste in our development and delivery processes.
The goal of a good Continuous Integration / Continuous Delivery (CI/CD) process should be to reliably deploy ‘good’ ideas to production quickly (least amount of time possible between code/feature check-in and production deployment). If an idea is ‘good’ or not, can only be truly known once in production, therefore the need to try changes quickly.
Every CI/CD process contains these four high level phases – Source, Build, Test and Production. Continuous Integration covers the first two, while Continuous Delivery covers all the phases and creates a deployable artifact, albeit with a manual control gate before production. Continuous Deployment automates that final gate as well.
Here are some practical guidelines, best practices and learnings we have seen while trying to move our CI/CD processes to the next level. I have organized them under five categories, as follows.
Achieving a self-healing, fully automated, secure and quality focused CI/CD state requires a diligent approach. The patterns and practices listed in this article around advanced aspects within automated building, testing, deployment, monitoring and operations will help guide you on next steps.
Just as a popular meme goes - “Stay curious my friends” - I hope this gives you something to think about on your DevOps maturity journey.