Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 68 Следующий »

Содержание:

Введение

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

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

Изменения сопровождаются рассылками всех заинтересованных лиц с описанием состава изменений и порядком обновлений.

Информация о процессе разработки

  1. Планирование работ




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

    Процесс разработки разбивается на отдельные этапы, результатом каждого из которых является готовый продукт. В конце каждого этапа (в терминологии Scrum - это называется спринт) готовый продукт предоставляется заказчику. Полученный от заказчика отзыв позволяет выявить возможные проблемы или пересмотреть некоторые аспекты первоначального плана. Таким образом, текущий подход позволяет наилучшим образом следовать принципам Agile-разработки.

  2. Состав команды

    Состав команды разработки включает в себя:

    1. Руководитель проекта (TeamLead);
      Контролирует все процессы разработки и поддержки системы.

    2. Менеджер продукта (Product Manager);
      Отвечает за выпуск изменений, сроки, планирование, формирование требований к продукту и его приемку.

    3. Руководитель отдела тестирвоания (QA) и тестировщики;
      Обеспечивают качество разработки программного обеспечения.

    4. Бизнес-аналитик (Business analytics);
      Использует методы бизнес-анализа для исследования потребностей деятельности организаций с целью определения проблем бизнеса и предложения их решения.

    5. Разработчики (Developers);
      Занимаются созданием и поддержкой программного обеспечения.

  3. Инфраструктура




    1. Физический адрес

      Инфраструктура разработки располагается в XXX (страна) на мощностях, которые арендуются в ООО "XXX (наименование компании)" по договору № XXX (номер договора) от XXX (дата договора).
      По адресу XXX (физический адрес).

    2. Состав инфраструктуры


      Инфраструктура включает себя:
      1. Выделенные сервера
        Два выделенных сервера (тестовый EnjoyLab-dev-k8s-s1 и боевой EnjoyLab-k8s-s1) работают на базе docker-контейнеров, микросервисов и Kubernetes с интегрированными процессами CI/CD.
        Для организации процессов CI/CD на сервере EnjoyLab-tools-s1 развернут сервис Bamboo и приватный Docker registry — Harbor. В Docker registry хранятся образы микросервисов.
      2. Команда DevOps
        За проектом закреплена команда инженеров, в которую входит техлид, необходимое количество старших DevOps-инженеров, DevOps-инженеров среднего уровня, и команда дежурных администраторов, которая обеспечивает круглосуточный мониторинг, SLA и выполнение ночных регламентных работ по инфраструктуре. Техлид координирует все работы и отвечает за ежедневные коммуникации с командой разработки, согласует планы по дальнейшему развитию, приоритеты, сроки по задачам, делает всё необходимое, чтобы развитие системы шло в соответствии с планом, в инфраструктуре поддерживался порядок, она отвечала текущим потребностям проекта и команды.
      3. Мониторинг 24/7
        Обеспечение бесперебойной работы и поддержание аптайма, близкого к 100%. Для системы тонко настроен мониторинг инфраструктуры, приложения и бизнес-метрик, оптимальные значения триггеров и алерты. Стандартная скорость реакции на сбои — в течение 15 минут круглосуточно, включая выходные и праздники.
      4. Wiki по инфраструктуре
        В технической документации отражается схема текущей инфраструктуры, связи между различными компонентами системы, особенности архитектуры, маршрутизации, настроек конкретных сервисов. Это значительно ускоряет траблшутинг проблем и навигацию по инфраструктуре.
      5. Бекапы
        Резервное копирование файлов и БД выполняется в удаленное распределённое хранилище в ООО «Яндекс ДЦ».

  4. Тестирование программного обеспечения



    По итогам подготовки спринта (этапа работ), создается релиз кандидат и силами QA выполняется регрессионное тестирование на стабилизационной площадке в соответствии с планом тестирования.
    Управление процессом тестирования проходит в автоматизированной системе TestRail.
    Во время тестирования выполняются различные процессы, направленные на улучшение качества продукта:
    1. Анализ требований;
    2. Составление плана тестирования;
    3. Разработка тестовых сценариев.

  5. Выпуск изменений

    После успешного тестирования программного продукта готовится выпуск релиза на производственной среде.
    В выпуске релиза принимают участие: руководитель проекта (TeamLead), менеджер продукта (Product Manager), руководитель отдела тестирования (QA) и инженеры DevOps.

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

  6. Обновление системного программного обеспечения

    Системные компоненты своевременно отслеживаются и обновляются инженерами DevOps, которые занимаются обслуживанием инфраструктуры.
    Это обеспечивает надежность, стабильность и безопасность работы программного обеспечения HelloPrint.

Информация о процессе сопровождения

  • Нет меток