CI/CD Jargon
Words, acronyms, and definitions that are useful to know in the world of Continuous Integration and Delivery.
Blue-Green Deployments
Highly available deployment pattern where there are two copies of a service/production environment. Only one is live at a time, and the non-live environment is the one that's upgraded before it becomes live and the other goes to standby. Advantage is less down-time, if any, but disadvantage is increased infrastructure costs.
Canary Deployments
Deployment pattern where new changes are only rolled out for a subset of users for testing before finally rolling out to everyone else. Named after the English idiom 'canary in a coal mine'.
Continuous Delivery
(CD)
A state where your application is always ready to be deployed. A manual step is required to actually deploy the application.
Continuous Deployment
(CD)
The automation of building, testing, and deploying. If all tests pass, every new commit will push new code through the entire development pipeline to production with no manual intervention.
Continuous Integration
(CI)
Continuous Integration is a software development strategy that increases the speed of development while ensuring the quality of the code that teams deploy. Developers continually commit code in small increments (at least daily, or even several times a day), which is then automatically built and tested before it is merged with the shared repository.
Job
A job is an execution environment, powered by a VM or container, where the steps of CI are run.
Matrix Job
A matrix job is a special type of job that is run multiple times in parallel, but with varied parameters. For example, taking a job called 'run-tests' and running it three-times over, once for Linux, macOS, and Windows, would be a matrix job.
Workflow
A workflow defines which jobs, in which order, are run. It also determines if jobs run in parallel or sequentially.