← Назад в словарь

CI/CD

CI/CD (Continuous Integration / Continuous Delivery) — непрерывная интеграция / непрерывная доставка

Суть в одном предложении

CI/CD — это процесс автоматической сборки, тестирования и доставки кода от коммита до продакшена.

Краткое определение

CI/CD — это практика DevOps, при которой код автоматически проверяется (CI) и доставляется в окружение (CD) через настроенный пайплайн.

Оригинал и перевод

  • Язык: английский
  • Оригинал: Continuous Integration / Continuous Delivery
  • Буквальный перевод: непрерывная интеграция / непрерывная доставка

Синонимы и варианты написания

  • CI pipeline
  • CD pipeline
  • Автодеплой
  • Deployment pipeline

Происхождение

Практика появилась в рамках Agile и DevOps для уменьшения количества ручных операций и ошибок при релизах.

Где используется

  • Backend и frontend проекты
  • Микросервисы
  • SaaS-платформы
  • Open-source проекты
  • CMS (WordPress, Bitrix, Laravel, Django)

Когда это важно

CI/CD становится критичным, когда:

  • релизы происходят часто
  • несколько разработчиков работают параллельно
  • нужен стабильный продакшен
  • требуется минимизация человеческого фактора

Подробное объяснение

CI/CD делится на два этапа:

1️⃣ CI — Continuous Integration

Каждый коммит запускает автоматический процесс:

  • Установка зависимостей
  • Линтер
  • Статический анализ
  • Unit-тесты
  • Сборка проекта

Пример шага CI (GitHub Actions):

name: CI
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install dependencies
        run: composer install --no-interaction
      - name: Run tests
        run: php artisan test

Если тесты падают — код не проходит дальше.


2️⃣ CD — Continuous Delivery / Deployment

После успешного CI:

  • Происходит деплой на сервер
  • Обновляются контейнеры
  • Перезапускается сервис
  • Очищается кеш

Пример деплоя по SSH:

- name: Deploy
  run: |
    ssh user@server "cd /var/www/project && git pull && systemctl reload php8.2-fpm"

Delivery vs Deployment

  • Continuous Delivery — деплой требует ручного подтверждения.
  • Continuous Deployment — деплой происходит автоматически.

Типичная структура пайплайна

  1. Checkout
  2. Install dependencies
  3. Lint
  4. Test
  5. Build
  6. Deploy
  7. Notify

Что не является CI/CD

  • Ручной git pull на сервере
  • Копирование файлов через FTP
  • Релизы «по пятницам руками»

Аналоги и связанные термины

  • DevOps
  • GitOps
  • Pipeline
  • Deployment
  • Artifact

Пример использования

«После push в main запускается CI/CD, проект автоматически тестируется и деплоится на VPS.»


Мини-FAQ

  • CI/CD нужен только крупным проектам? Нет. Даже WordPress или Laravel-проект выигрывает от автодеплоя.

  • Можно ли использовать CI без CD? Да. Можно только тестировать код без автодеплоя.


Смотри также

  • DevOps
  • GitOps
  • Deployment
  • Docker