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

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

​