Transcript
Page 1: Frequent deliveries in a multi-team project by Roberts Luksa

Регулярные обновления в проекте с большим количеством команд

Роберт Лукшаodnoklassniki.ru

Page 2: Frequent deliveries in a multi-team project by Roberts Luksa

про Одноклассников

Page 3: Frequent deliveries in a multi-team project by Roberts Luksa

33 000 000 уникальных пользователей в день

Page 4: Frequent deliveries in a multi-team project by Roberts Luksa

2 000 000

000 просмотров страниц в день

Page 5: Frequent deliveries in a multi-team project by Roberts Luksa

«Под капотом»Более 4 500 серверов

JAVA, GWT, Cassandra, MS SQL,

Zabbix ...

Page 6: Frequent deliveries in a multi-team project by Roberts Luksa

Контекст

— Заказчик – мы сами

— 3 офиса

— 14 распределенных команд

— Нужны частые обновления

Page 7: Frequent deliveries in a multi-team project by Roberts Luksa

Необходимость обновлений

— Плановая разработка фич

— Партнеры, промо-акции

— Производственная необходимость

— Экстренная необходимость

Page 8: Frequent deliveries in a multi-team project by Roberts Luksa

Эволюция

Page 9: Frequent deliveries in a multi-team project by Roberts Luksa

Раньше

—Одна команда

—Много срочных задач

—Обновления по мере готовности фич

—Участие всех разработчиков в процессе

обновления

—Апдейт – одна фича и несколько фиксов

—Оффлайн-апдейт

Page 10: Frequent deliveries in a multi-team project by Roberts Luksa

Раньшеплюсы

—готовый код выкладывался сразу же

—высокая скорость работы

—«атмосфера стартапа»

минусы

—остановки портала

—тяжело выдержать ритм

—в процесс обновления вовлечено много

людей

—высокий риск ошибок

Page 11: Frequent deliveries in a multi-team project by Roberts Luksa

Сейчас

Page 12: Frequent deliveries in a multi-team project by Roberts Luksa

Цикл обновления

пн втсрчт

пт сб вс пн вт ср чт пт сб вс пн вт ср чт пт сб вс

   

 UPD-1     

UPD-2             

  UPD-3             

    UPD-4       

Page 13: Frequent deliveries in a multi-team project by Roberts Luksa

Команды

пн втсрчт

пт сб вс пн вт ср чт пт сб вс пн вт ср чт пт сб вс

   

team-1

                                   

   

team-2                                  

   

team-3                                  

   

team-4                                  

Page 14: Frequent deliveries in a multi-team project by Roberts Luksa

Подготовка обновления

1. Разработка функциональности внутри команды

2. Интеграция на тестовой среде

3. Препродакшн

4. Обновление продакшна

Page 15: Frequent deliveries in a multi-team project by Roberts Luksa

Разработка внутри команды

1. Разработка фичи в бранче

2. Функциональное и UI-тестирование на VM разработчика

3. Ревью кода

4. Коммит в мастер

Page 16: Frequent deliveries in a multi-team project by Roberts Luksa

Общая тестовая среда

1. Коммиты в мастер

2. Обновление на тестовой среде

3. Тесты функциональности

4. Интеграционное тестирование

Page 17: Frequent deliveries in a multi-team project by Roberts Luksa

Препродакшн1. Тестирование2. Ввод в ротацию3. Анализ (логи, графики, суппорт)⟳ При необходимости повторить

Page 18: Frequent deliveries in a multi-team project by Roberts Luksa

Процесс обновления

1. Выкладка по модулям2. Тестирование3. Анализ

– если всё плохо – откат– если просто плохо – фикс– если не очень хорошо – регистрация бага

4. Информирование о замечаниях5. Ретроспектива

Page 19: Frequent deliveries in a multi-team project by Roberts Luksa

Запуск функциональности

Проведение «экспериментов» для запуска фич

—ожидаемый результат

—статистика

—нагрузка

—фидбэк от пользователей

Page 20: Frequent deliveries in a multi-team project by Roberts Luksa

Инструменты

—своя система статистики

—Portal Management System

—GIT

—Confluence

—Jira

Page 21: Frequent deliveries in a multi-team project by Roberts Luksa

Роли

Дежурный разработчик

Дежурный тестировщик

Системный администратор

Менеджер апдейта

Page 22: Frequent deliveries in a multi-team project by Roberts Luksa

Команды

—Отвечают за фичу от дизайна до поддержки

—Сами организовывают свою работу

—Общая культура, но индивидуальный подход

Page 23: Frequent deliveries in a multi-team project by Roberts Luksa

Преимущества подхода

— Простые и понятные правила

— Предсказуемость планирования

— Быстрый proof-of-concept

— разработчикам интересно!

Page 24: Frequent deliveries in a multi-team project by Roberts Luksa

Чего добились

—Адаптируемость подхода

—Ответственность и самостоятельность команд

—Программисты программируют

—Тестировщики тестируют

—Менеджеры поддерживают

Page 25: Frequent deliveries in a multi-team project by Roberts Luksa

«Грабли»

—«еще 5 минут и закоммичу»

—полегче с «уплотнением»

—удобный сервис

—зависимость от высококлассных специалистов

Page 26: Frequent deliveries in a multi-team project by Roberts Luksa

Скоро— Самостоятельные апдейты по

необходимости

— Автоматизация

– выкладка

– тестирование

Page 27: Frequent deliveries in a multi-team project by Roberts Luksa

Сейчас

—Онлайн-апдейты

—Разделение по командам

—Апдейты по плану

—Роли

– дежурные

– ответственные

—Ревью кода

—Формализация процесса обновления, но не

разработки


Recommended