CI (Continuous Integration) - непрерывная интеграция. Это когда разработчики каждый день (или даже по несколько раз в день) заливают свой код в общий репозиторий, и система автоматически проверяет: не сломал ли новый код то, что уже работало. Запускаются тесты, проверки стиля кода и тд.
CD (Continuous Delivery/Deployment) - непрерывная доставка/развертывание. Это следующий шаг после CI. Когда код прошел все проверки, система автоматически деплоит его на сервер (или готовит к деплою).
Простой пример:
Раньше (без CI/CD): программист написал код, через неделю залил его в общий проект, оказалось что он конфликтует с кодом коллеги, потом еще неделю разбирались, потом вручную заливали на сервер, что то сломалось, откатывали обратно. Хаос.
Теперь (с CI/CD): программист написал кусок кода, нажал кнопку "отправить". Система автоматом прогнала тесты, проверила что ничего не сломалось, и сама залила код на боевой сервер. Все за 10 минут без участия человека.
Инструменты: GitLab CI, Jenkins, GitHub Actions, CircleCI.
Огромное спасибо! Наконец то понятное объяснение без воды.