Что такое Continuous Integration

Что такое Continuous Integration

Непрерывная интеграция, CI, — концепция, которая направлена на повышение продуктивности IT-команд и сокращению затрат на поддержку систем.

Согласно CI, изменения в код должны поступать небольшими пакетами. Каждое небольшое изменение тестируется, на основе обратно связи разработчик сразу должен устранять ошибки и конфликты.

Всякое изменение в коде всегда должно быть работоспособно.

Чек-лист — реализована ли непрерывная интеграция (CI) на вашем проекте?

  • Весь код и информация, необходимые для создания и конфигурирования приложений и систем находятся в репозитории.
  • Процесс сборки автоматизирован. Если сборка происходит вручную даже в части процессов, это скорее всего приведёт к ошибкам, а часть шагов останется незадокументированной.
  • Написанием тестов к коду занимается сам разработчик.
  • Тесты автоматизированы.
  • Тесты запускаются при каждом изменении. Вы получаете быструю обратную связь.
  • Вы сразу чините неработающие сборки. Цель CI — чтобы у вас всегда была работающая сборка, на основе которой мог разрабатывать любой член команды.
  • Тесты занимают в пределах 10 минут — рекомендуемая DORA длительность тестирования (см. раздел «Тестирование»). Если тестирование занимает больше, вам нужно улучшить его эффективность: подключить больше ресурсов, чтобы запараллелить тесты, или разделить долгие тесты на отдельные сборки, используя пайплайны.
  • Бранчи вливаются в транк не реже одного раза в день (см. раздел Trunk Based Development).

Если хотя бы по одному из пунктов вы не можете ответить «да», у вас на проекте нет CI. Прокачайте это направление.

На что обратить внимание?

1. Коммиты запускают процесс сборки автоматически.

Метрика:

Процент коммитов от общего количества коммитов, которые приводят к новым сборкам без ручного вмешательства.

2.Коммиты запускают серию автотестов.

Метрика:

Процент коммитов от общего количества коммитов, после которых код проверен автотестами без ручного вмешательства.

3. Автоматические сборки и автотесты выполняются ежедневно.

Метрика:

Процент сборок и тестов от общего количества автоматических сборок и процент автотестов, успешно исполняемых ежедневно.

4. Действующие сборки доступны тестировщикам для исследовательского тестирования.

Метрика:

Имеют ли тестировщики доступ ко всем сборкам, и если нет — процент недоступных.

5. Разработчики получают обратную связь от входных и эксплуатационных тестов каждый день.

Метрика:

Доступность ОС для разработчиков; процент тестов, которые дают обратную связь.

6. Нерабочие сборки исправляются сразу же.

Метрика:

Время на исправление нерабочей сборки с помощью отката до предыдущей версии или исправления багов.

QR-коды на источники

Подробнее о Continuous Integration

https://cloud.google.com/architecture/devops/devops-tech-continuous-integration

https://martinfowler.com/articles/continuousIntegration.html

Другие статьи

Смотреть все

Архитектура приложений: как рисовать схемы

Читать

Что такое техническая поддержка и почему она должна быть не на разработчике

Читать

Как архитектору и разработчику найти общий язык схематизации

Читать

Ваша заявка отправлена успешно

Отправить снова

Базовый курс управления и построения IT-контура компании. Поток 05.09.23

Контакты

С вами свяжется модератор курса Алексей Клоков