1 of 74

Укрощение�зоопарка сервисов

Как системный подход одной команды повышает надёжность и скорость разработки

2 of 74

Обо мне

TechLead @ Bridge & Arch

Иван Нещадин

Улучшаю архитектуру

Повышаю надёжность

Люблю Go

Менторю

Москва 2025

3 of 74

Содержание

История создания SWAT-команды Bridge

Особенности команды

С какими проблемами сталкиваемся

1

2

3

4

Как строим процесс приоритизации

5

Нужна ли вам такая команда в компании?

Москва 2025

4 of 74

История создания команды

Москва 2025

5 of 74

История создания команды

Сначала был он:

Монолит

Москва 2025

6 of 74

История создания команды

Затем, появилась команда

Antimonolith

Москва 2025

7 of 74

История создания команды

В 2023 монолит распилили

Antimonolith

SLA

Arch

Bridge

Москва 2025

8 of 74

История создания команды

Новая структура команды

ArchGovernance�(Unit)

SLA

Arch

Bridge

Москва 2025

9 of 74

История создания команды

Новая структура команды

Разрабатывает инструменты

для отслеживания надёжности

Разрабатывает качественные подходы к архитектуре и даёт инструменты оценки

Улучшает надёжность и архитектуру в продукте�

SLA

Arch

Bridge

Москва 2025

10 of 74

Концепция SWAT-команды

Москва 2025

11 of 74

Знаете ли вы, что такое SWAT-команда?

Москва 2025

12 of 74

Что такое SWAT-команда?

Это команда, которая находит проблемные зоны внутри продуктов компании, приходит в них �и наносит «непоправимую пользу» — �т.е. исправляет все проблемы

Москва 2025

13 of 74

Системно боремся �с критическим тех. долгом и архитектурными рисками до того, как они станут инцидентами

Москва 2025

14 of 74

Зоны ответственности команды

Надёжность сервисов (SLI/SLO)

Архитектурный долг (критичный!)

Технический долг (критичный!)

Москва 2025

15 of 74

Особенности команды

Москва 2025

16 of 74

Мы — проектная команда

У нас нет своих сервисов, своей кодовой базы, �за которыми мы могли бы следить и развивать.

Мы всегда работаем с чужим кодом и контекстом

Москва 2025

17 of 74

Сложно ставить годовые цели для команды

У продуктовых команд есть свои зоны ответственности и сервисы, в которых�они понимают, что можно улучшить �и какие метрики заложить в цели.

Москва 2025

18 of 74

Постановка целей в Авито

В Авито цели ставятся по методологии OKR.

Objective (Цель) – конкретная вещь, которая должна быть достигнута. В формулировке обязательно используется глагол.

Key Result (Ключевой результат) – числовые метрики, достижение которых подтверждает выполнение цели.

Вставьте картинку сюда

Москва 2025

19 of 74

Сложности с discovery целей

Нет своих сервисов, нужно искать, кому помогать

Москва 2025

20 of 74

Сложности с discovery целей

Нет своих сервисов, нужно искать, кому помогать

Тратим много времени на research

Москва 2025

21 of 74

Сложности с discovery целей

Нет своих сервисов, нужно искать, кому помогать

Тратим много времени на research

Задачи часто приходят в конце квартала и мало времени на планирование

Москва 2025

22 of 74

Пример задач, которые решаем

Москва 2025

23 of 74

Стабилизация сценариев

Разобрались с причинами просадки производительности

Задача: увеличение читающей/пишущей нагрузки на сервис �не влияет на стабильность сценариев.

Заказчик: получили информацию при очередном нагрузочном тестировании

Москва 2025

24 of 74

Стабилизация сценариев

Перенесли часть таблиц с данными в новый сервис

Разобрались с причинами просадки производительности

Задача: увеличение читающей/пишущей нагрузки на сервис �не влияет на стабильность сценариев.

Заказчик: получили информацию при очередном нагрузочном тестировании

Москва 2025

25 of 74

Стабилизация сценариев

Перенесли api-методы, cron-задачи �и остальной функционал

Перенесли часть таблиц с данными в новый сервис

Разобрались с причинами просадки производительности

Задача: увеличение читающей/пишущей нагрузки на сервис �не влияет на стабильность сценариев.

Заказчик: получили информацию при очередном нагрузочном тестировании

Москва 2025

26 of 74

Стабилизация сценариев

Переключили трафик и решили проблему

Перенесли api-методы, cron-задачи �и остальной функционал

Перенесли часть таблиц с данными в новый сервис

Разобрались с причинами просадки производительности

Задача: увеличение читающей/пишущей нагрузки на сервис �не влияет на стабильность сценариев.

Заказчик: получили информацию при очередном нагрузочном тестировании

Москва 2025

27 of 74

Пример сложного кейса

Москва 2025

28 of 74

Кейс — исправить архитектуру сервиса

Задача пришла почти в конце квартала со своими сроками

Задача: старый сервис, который создавался в самом начале пути распила монолита и не использует платформенных стандартов

Заказчик: запрос от команды-владельца

Москва 2025

29 of 74

Кейс — исправить архитектуру сервиса

Задача пришла почти в конце квартала со своими сроками

Сильно устаревший тех. стек

Задача: старый сервис, который создавался в самом начале пути распила монолита и не использует платформенных стандартов

Заказчик: запрос от команды-владельца

Москва 2025

30 of 74

Кейс — исправить архитектуру сервиса

Задача пришла почти в конце квартала со своими сроками

Сильно устаревший тех. стек

Мискоммуникация по договорённостям

Задача: старый сервис, который создавался в самом начале пути распила монолита и не использует платформенных стандартов

Заказчик: запрос от команды-владельца

Москва 2025

31 of 74

Какие были разногласия

Команда думала, что мы отдаём своего сотрудника как аутстафф и он подключается ко всем процессам

Москва 2025

32 of 74

Какие были разногласия

Команда думала, что мы отдаём своего сотрудника как аутстафф и он подключается ко всем процессам

Команда, оказывается, оценивала задачи так, что их будут делать сразу и наш разработчик и все разработчики из их команды

Москва 2025

33 of 74

Какие были разногласия

Команда думала, что мы отдаём своего сотрудника как аутстафф и он подключается ко всем процессам

Команда, оказывается, оценивала задачи так, что их будут делать сразу и наш разработчик и все разработчики из их команды

Возникли проблемы с приёмкой кода

Москва 2025

34 of 74

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

Москва 2025

35 of 74

Соглашение с другими командами

Мы не аутстафф

Москва 2025

36 of 74

Соглашение с другими командами

Мы не аутстафф

Мы уважаем совладение

Москва 2025

37 of 74

Соглашение с другими командами

Мы не аутстафф

Мы уважаем совладение

Мы работаем прозрачно

Москва 2025

38 of 74

Соглашение с другими командами

Мы не аутстафф

Мы уважаем совладение

Мы работаем прозрачно

Согласуем взаимодействие

Москва 2025

39 of 74

Соглашение с другими командами

Мы не аутстафф

Мы уважаем совладение

Мы работаем прозрачно

Тестирование силами владельцев

Согласуем взаимодействие

Москва 2025

40 of 74

Соглашение с другими командами

Мы не аутстафф

Мы уважаем совладение

Мы работаем прозрачно

Тестирование силами владельцев

Ретроспектива после окончания проекта

Согласуем взаимодействие

Москва 2025

41 of 74

Как ищем и приоритизируем задачи

Москва 2025

42 of 74

Дашборд надёжности команды SLA

Москва 2025

43 of 74

Сценарии в Авито

Москва 2025

44 of 74

Вчера был доклад бывшего руководителя юнита ArchGovernance

Москва 2025

45 of 74

Мой доклад о поиске проблем в архитектуре в прошлом году

Москва 2025

46 of 74

Как происходил процесс�целеполагания

Team Lead собирал список проектов, �сам прикидывал по срокам, распределял приоритеты, наносил на Roadmap.

В конце – приносил в команду – я сделяль.

Москва 2025

47 of 74

Как происходит процесс �целеполагания теперь

  1. Вся команда совместно собирает карточки с проектами на квартал

Москва 2025

48 of 74

Как происходит процесс �целеполагания теперь

  • Вся команда совместно собирает карточки с проектами на квартал
  • На встрече грумим карточки, делим на этапы

Москва 2025

49 of 74

Как происходит процесс �целеполагания теперь

  • Вся команда совместно собирает карточки с проектами на квартал
  • На встрече грумим карточки, делим на этапы
  • Для каждого этапа делаем примерную оценку в человеко-спринтах

Москва 2025

50 of 74

Как происходит процесс �целеполагания теперь

  • Вся команда совместно собирает карточки с проектами на квартал
  • На встрече грумим карточки, делим на этапы
  • Для каждого этапа делаем примерную оценку в человеко-спринтах
  • Рассчитываем приоритеты

Москва 2025

51 of 74

Приоритизация проектов

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

Москва 2025

52 of 74

Приоритизация проектов

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

Москва 2025

53 of 74

Приоритизация проектов

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

Москва 2025

54 of 74

Работа системы

Проект – повышение надёжности для сервиса

Москва 2025

55 of 74

Работа системы

Проект – повышение надёжности для сервиса

  • P0 – влияние на надёжность вертикалей +1

Москва 2025

56 of 74

Работа системы

Проект – повышение надёжности для сервиса

  • P0 – влияние на надёжность вертикалей +1
  • P0 – влияние на масштабируемость +1

Москва 2025

57 of 74

Работа системы

Проект – повышение надёжности для сервиса

  • P0 – влияние на надёжность вертикалей +1
  • P0 – влияние на масштабируемость +1
  • P3 – влияние на тех. долг +0

Москва 2025

58 of 74

Работа системы

Проект – повышение надёжности для сервиса

  • P0 – влияние на надёжность вертикалей +1
  • P0 – влияние на масштабируемость +1
  • P3 – влияние на тех. долг +0
  • Важная годовая цель +1

Итого: приоритет 3

Москва 2025

59 of 74

Как делаем дальше

  1. Берём список всех задач и сортируем �их по приоритетам

Москва 2025

60 of 74

Как делаем дальше

  • Берём список всех задач и сортируем �их по приоритетам
  • Наносим их по предварительной оценке на Roadmap

Москва 2025

61 of 74

Как делаем дальше

  • Берём список всех задач и сортируем �их по приоритетам
  • Наносим их по предварительной оценке на Roadmap
  • То что влезло - берём, что не влезло — откладываем на потом

Москва 2025

62 of 74

Как думаете, сколько времени занимает приоритизация?

Москва 2025

63 of 74

Как думаете, сколько времени занимает приоритизация?

Планирование Q3 заняло 4 встречи �на 1.5 часа на 4х человек.

24 человеко-часа при таком подходе

Москва 2025

64 of 74

Как решали проблему �с поиском задач �и приоритетами?

Москва 2025

65 of 74

Собрали брейншторм сессию с несколькими командами и придумали список метрик и приоритетов

Москва 2025

66 of 74

Новый процесс целеполагания

Москва 2025

67 of 74

Новый процесс целеполагания

Москва 2025

68 of 74

Новый процесс целеполагания

Москва 2025

69 of 74

Нужна ли вам такая команда?

Москва 2025

70 of 74

Когда нужна такая команда

Когда компания доросла до большой архитектуры и её качество overall сложно контролировать

Москва 2025

71 of 74

Когда нужна такая команда

Когда компания доросла до большой архитектуры и её качество overall сложно контролировать

Есть возможность на метриках находить проблемы в ваших сервисах

Москва 2025

72 of 74

Когда нужна такая команда

Когда компания доросла до большой архитектуры и её качество overall сложно контролировать

Есть возможность на метриках находить проблемы в ваших сервисах

По метрикам видно, что качество/надёжность со временем ухудшаются и проблемы накапливаются

Москва 2025

73 of 74

Get in touch

Если хотите пообщаться ещё — приходите.

Консультирую �и менторю

Иван Нещадин

TechLead @ Bridge&Arch

tg @Exitialis

site: https://exitialis.dev

Вставьте картинку сюда

74 of 74

Оцените доклад