CI/CD

Here is a comprehensive definition of the CI/CD concept, a fundamental pillar of modern DevOps culture, structured for your "Long Definition" field.

Complete definition of CI/CD

CI/CD is a software distribution method that relies on the automation of each stage of development. The acronym can be broken down into two inseparable parts:Continuous Integration (CI) and Continuous Delivery/Deployment (CD).

The goal is to enable developers to publish updates frequently, reliably, and without risky manual intervention.

1. CI: Continuous Integration

When a developer modifies the code, they "push" it to a shared repository (such as GitHub). CI then automatically triggers:

  • Build: Compilation of the code to check that there are no syntax errors.
  • Unit tests: Running automated tests to ensure that new changes do not break existing functionality.
  • Validation: Verification of code quality and compliance with security standards.

2. CD: Continuous Delivery/Deployment

Once the code has been validated by the CI phase, the CD phase takes over:

  • Continuous Delivery: The code is automatically prepared for deployment, but final human validation is required before it goes live.
  • Continuous Deployment: Every change that passes testing is immediately sent to production, without any manual intervention.

Why is this revolutionary?

Before CI/CD, updates were done in "big waves" every month, with lots of bugs. With CI/CD:

  1. Risk reduction: Errors are detected in minutes rather than weeks.
  2. Speed: New features reach users faster.
  3. Peace of mind: Friday night deployments are no longer a source of stress, as everything is automated and tested.

Technologies and tools

To set up a CI/CD pipeline, we generally use:

  • Pipeline tools: GitHub Actions, GitLab CI, Jenkins, or CircleCI.
  • Containerization: Docker (to ensure that the code runs the same way everywhere).
  • Orchestration: Kubernetes.