Метод CI/CD: чистый код и строгая дисциплина

от автора

Оперативная подготовка программного продукта к релизу — ключевое конкурентное преимущество во многих отраслях бизнеса. Кто сможет быстро предоставить качественный продукт займет лидирующие позиции. Поэтому в основе тестирований современных компаний, которые растут и гибко реагируют на любые изменения, лежит методология непрерывной интеграции и доставки (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, команда разделяет процесс разработки на шесть этапов. В зависимости от продукта, некоторые из этапов допустимо пропустить. Во ВкусВилл цикл работы над программным решением выглядит следующим образом:

  1. Написание кода. Разработчик пишет код, зачастую над проектом работает несколько специалистов, у каждого из них свой стиль написания кода, что иногда усугубляет положение. Как только код готов, запускаются тесты для выявления синтаксических ошибок. Используется АПК и SonarQube.

  2. Ручная проверка кода

  3. Сборка. После внесения изменений запускается автоматическая сборка и автоматическое тестирование программы. Для осуществления этого процесса планируется применять Jenkins, сейчас используются PowerShell-скрипты. Если все прошло успешно, продукт передается команде тестировщиков. 

  4. Ручное тестирование. После проверки CI-системой работоспособности ПП, тестировщики проверяют все вручную и, если были выявлены ошибки или недочеты, то разработчики вновь вносят изменения в код. Этот этап может быть дополнен релизом версии кода для клиентов.

  5. Развертывание.После исправления запускается автоматизированная установка программного продукта на серверы компании.

  6. Поддержка и мониторинг. Специалисты мониторят работу приложения, фиксируют, что следует изменить, создается план доработок и передается разработчикам. Т.о., цикл замыкается.

В проектах 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-сфере и принимать участие в проектах с использованием современных методологий, присоединяйтесь к нашей команде!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какие среды CI/CD вы используете для тестирования и развертывания?
14.29% Jenkins 1
14.29% TeamCity 1
0% Bamboo CI 0
0% Buddy 0
71.43% Gitlab CI 5
0% Circle CI 0
0% GoCD 0
0% Другое 0
0% Мы не используем никаких инструментов CI / CD 0
Проголосовали 7 пользователей. Воздержавшихся нет.

ссылка на оригинал статьи https://habr.com/ru/company/automacon/blog/671918/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *