Процессы жизненного цикла Агент Mail.ru
Введение
Мессенджер «Mail.ru АГЕНТ мессенджер» - коммуникационное программное обеспечение, включающее взаимосвязанные базы данных и программный комплекс (в т.ч. программы, мобильные и прочие приложения), обеспечивающие коммуникации пользователей, в том числе в виде голосовых и видеозвонков, обмена текстовыми сообщениями, файлами, электронными письмами
Поддержание жизненного цикла мессенджера осуществляется за счёт сопровождения в течении всего периода эксплуатации.
-
Поддержка стабильной работоспособности, мониторинг
- Мониторинг
- Планирование производительности и установка нового оборудования
-
Развитие и модификация
- Определение необходимых изменений, их детализация
- Разработка в соответствие с поставленной задачей
- Подготовка приложений
- Тестирование функциональности
- Проведение апдейтов
- Обновление ПО
- Замена устаревшего ПО
- Развитие внутренних инструментов
Процессы жизненного цикла
Поддержка стабильной работоспособности, мониторинг
С целью поддержания функционирования мессенджера осуществляется постоянный мониторинг ключевых характеристик сервиса при помощи системы автоматизированного мониторинга в режиме 24/7.
В случае обнаружения неполадок, дежурный системный администратор оценивает критичность и срочность проблемы и в зависимости от них предпринимает одно из следующих действий:
- Действия для исправления критичных проблем производятся незамедлительно, независимо от времени суток. В случае невозможности решить проблему самостоятельно дежурный привлекает к решению проблемы ответственных разработчиков
- Если проблема сложная, но при этом не срочная, то её решение откладывается до начала следующего рабочего дня
- Если для исправления необходимо вносить изменения в ПО, дежурный создает задачу в системе трекинга задач
- QA-инженер воспроизводит ошибку с целью уточнения её актуальности и последовательности необходимых действий для проявления ошибки
- Далее задача на исправление ошибки передается ответственному разработчику, процесс продолжается по сценарию развития и модификации
Развитие, модификация и обновление
- Продуктовый менеджер анализирует потребности пользователей ПО, в том числе при помощи сбора статистических данных и проведения исследований на фокус-группе пользователей. На этом этапе формулируется идея изменений, которые могут улучшить функциональные характеристики ПО для пользователей
- Готовая идея передается UX-дизайнеру для определения необходимых изменения в пользовательском интерфейсе ПО, определения необходимых для показа пользователю данных, возможных вариантов использования и переходов между страницами/экранами. UX-дизайнер создаёт макеты будущих экранов
- Далее продуктовый менеджер совместно с командами разработчиков производит оценку сроков, требуемых на разработку функционала, определяются разработчики, участвующие в разработке. В системе трекинга задач создаются необходимые задачи и назначаются ответственным разработчикам
- Разработка и первоначальная отладка функционала осуществляется разработчиками в dev-окружении, являющемся упрощенной копией prod-окружения, в котором все компоненты функционируют полностью независимо от prod-окружения
- Код программ, прошедший предварительную проверку разработчиком, автоматически раскладывается в тестовое alpha-окружение, в котором базы данных используются из prod-окружения, но нет нагрузки от пользователей. Исполняются без ошибок автоматические тесты
- Далее QA-инженеры производят ручное тестирование внесенных в процесс разработки нового функционала изменений. При нахождении ошибок информация о них передается программисту посредством системы трекинга задач, задача возвращается на доработку
- После успешного тестирования нового функционала изменения вливается к основной ветке разработки, собирается релиз, который подвергается регрессионному тестированию
- Успешно протестированный релиз передаётся к передаче обновления для пользователей, сначала на ограниченный % аудитории и далее до 100%
Информация о персонале
Специалисты, участвующие в разработке и обслуживании продукта:
- Команда продукта — продуктовые менеджеры и аналитики, отвечающие за продуктовую логику
- Дизайнеры — разрабатывают визуальный стиль продукта и UX
- Разработчики — несколько команд, специализирующихся на разработке серверной части, VOIP, клиентских приложений для iOS, Android, Windows, macOS, Linux, web
- Команда тестирования — QA-инженеры, отвечающие за качество продукта и дистрибуцию бета-сборок
- Команда антиспама — удаляет спам, блокирует подозрительную пользовательскую активность
- Служба поддержки — помогает пользователям, собирает обратную связь по продукту, передает обратную связь в команду продукта и разработчикам
- Команда эксплуатации и сопровождения — обеспечивает бесперебойную работу ПО, обрабатывает возникающие инциденты, выполняет своевременные обновления и профилактические работы, эксплуатирует серверную инфраструктуру
- Маркетинг и PR — отвечают за привлечение аудитории в продукт, его продвижение на рынок, организуют коммуникацию от лица продукта