Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания

В чем ключ к успешной настройке непрерывной поставки в проектах? Скоординированная работа команд разработки, тестирования и инфраструктуры.

Спасибо, кэп, как говорится :) А как это реализовать на практике? В этой статье мы поделимся своими лучшими практиками, как все это организовать и реализовать.

Мы свели для себя основы в одну шпаргалку и делимся с вами:

  • Каковы требования и чем они характеризуются? ,
  • Типы проблем и порядок их описания в трекере проблем ,
  • Как написать пользовательскую и техническую историю ,
  • Как описывать ошибки ,
  • Настройка конвейера развертывания .

Опытные инженеры вряд ли узнают из статьи что-то новое, но мы надеемся, что начинающим специалистам эта информация будет полезна.



Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания



Каковы требования и чем они характеризуются?

Каждый проект сталкивается с рядом требований.

Важно их все понимать и не путать.

Бизнес-требования определить, что система должна делать с точки зрения бизнеса.

Например: приложение должно позволять пользователю продавать билеты и дополнительные услуги, чтобы увеличить агентские продажи.

Требования пользователя описать цели и задачи пользователей, которые будут работать в системе для реализации бизнес-требований.

Требования пользователей часто представляются в виде пользовательских кейсов.

Например: мне как пользователю нужно продавать услуги за мили.

Функциональные требования — что должна делать система.

Определите функциональность (поведение) системы, которая должна быть создана разработчиками, чтобы пользователи могли выполнять требования пользователей.

Нефункциональные требования — как должна работать система.

Сюда входят требования к производительности, качеству, ограничениям, удобству использования и т. д.



Типы проблем и порядок их описания в трекере проблем

Итак, мы описали виды требований.

Теперь разобьем их на типы задач, расшифруем каждый тип и расскажем, как его правильно описать.



Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания

Начнем с самого эпического, то есть Epic. Эпический — общая задача, в которой собираются все пользовательские истории с учетом времени разработки сервиса.

Он описывает основную цель продукта или услуги.

Основная цель Epic — собирать задачи и хранить их в одном месте, какие бы новые требования не предъявлялись к продукту.

Epic всегда больше, чем пользовательская история, и может не уместиться даже в одну итерацию.

Решение проблемы Epic позволяет создать MVP (Minimal Viable Product) — минимально жизнеспособный продукт. Другими словами, что необходимо выпустить, чтобы изучить и адаптировать продукт на основе отзывов конечных пользователей.

Чем Epic отличается от User Story?

  1. Epic — это просто большая пользовательская история, отличительной чертой которой является то, что она представляет для пользователя очевидную ценность.

  2. Приступая к формированию пользовательских историй, т. е.

    сбора требований к проекту, мы обычно движемся от общего к частному — сначала определяем концепцию проекта, выявляем основных людей (пользователей системы), создаем список основных особенности, а затем детализируем эти возможности в индивидуальные пожелания - История пользователя.



Порядок описания Эпика следующий:

  1. Название / Краткое название — название нового функционала.

  2. Описание - пишется по шаблону: Роль пользователя (например, такой-то пользователь, я.

    ) / Действие пользователя (я хочу что-то сделать.

    ) / Результат действия (получить такой результат, что.

    ) / Интерес или выгода (будет позвольте мне получить такие-то льготы.

    ).

  3. Пример плана реализации или краткое описание основных пользовательских историй, которые будут завершены в рамках Epic с учетом MVP.
  4. Вложения — прикрепите переписку, технологии и другую необходимую информацию.



Как написать пользовательскую историю и техническую историю

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

И части системы здесь выступают в роли потребителей.

Их легко описать.

Главное – помнить, для чего все это делается.



Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания



Процедура описания пользовательской истории вполне стандартна:

  1. Title/Summary/Title – краткое описание нового функционала или улучшения на понятном заказчику языке.

  2. Описание/Описание включает в себя основную цель и желаемый результат. Нравиться, , я , с целью .

  3. Критерии приемки — это список приоритетных критериев продукта.

    То есть измеримое определение того, что необходимо сделать с продуктом, чтобы он был принят участниками проекта.

  4. Технические примечания, модели, макеты, схемы структуры страниц.

  5. Вложения - все необходимые технологии, документы, переписка с заказчиком.



Как описывать ошибки

Какую информацию следует предоставить при сообщении об ошибке: 1. Название / Краткое содержание / Название кратко описывает суть ошибки и указывает, где находится проблема.

2. Описание/Описание содержит следующие шаги: • как воспроизвести ошибку/шаги по воспроизведению, • текущий результат, • Ожидаемый результат. 3. Вложения — все необходимые логи, скриншоты, ссылки на Кибану и другие файлы.

4. Среда — отметка, в какой среде воспроизводится ошибка, и категория, к которой относится проблема.

Например, ошибка пользовательского интерфейса, ошибка CORE, ошибка SWS и т. д. 5. Приоритет позволит каждому члену команды оценить серьезность проблемы, а менеджер увидит ее в списке первых кандидатов в спринте.

И не забудьте установить правильный уровень приоритета :) Теперь, когда мы поняли общие принципы работы, расскажем, как организовать конвейер развертывания.





Настройка конвейера развертывания

Чтобы ускорить доставку наших сервисов в производство, мы внедряем новый конвейер развертывания и используем GitFlow для работы с кодом.

Чтобы сделать это быстро и динамично, мы развернули несколько бегунов GitLab, которые выполняли все задачи по подталкиванию разработчиков.

Благодаря подходу GitLab Flow у нас теперь есть несколько серверов: Develop, QA, Release-candidate и Production. Непрерывная интеграция начала собирать и запускать тесты для каждого коммита, выполнять модульные и интеграционные тесты, а также добавлять артефакты в поставляемое приложение.



Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания

Развитие происходит следующим образом:

  1. Разработчик добавляет новый функционал в отдельную ветку (feature Branch).

    После этого он создает запрос на слияние своей ветки с основной веткой разработки (Merge Request to Develop).

  2. Другие разработчики смотрят мерж-реквест, принимают его (или нет) и исправляют комментарии.

    После слияния в основную ветку разворачивается специальная среда, на которой выполняются тесты по поднятию среды.

  3. Когда все эти этапы пройдены, QA-инженер переносит изменения в свою ветку «QA» и проводит тестирование.

  4. Если QA-инженер одобряет проделанную работу, изменения перемещаются в ветку Release-Candidate и развертываются в среде, доступной внешним пользователям.

    В этой среде заказчик принимает и проверяет технологии.

    Затем мы переносим все в производство.

Если на каком-то этапе возникают ошибки, то именно в этой ветке мы их решаем, после чего выкладываем результат в Develop. Мы также сделали небольшой плагин, чтобы Redmine мог сообщать нам, на каком этапе находится та или иная функция.

Это помогает тестировщикам оценить, на каком этапе им нужно подключиться к задаче, а разработчикам — исправить ошибки.

Таким образом они смогут увидеть, на каком этапе произошел сбой, и смогут перейти в конкретную ветку и воспроизвести его там.



Как Организовать Ci/Cd На Проекте: От Постановки Задач До Настройки Конвейера Развертывания

Мы надеемся, что вы нашли это полезным.

Теги: #pm #управление проектами #qa #управление качеством #пользовательская история #ошибки #системные требования #EPIC #ci #непрерывная интеграция #Тестирование веб-сервисов #Управление проектами #DevOps

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2008-12-19 23:14:07
Баллов опыта: 504
Всего постов на сайте: 2
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.