Great CICD Workflows
Written: June 5, 2024
What Is CICD?
CI/CD or Continuous Integration and Continuous Delivery is a set of best practices for releasing software. I have personally implemented these types of practices on nearly every project at every job. This article is for anyone who writes software, not just "ops" practitioners.
Continuous Integration
Continuous integration is the process of merging separate branches of code from different authors together regularly to avoid massive merge conflicts and debugging sessions that occur from stockpiling commits. These giant merges typically occur just before a release which is not the ideal time for this activity.
Continuous Delivery
Similarly, continuous delivery works to avoid a situation where code accumulates in version control without ever being deployed. While CI prevents issues from conflicting developer logic, CD prevents issues from conflicting deployment environments and untested upgrade procedures. There's a well-known book on the subject of the same name.
What Is A CICD Workflow?
A CI/CD workflow is a series of steps specific to your project's configuration that outlines when and how often to merge or deploy code, from which branches or artifacts, to which branches or target environments, and with whose approval. A CI/CD workflow does not need to be automated to be "CI/CD" as the continuity is more about the unbroken flow of developer work moving into production. Arguably, teams would have more success focusing on this aim first and opting for automation only when a portion of the process becomes stable and predictable (not just tedious).
Making Great CICD Workflows
Here are a few of the key considerations:
Version control system
Branching strategy
Permissions
Build complexity
Target environments
Team size
Application maturity
Delivery expectations
Stay Tuned!
That's all for now but I'll be sure to have more soon. My goal is to get into the details of each of the major considerations, some examples of basic and complex workflows, and some personal experience writing them.