суббота, 13 мая 2017 г.

8 + 2 Уровни зрелости непрерывной интеграции

Егор Бугаенко продолжает делиться своими знаниями не только в технической части, но и в сопутствующих успешным IT проектам областях.

Существует ряд компонентов, которыми должен обладать, качественная непрерывная интеграция
  1. Исходный код (Source Code). Здесь вы просто пишете исходный код на своих компьютерах и, возможно, где-то на сервере. Лучшее, что вы можете сделать здесь, это построить его вручную, скажем, каждый день. Это непрерывная интеграция? Ну, в какой-то мере, если вы не забудете регулярно компилировать и упаковывать все.
  2. Автоматизированная сборка (Automated Build). На этом уровне ваша сборка автоматизирована, что означает, что вы можете скомпилировать, протестировать и упаковать весь продукт с помощью одной команды в командной строке. Вы должны иметь возможность нажать одну кнопку и получить либо ошибку, либо успешную сборку.
  3. VCS (Version Control System). На этом уровне вы сохраняете исходный код в Git. Должна быть возможность мгновенно развернуть систему на новом компьютере из репозитория.
  4. Pull Requests. Каждое изменение в исходном коде должно быть отправлено с помощью запроса pull в репозиторий на GitHub (т.е. речь о дисциплине постоянных малых изменений). Опять же, никто не должен иметь возможности совершать что-либо непосредственно с главной веткой, кроме как через запросы forks и pull.
  5. Code review. Каждый запрос должен пройти обязательный просмотр до внесение кода в ветку. У вас должна быть своя политика проверки кода, которая объясняет, кто делает обзоры, что происходит, если автор не согласен с рецензентом и т.д. Но запрос на вытягивание может быть объединен, если он не был рассмотрен.
  6. Тесты (tests). На этом уровне ваш код покрывается модульными (unit) тестами (и интеграционными тестами), и каждое изменение приходит с новым тестом. Ваша автоматическая сборка запускает все тесты вместе и завершается ошибкой, если какой-либо из них не выполняется.
  7. Статический анализ (Static Analysis). Проверка качества кода без его запуска - вот что такое статический анализ. На этом уровне качество вашего кода проверяется автоматизированной сборкой. Если качество ниже порогового значения, сборка завершается с ошибкой.
  8. Предполетные сборки (Pre-Flight Builds). Эта идея объясняется в статье Егора: Смерть непрерывной интеграции (Continuous Integration is Dead).
  9. Моделирование производства (Production Simulation). Сборка выполняется в контейнере, который имитирует производственную среду и данные.
  10. Стресс-тесты (Stress tests). Тесты производительности и стресса автоматизированы и выполняются на каждой сборке.

Комментариев нет:

Отправить комментарий