Термин · Глоссарий B2B-ПО

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

Непрерывная интеграция (CI) – практика разработки ПО, при которой каждый коммит разработчика автоматически запускает сборку и тестирование кода. CI обеспечивает раннее обнаружение ошибок интеграции, сокращает цикл обратной связи и является основой DevOps-культуры и CI/CD пайплайнов.

Буква «Н» В категориях: 3 Платформ: 6+

Введение

Непрерывная интеграция (Continuous Integration, CI) – практика разработки программного обеспечения, при которой члены команды регулярно (несколько раз в день) интегрируют свои изменения в общую кодовую базу, а каждая интеграция автоматически верифицируется посредством сборки и запуска автоматических тестов. Цель – выявлять конфликты интеграции и дефекты максимально рано, пока их исправление обходится дёшево.

Мартин Фаулер (Martin Fowler), один из популяризаторов CI, описывает его как «практику, при которой каждый член команды интегрирует свою работу с основной ветвью ежедневно. Каждая интеграция верифицируется автоматической сборкой, включающей тесты, для скорейшего выявления ошибок интеграции».

История и контекст

Концепция CI была сформулирована в рамках методологии Extreme Programming (XP), разработанной Кентом Беком (Kent Beck) в конце 1990-х годов. Грэди Буч (Grady Booch) упоминал идею ежедневных сборок ещё в 1991 году. Первая CI-система CruiseControl была выпущена командой ThoughtWorks в 2001 году с открытым исходным кодом.

Jenkins (форк Hudson, 2011) стал самой популярной CI-системой с открытым кодом, набрав миллионы инсталляций. Travis CI (2011) принёс CI как сервис для GitHub-репозиториев. Появление GitLab CI/CD (2015) и GitHub Actions (2019) интегрировало CI непосредственно в платформы управления кодом. Согласно State of DevOps Report, команды с развитыми CI-практиками деплоят код в 208 раз чаще и восстанавливаются от инцидентов в 2604 раза быстрее.

Как это работает

Типичный CI-пайплайн включает следующие шаги:

  1. Коммит и push: Разработчик отправляет изменения в систему контроля версий (Git).
  2. Тригер CI: Webhook уведомляет CI-сервер (Jenkins, GitLab CI, GitHub Actions) о новом коммите.
  3. Получение кода: CI-агент клонирует репозиторий в чистую среду.
  4. Сборка (Build): Код компилируется или транспилируется; проверяются зависимости.
  5. Статический анализ (Linting/SAST): Инструменты SonarQube, ESLint, Checkmarx проверяют код на качество и уязвимости без запуска.
  6. Автоматические тесты: Запускаются юнит-тесты, интеграционные тесты; формируется отчёт о покрытии.
  7. Публикация артефактов: Успешно собранные пакеты публикуются в artifact registry (Nexus, JFrog Artifactory).
  8. Уведомление команды: При успехе или ошибке сборки разработчик и команда получают уведомление.

Где применяется

CI является стандартной практикой в современной разработке ПО:

  • Веб-разработка: Фронтенд и бэкенд приложения с частыми релизами; CI обеспечивает качество при высокой частоте изменений.
  • Мобильные приложения: Bitrise, Fastlane автоматизируют сборку iOS/Android при каждом коммите с запуском UI-тестов.
  • Микросервисные архитектуры: Каждый микросервис имеет собственный CI-пайплайн; CI обнаруживает несовместимости API между сервисами.
  • Data Engineering: CI-пайплайны для ETL-кода, дата-трансформаций и ML-моделей.
  • Встроенное ПО и IoT: Кросс-компиляция и тестирование firmware для устройств с ограниченными ресурсами.

Связь с другими понятиями

CI является первой частью пайплайна CI/CD (Continuous Integration/Continuous Delivery): после прохождения CI-шагов код автоматически доставляется или деплоится в тестовые и продуктовые среды. DevOps как культура и практика строится на CI как технической основе быстрой обратной связи.

Системы контроля версий (Git, CVS, Subversion) являются обязательным предусловием CI. Непрерывная доставка (CD) расширяет CI до автоматической доставки в production. Непрерывная интеграция также тесно связана с практиками Test-Driven Development (TDD) и Infrastructure as Code (IaC), обеспечивающими автоматизируемость и воспроизводимость сборочных процессов.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Непрерывная интеграция (CI)».

Платформы класса «Непрерывная интеграция (CI)»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

NC

NOVA Container Platform

ИТ-инфраструктура
NOVA Container Platform от компании Orion soft — российский программный продукт из реестра отечественного ПО,...
Цена по запросу
Подробнее →
GI

GitFlic

ИТ-инфраструктура
GitFlic от компании ООО «РеСолют» (Группа Астра) — российский программный продукт из реестра отечественного ПО...
Цена по запросу
★ 4.8
Подробнее →
Express 42 Platform. Платформа для реализации DevOps практик (Инфраструктурный оркестратор на основе Kubernete...
Цена по запросу
★ 4.8
Подробнее →
ПрограмБанк.БизнесАнализ

ПрограмБанк.БизнесАнализ

Управление предприятием
ПрограмБанк.БизнесАнализ — российская BI-платформа в архитектуре хранилища данных для финансовых организаций....
Цена по запросу
★ 4.7
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Непрерывная интеграция (CI)».

Где применяется

Отрасли, в которых «Непрерывная интеграция (CI)» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

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

В чём разница между CI и CD?

CI – автоматическая сборка и тестирование при каждом коммите. CD (Continuous Delivery/Deployment) – автоматическая доставка верифицированного кода в staging или production среды. CI является предусловием для CD.

Как часто нужно делать коммиты при CI?

Канонически – не реже раза в день на основную ветку. Частые маленькие коммиты снижают риск конфликтов интеграции и ускоряют обнаружение ошибок по сравнению с редкими крупными слияниями.

Какие инструменты CI наиболее популярны?

Jenkins (самый широко используемый с открытым кодом), GitLab CI/CD, GitHub Actions, CircleCI, TeamCity, Bamboo. В России также применяется JetBrains TeamCity и собственные решения на базе Jenkins.

Нужен ли CI небольшой команде из 2-3 разработчиков?

Да – GitHub Actions и GitLab CI требуют минимальных усилий для настройки и предоставляются бесплатно для open-source и небольших команд. Автоматические тесты ценны при любом размере команды.

Что значит «сломанная сборка» в CI?

Сломанная сборка – ситуация, когда CI-пайплайн завершился с ошибкой (не скомпилировался код или упали тесты). В CI-культуре исправление сломанной сборки является приоритетом номер один для команды.

Как CI помогает при работе нескольких команд над одним проектом?

CI автоматически выявляет конфликты интеграции между ветками разных команд. При использовании feature branch workflow каждая ветка тестируется изолированно перед слиянием в основную ветку.