Прежде всего разберем что такое CI\CD в принципе и почему эта технология разработки стала популярной в 1С.
CI — Continuous Integration (непрерывная интеграция) - в рамках этого термина вы в мире 1С понимаем то, что разрабатываемое нами решение выполняется гибко с автоматическим тестированием как кода, так и пользовательских сценариев и самое важное, выполняется непрерывно.
CD — Continuous Delivery (непрерывная доставка) - следующий термин означает процессы. обеспечивающие непрерывную трансляцию разработанных решений, исправлений, дополнений в рабочую среду бизнес приложений.
Надо понимать, что CI\CD пришло в 1С не потому что это модно и в большом программировании все так работают, есть существенные преимущества, которые дают прирост в качестве, скорости и безопасности разрабатываемого решения, о них по порядку:
1. Гибкость при групповой разработке: когда над разрабатываемым решением работает 10+ разработчиков, слияние изменений (кода) и работа с объектами конфигурации выполняется практически без коллизий, основная часть временных затрат при таком подходе уходит на анализ изменений и слияние.
2. Автоматическое тестирование кода: хранение исходного кода при использовании инструментария CI\CD позволяет выполнять регулярную выгрузку в сервисы автоматического тестирования. Подобные сервисы выполняют регулярную проверку разработанного решения на оптимальность, безопасность и сложность дальнейшей поддержки.
3. Автоматическое тестирование пользовательских сценариев: данные этап предназначен как понятно из названия, автоматически выполнять тестирование пользовательских сценариев и формировать соответствующие отчеты о том, насколько корректно была разработана бизнес-логика решения.
4. "Доставка" - после сборки решения и прохождения всех пользовательских тестов готовое решение "доставляется" в рабочую область бизнес приложений. Разработанное решение доставляется в автоматическом режиме так же в среды неавтоматического тестирования, для того чтобы с ним поработали бизнес-аналитики или конечные пользователи.
Технология CI\CD фактически превращает процесс разработки в непрерывный конвейер, который существенно экономит время разработчиков и тестировщиков.
Как понять, нужен ли Вам CI\CD или нет? Однозначного ответа нет, все как обычно зависит от ситуации, но есть один важный фактор, на который можно ориентироваться, это "количество изменений" или количество запросов бизнеса на "изменения", как только вы замечаете, что количество изменений прямым образом влияет на время простоя вашего бизнес приложения из-за несвоевременно проведенного тестирования бизнес сценариев или ошибок в коде, это может быть признаком для использования технологии гибкой разработки.
Какой инструментарий можно использовать для развертывания полноценной среды для гибкой разработки (сразу необходимо отметить, что это не эталонный набор инструментов, а только некоторые из возможных), но именно развертывание подобных инструментов мы будем рассматривать в последующих статьях.
Итак инструменты:
1. 1С Конфигуратор или 1С:EDT - непосредственно среда разработки.
2. GitLab - система версионирования кода с элементами автоматизации.
3. Jenkins - инструмент "сборки" кода.
4. SonarQube - система тестирования кода (пример настройки доступен по ссылке).
5. Vanessa-automation - система тестирования пользовательских сценариев.
О настройке и возможной схеме компоновке мы поговорим в последующих статьях. (подписывайтесь).