Оперативная подготовка программного продукта к релизу — ключевое конкурентное преимущество во многих отраслях бизнеса. Кто сможет быстро предоставить качественный продукт займет лидирующие позиции. Поэтому в основе тестирований современных компаний, которые растут и гибко реагируют на любые изменения, лежит методология непрерывной интеграции и доставки (CI/CD). Их IT-команды используют Agile-подход при разработке программного обеспечения, а CI/CD — одна из подобных практик, но именно по части DevOps. Она позволяет проводить различные тесты на каждом этапе (интеграция) и завершать их запуском с развертыванием закомиченного кода в фактический продукт, который уже могут увидеть конечные пользователи (доставка). Основные возможности, которые появляются при использовании этой концепции — отследить ошибки и оперативно их устранить, а также написать качественный и чистый код.
В этой статье рассмотрим, как во ВкусВилл устроены процессы управления разработкой на основе CI/CD, что позволяет оперативно создавать и запускать новые сервисы, а затем поддерживать работоспособность решений.
Зачем ВкусВилл CI/CD: реальные причины
ВкусВилл — один из лидеров среди российских ритейлеров. Сеть магазинов продуктов здорового питания сегодня насчитывает больше 1300 торговых точек и 120 дарксторов в офлайне, а также развивает направления e-commerce и веб-разработки. Для обеспечения непрерывной и стабильной работы всех подразделений предприятия регулярно разрабатываются новые решения и проводится автоматизация и оптимизация бизнес-процессов. Реализовать все планы помогает команда интегратора «Автомакон». Над релизом решений работают десятки разных специалистов: разработчики, дизайнеры, инженеры по качеству, бизнес-аналитики, владельцы продуктов и DevOps-инженеры, что в то же время вызывает определенные сложности в управлении. Важно, чтобы каждый участник проекта следовал определенным правилам, ответственно подходил к работе и соблюдал дисциплину. Достичь этого помогает следование определенной методологии.
Рост компании напрямую зависит не только от качества выполнения работы сотрудниками, но и от применяемых моделей управления продуктами. На рост прибыли бизнеса влияет так называемое «time to market» — время, которое требуется команде для реализации продукта. Чем оно ниже, тем быстрее и больше сможет заработать компания. Поэтому команда разработчиков «Автомакон-ВкусВилл» отдает предпочтение концепции CI/CD. Все специалисты, участвующие в создании и подготовке к выпуску технологичных продуктов сети, могут оперативно получать обратную связь и вносить необходимые изменения на своем участке работы, что, к тому же, снижает риск несоответствия, обеспечивает целостность процесса и помогает руководителям проектов отслеживать результат.
Цикл CI/CD
Следуя методологии CI/CD, команда разделяет процесс разработки на шесть этапов. В зависимости от продукта, некоторые из этапов допустимо пропустить. Во ВкусВилл цикл работы над программным решением выглядит следующим образом:
Написание кода. Разработчик пишет код, зачастую над проектом работает несколько специалистов, у каждого из них свой стиль написания кода, что иногда усугубляет положение. Как только код готов, запускаются тесты для выявления синтаксических ошибок. Используется АПК и SonarQube.
Ручная проверка кода
Сборка. После внесения изменений запускается автоматическая сборка и автоматическое тестирование программы. Для осуществления этого процесса планируется применять Jenkins, сейчас используются PowerShell-скрипты. Если все прошло успешно, продукт передается команде тестировщиков.
Ручное тестирование. После проверки CI-системой работоспособности ПП, тестировщики проверяют все вручную и, если были выявлены ошибки или недочеты, то разработчики вновь вносят изменения в код. Этот этап может быть дополнен релизом версии кода для клиентов.
Развертывание.После исправления запускается автоматизированная установка программного продукта на серверы компании.
Поддержка и мониторинг. Специалисты мониторят работу приложения, фиксируют, что следует изменить, создается план доработок и передается разработчикам. Т.о., цикл замыкается.
В проектах 1С для автоматизации процессов тестирования и доставки кода конечным клиентам используется GitLab. Выбор в пользу этого инструмента был сделан в связи с тем, что он позволяет управлять репозиториями проекта, фиксировать результаты тестов, функциональность, отслеживания ошибки и работать с CI/CD-pipeline. Перенос кода происходит автоматически.
Результаты использования CI/CD
Команда отмечает положительное влияние на скорость подготовки и выпуска продуктов и приложений — процессы по тестированию, сборке и доставке проходят автоматически, больше не нужно тратить время (может занять 1-2 недели) на разбор багов и поиск причин их появления, ведь это довольно дорого обходится компании. К тому же, разные участники проекта могут работать над созданием ПП, не мешая остальным. Сокращается и влияние человеческого фактора, а, следовательно, и снижается процент ошибок. Благодаря использованию метода CI/CD разработчики начали уделять повышенное внимание написанию кода — стараются писать максимально чистый и красивый код. Руководители проектов ВкусВилл добились прозрачности процесса разработки и решили вопросы разобщенности команд и перекладывания ответственности.
Несмотря на то, что ВкусВилл старается следовать трендам индустрии, именно методология CI/CD — это не дань моде, а необходимость, ведь она позволяет не только сократить ценное время от разработки кода до релиза продукта, но и оперативно отсеять нежизнеспособные варианты и проверить гипотезы.
Эффект от внедрения CI/CD-конвейеров измеряется в виде KPI DevOps:
частота поставки (deployment frequency);
время реализации изменений (change lead time);
среднее время восстановления после инцидента (mean time to recovery).
Чтобы результат соответствовал ожиданиям или же их превзошел, необходимо грамотно организовать внутренние процессы и обучить специалистов. Команда «Автомакон» обладает необходимой экспертизой и опытом, поэтому, если планируете развиваться в IT-сфере и принимать участие в проектах с использованием современных методологий, присоединяйтесь к нашей команде!
AlexGluck
Судя по последним результатам, вам надо попросить технических специалистов написать материал для данного ресурса.