CI/CD за 5 минут: Простое руководство

CI/CD — подход к разработке программного обеспечения, позволяющий регулярно интегрировать новый код в существующий проект, автоматически собирать, тестировать и разворачивать его.

CI и CD: расшифровка аббревиатур

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

Непрерывная интеграция (CI)

В CI разработчики сливают код в общий репозиторий, после чего автоматически запускается сборка, валидация и тестирование. Это гарантирует успешную интеграцию нового кода без ошибок.

Непрерывная доставка (CD)

После успешной интеграции (CI) функциональность автоматически разворачивается на тестовые или продуктивные серверы. На этом этапе происходит доставка (Delivery) пользователям.

Параллельная обработка задач

CI/CD позволяет параллельно обрабатывать множество задач, обеспечивая стабильность даже при частом обновлении кода многими разработчиками.

Сравнение с ручной работой

До CI/CD все процессы (слияние кода, тестирование, развёртывание) выполнялись вручную. Это было медленнее, сложнее и дороже, чем автоматизированный подход. Релизы выпускались реже и были масштабнее.

Совместимость с Agile и Scrum

CI/CD хорошо сочетается с методологиями Scrum и Agile, позволяя быстро выпускать функциональность, получать обратную связь и оперативно реагировать на замечания пользователей.

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

Представьте ресторан, где каждый повар отвечает за часть блюда. Каждый добавляет свою часть после проверки совместимости с работой коллег (аналогия CI). Готовое блюдо сразу подаётся клиентам (аналогия CD).

Pipeline: конвейер кода

Pipeline — набор последовательно выполняемых этапов. Например, загрузка кода в ветку может запускать сборку, тестирование и развёртывание на сервере. Настройку Pipeline можно адаптировать под любые потребности.

Инструменты CI/CD

Популярные инструменты: Jenkins, GitLab CI/CD, Travis CI, CircleCI, TeamCity, GitHub Actions, Bamboo. Для CD часто используются Docker, Kubernetes, Ansible, Terraform и другие. Границы между CI и CD размыты.

Преимущества CI/CD

CI/CD сокращает время разработки и доставки ПО, повышает качество тестирования и добавляет автоматизацию.

Ручное тестирование

Даже при высокой автоматизации, ручное тестирование релизов остаётся важным.

Что будем искать? Например,программа