CI/CD (Continuous integration / Continuous delivery) — это методология разработки ПО. Она расшифровывается как постоянная интеграция и доставка. На деле это означает, что вы и ваша команда будете работать примерно по такой схеме:
- Разработка. Реализуем функционал и покрываем тестами. Под функционалом в этом пункте понимается одна маленькая функциональная единица, например, добавили кнопку, исправили баг, изменили формулу расчета рейтинга пользователя и так далее.
- Сборка и автоматическое тестирование. Инструмент для интеграции (Gitlab CI, Jenkins, TeamCity, Travis CI) собирает проект (для разных проектов это происходит по-разному) и запускает автоматическое тестирование (модульные и функциональные тесты).
- Ручное тестирование. Проект переходит на ручное тестирование тестировщикам. Они пытаются выявить баги, которые трудно проверить через автотесты.
- Создание релиза. Протестированная в прошлом шаге версия (она же теперь релиз-кандидат) становится на очередь для публикации на боевой (или иной, смотря что нужно для проекта) сервер. Релизу присваивается версия (например, 1.0.0).
- Развертывание (оно же деплой). Новая версия отправляется на боевой сервер. Все необходимые для этого команды и операции выполняются автоматически.
- Мониторинг работы и правки багов. Если программисты недопрограммировали, тестировщики недотестировали или UX/UI-спецы недопродумали и недорисовали что-то, то исправляем ошибки.
- Планирование. На этом этапе фронтендеры и бэкендеры смотрят в список задач и начинают над ними работать, другими словами мы возвращаемся к первому пункту и цикл начинается заново.
Для разработчика поменяется не очень много, если эта методология ранее не использовалась. Весь код системы также как и раньше находится в репозитории. Есть несколько веток, опять же их количество зависит от нужд проекта, в каждую из которых код переливается по мере готовности и статусу проверки. Обычно все выглядит приблизительно так: при получении новой задачи создается ветка от dev-ветки для её решения, а после готовности содержимое ветки вливается обратно в dev. Если все хорошо, то dev вольют в prod и ваш код отправиться прямиком к пользователям, а ветка для решения задачи удаляется.
CI/CD нужно внедрять для больших проектов и разросшихся команд разработки. Если разработчиков мало, то накладные расходы на тестирование и развертывание не очень большие и ими можно пренебречь. При большом количестве разработчиков суммарное время на развертывание и тестирование становится существенной тратой времени, которую и устранит CI/CD, взяв множество однотипных операций на себя. Плюсом к экономии времени для больших команд будет постепенное развертывание, которое сократит вероятность публикации серьезных ошибок на боевой сервер как это иногда бывает с большими релизами.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.