Pull to refresh
116.07
Автомакон
ИТ-интегратор

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

Reading time4 min
Views4K

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

  2. Ручная проверка кода. Код проходит обязательное ревью экспертом по коду.

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

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

Only registered users can participate in poll. Log in, please.
Какие среды CI/CD вы используете для тестирования и развертывания?
26.92% Jenkins14
7.69% TeamCity4
1.92% Bamboo CI1
0% Buddy0
55.77% Gitlab CI29
0% Circle CI0
0% GoCD0
3.85% Другое2
3.85% Мы не используем никаких инструментов CI / CD2
52 users voted. 3 users abstained.
Tags:
Hubs:
Total votes 5: ↑2 and ↓3-1
Comments1

Articles

Information

Website
job.automacon.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия
Representative
Олеся Царева