Upload
others
View
40
Download
0
Embed Size (px)
Citation preview
Дмитрий Химион Avito
1
Измерение Production инцидентов: цена качества
2
Дмитрий Химион
Head of Quality Assurance в Avito
О себе
План:
• Погружение в контекст
• Типовые ситуации из опыта работы с инцидентами
• Как процесс работает в Авито
• Измерение инцидентов
• Тонкие моменты
• Итоги
• Вопросы
3
• ≈ 40 кросс-функциональных команд
Погружение в проблематику
4
• ≈ 40 кросс-функциональных команд
• > 1 инцидента в рабочий день
Погружение в проблематику
5
1 инцидент на команду в месяц
• ≈ 270 Production инцидентов в год
Погружение в проблематику
6
• №1 Well known
7
Погружение в проблематику. Прозрачность
8
Что-то упало, подняли… Не понятно, что это было…
Такое больше не повторится…
• №1 Well known
• №2 Who knows?!
Погружение в проблематику. Прозрачность
9
• №1 Well known
• №2 Who knows?!
• №3 Полтергейст
RPS
Погружение в проблематику. Прозрачность
10
Погружение в проблематику. Видимость&Опасность
User
Critical отчет
Бизнес данные
11
Погружение в проблематику. Видимость&Опасность
old connection
new connection
old master
new master
Read only
Микро-сервис
12
Погружение в проблематику. Видимость&Опасность
Микро-сервис
DNS resolving
replica
master
13
Инцидентов не избежать – учись с ними работать!
14
Как процесс Live Site Review построен в Авито
ВнешнийProduction incident
15
Как процесс Live Site Review построен в Авито
ВнешнийProduction incident
ВнутреннийInternal incident
16
Как процесс Live Site Review построен в Авито
1
17
Как процесс Live Site Review построен в Авито
1 2
18
Для простых, маленьких и понятных инцидентов
Как процесс Live Site Review построен в Авито
19
Как процесс Live Site Review построен в Авито
команда
1. Влияние
2. Первопричина
3. Триггер
4. Как ликвидировали
5. Как обнаружили
6. Action Items
7. Платформа
8. Команда
20
Как процесс Live Site Review построен в Авито
Ключеваяинформация по
инциденту
Влияние!
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
21
Как процесс Live Site Review построен в Авито
1.Пользователи2.Деньги3.Данные
> 20 «sorry-points» – на встречу
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
22
Как процесс Live Site Review построен в Авито
1. Не протестировали2. Нет анализа изменений3. Нет обратной совместимости4. Кривая конфигурация5. Игнорировали риск
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
23
Как процесс Live Site Review построен в Авито
Катализатор
проявлениядефекта
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
24
Как процесс Live Site Review построен в Авито
Time line:02-14 18:07 Выкатка релиза https://jr.ru/AV-5586302-14 18:26 Сработал триггер http://m.k.a.ru/triggerВ этот раз никто из команды не проверил, что триггер откатился обратно02-14 23:28 Появился тред https://slack от саппорта02-14 23:56 Мне позвонили, сообщили о проблеме02-15 00:04 Локализовали проблему, подняли кипиш02-15 01:24 Nikolay подготовил хотфикс http://stash02-15 02:14 Хотфикс раскатился02-15 02:16 Запросы пришли в норму
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
25
Как процесс Live Site Review построен в Авито
1. Исправили на Canary релизе2. Заметили быстрее пользователей3. Узнали из мониторинга4. Сообщение от саппорта5. От руководителя
6. Из СМИ
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
26
Как процесс Live Site Review построен в Авито
1. Настроить мониторинг2. Настроить alert3. Написать авто-тесты4. Добавить активность в грумминг5. Изменить инженерные практики6. Рефакторинг компонента
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
27
Как процесс Live Site Review построен в Авито
1. Android2. iOS3. Web4. API5. Service layer6. Storage layer7. Hardware layer8. Kubernetes layer
Влияние
Первопричина
Триггер
Как ликвидировали
Как обнаружили
Action Items
Платформа
Команда
28
Как процесс Live Site Review построен в Авито
SellerX, BuyerX, Billing, Monetization, ….
29
Что измеряем?
1. Клиентский капитал
2. Финансовые потери
3. Потеря данных
30
Что измеряем?
1. Клиентский капитал
2. Финансовые потери
3. Потеря данных
1. Пользователи видели баг2. Продуктовые конверсии3. Регистрации4. Авторизации
31
1. Клиентский капитала
2. Финансовые потери
3. Потеря данных
Что измеряем?
1. Потенциально недополученная прибыль
2. Провалы в биллинге3. Монетизационные инструменты
32
1. Клиентский капитала
2. Финансовые потери
3. Потеря данных
Что измеряем?
1. Аналитические данные2. Пользовательские данные3. Технические данные
33
Измерение инцидентов. Клиентский капитал
= { X*30 ; X*300 }
{ 11,4K; 114,3K }
34
Измерение инцидентов. Финансовые
«sorry-points»
Biggest ≈ 130 sorry-points
35
Измерение инцидентов. Потеря данных
≈2 million user requests
36
Измерение инцидентов. Потеря данных
≈90 регистрацийпользователей
37
Измерение инцидентов. Потеря данных
Контакты между пользователями
38
Тонкие моменты
1. Распространение практики
Development culture
1. Распространение практики
2. Временной ресурс
39
Тонкие моменты
1. Распространение практики
2. Временной ресурс
3. «Люркинг» людей
40
Тонкие моменты
Для инженеров:
• Инцидент?! - «Устраняй ➜ Описывай ➜ Обсуждай»
• «Мы готовы к инциденту» vs «Пытаемся избежать всёго»
• Источник аргументов для приоритезации технических задач
Для руководителей:
• Понимание влияния сбоев на результат работы бизнеса
• «Рука на пульсе» состояния инженерии в XL разработке
• Принятие сложных решений своевременно
Итоги
41
Дмитрий Химион Head of Quality Assurance
Вопросы?
42
dmitry.khimion
Дмитрий Химион Head of Quality Assurance
Всем спасибо!
43
dmitry.khimion