How does the use of CI/CD make it easier to handle the loss or absence of key staff?
I'm working on a project that has no CI/CD. We have only one person who builds the code and deploys it to staging and production. In the past there have been discussions on implementing CI/CD, but to no avail.
Our one person has become sick. I want to use this as an opportunity to bring CI/CD up again. What would be the key points to show how CI/CD could ease the pain of staff losses or extended absences when the staff member is unreachable?
What you're referring to is not CI/CD* - it's automation of build & deployment procedure. Basically a Deployment Pipeline. The way it alleviates your problems is:
- You stop needing your Ops constantly. If Deployment Pipeline is done right in many situations it could work for years without the maintenance. This allows your Devs to build and your QA to deploy without the Ops team.
- Many configuration changes can be done by devs alone. Without the need to access the environments.
- Scripts automatically document the procedure. So if something happens to the Ops team, then either Devs or a newly hired Ops can figure out what's happening there and modify the procedure.
- Scripts are getting tested again and again. So eventually they do the job right all the time. As opposed to "our Ops is on vacation, so one of the Devs was deploying, but did it incorrectly and now the env is broken".
- Ideally environment installation/configuration is also automated. In which case creating new environments can be done by Devs/QA.
*CI/CD is also about:
- The actual CI - meaning integrating changes made by a team in a single VCS branch.
- The actual CD - meaning releasing changes frequently
These usually are much tougher to achieve.