SlideShare a Scribd company logo
1 of 73
Download to read offline
Анатомия
ОШИБКИ
Высоцкий сергей
Специалист по Тестированию
Высоконагруженных
Сервисов, 2GIS




@goblingame

Sergey.Vyssotski@gmail.com

http://goblingame.blogspot.com/
Sh*t happens
0. Контекст
1. как?
2. почему?
3. что делать?
0. Контекст
1. как?
2. почему?
3. что делать?
Социотехнические системы
Социальная часть
Техническая часть
Люди
техника
Морская авиация
медицина
Отказоустойчивость
 социотехнических
 систем




Доктор Кук   Доктор Деккер   Доктор Холлнагель   Доктор Вудс
сложные

    И
динамичные
сложные

     ≠
Трудно понять
Наша система:
- софт
- железо
- люди
- процессы
- сеть
Наша система:
- софт
- железо
- люди
- процессы
- сеть
Система, рассчитанная
На идеальную работу
Каждого звена,
Обречена на провал
Etto principle
Нормы, процедуры,
   инструкции
Нормы, процедуры,
   инструкции


    Ресурсы,
  ограничения
Нормы, процедуры,
           инструкции


               Ресурсы,
             ограничения


              оператор
  нарушения                ошибки

коррективы                 компенсации
0. Контекст
1. как?
2. почему?
3. что делать?
локализация   починка   все ок
обнаружение
обнаружение                 починка   все ок
              локализация
локализация   починка   все ок
обнаружение
импровизация
Постоянные
коммуникации
Перегрузка
информацией
Герои-ОДИНОЧКИ
0. Контекст
1. как?
2. почему?
3. что делать?
«Основное правило:
  любое объяснение
лучше его отсутствия»

               - ницше
про root cause analysis
Ошибка ретроспекции


 «Знание результата
  Влияет на анализ
  произошедшего»
Память
Реальность
Ошибка ретроспекции


   Надо было быть
    внимательнее
  Все видно как на
 Ладони, Как ты мог
    проморгать?
Отклонение в сторону
     результата

«Суждение о решениях
По их окончательному
     результату»
FMEA
Дерево отказов
 Пять почему
   ишикава
На самом деле

база
база
       Вебсервер   Кэш
                   Кэш
       Вебсервер



                     балансировщик
На самом деле

база
база                       Админ
                   Кэш      Админ
       Вебсервер
       Вебсервер   Кэш     Попал в
                           Попал в
                           аварию
                           аварию

                     балансировщик
На самом деле

база
база                          Админ
                      Кэш      Админ
          Вебсервер
          Вебсервер   Кэш     Попал в
                              Попал в
                              аварию
                              аварию
Все На
 Все На
devday
devday                  балансировщик
На самом деле

база
база                          Админ
                      Кэш      Админ
          Вебсервер
          Вебсервер   Кэш     Попал в
                              Попал в
                              аварию
                              аварию
Все На
 Все На
devday
devday                  балансировщик


 Проблемы
 Проблемы
 С наймом
  С наймом
На самом деле

база
база                                Админ
                         Кэш         Админ
          Вебсервер
          Вебсервер      Кэш        Попал в
                                    Попал в
                                    аварию
                                    аварию
Все На
 Все На
devday
devday                       балансировщик


 Проблемы
 Проблемы               Бюджет
                        Бюджет
 С наймом
  С наймом            Сдали вчера
                      Сдали вчера
На самом деле

база
база                                Админ
                         Кэш         Админ
          Вебсервер
          Вебсервер      Кэш        Попал в
                                    Попал в
                                    аварию
                                    аварию
Все На
 Все На
devday
devday                       балансировщик


                                    Почта
                                     Почта
 Проблемы
 Проблемы               Бюджет
                        Бюджет      лежит
                                    лежит
 С наймом
  С наймом            Сдали вчера
                      Сдали вчера
На самом деле

база
база                                Админ
                         Кэш         Админ
          Вебсервер
          Вебсервер      Кэш        Попал в
                                    Попал в
                                    аварию
                                    аварию
Все На
 Все На       Маркетинг
              Маркетинг
devday
devday                       балансировщик
               Написал
               Написал
               статью
                статью
                                    Почта
                                     Почта
 Проблемы
 Проблемы               Бюджет
                        Бюджет      лежит
                                    лежит
 С наймом
  С наймом            Сдали вчера
                      Сдали вчера
На самом деле

база
база                                Админ
                         Кэш         Админ
          Вебсервер
          Вебсервер      Кэш        Попал в
                                    Попал в
                                    аварию
                                    аварию
Все На
 Все На       Маркетинг
              Маркетинг
devday
devday                       балансировщик
               Написал
               Написал
               статью
                статью
                                    Почта
                                     Почта
 Проблемы
 Проблемы               Бюджет
                        Бюджет      лежит
                                    лежит
 С наймом
  С наймом            Сдали вчера
                      Сдали вчера
Первопричины создаются,
А не находятся
Нет первопричин, есть лишь
мНого благоприятствующих
Ошибке факторов
Человеческий фактор ЭТО
Не пЕРВОПричина,
а побочный эффект
Функциональный
   резонанс



   Маркетинг
   Маркетинг
    Написал
    Написал
    статью
     статью
Функциональный
   резонанс




         балансировщик
0. Контекст
1. как?
2. почему?
3. что делать?
Превентивные меры
Превентивные меры



Прогнозирование | чего ждать?
Превентивные меры



Прогнозирование | чего ждать?
Мониторинг | куда смотреть?
Превентивные меры



Прогнозирование | чего ждать?
Мониторинг | куда смотреть?

Ответные меры | что делать?
Превентивные меры



Прогнозирование | чего ждать?
Мониторинг | куда смотреть?

Ответные меры | что делать?
обучение | что это было?
Превентивные меры



Прогнозирование | чего ждать?
Мониторинг | куда смотреть?

Ответные меры | что делать?
обучение | что это было?
Пример



9 успешных релизов
1 неудачный релиз
Тезис #1



Ошибка это...
Частный случай успеха
Разбираем ошибки
Масштабируем на все релизы




              1 случай из 10
Тезис #2



успех это...
Частный случай ошибки
Разбираем успехи
Масштабируем на все релизы




             9 случаев из 10
Учиться на ошибках


        +
Учиться на успехах
Человеческая ошибка
не случайна
Не оправдывать
Человеческой Ошибкой
все подряд
Человеческая ошибка
Прилагается к любой
Сложной системе
Бороться со сложностью
Безопасных систем
Не СУЩЕСТВУЕТ
Изменение на любом уровне
Может породить новые
уязвимости
Понимать как работает
Система На «остром» конце
The End
Sergey.Vyssotski@gmail.com

More Related Content

More from DevDay

«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений ТютюевDevDay
 
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий МузюкинDevDay
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковDevDay
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevDay
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковDevDay
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь КудринDevDay
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил ИльиныхDevDay
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим БерёзкинDevDay
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета АлексеенкоDevDay
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоDevDay
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовDevDay
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя ПономарёвDevDay
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев DevDay
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...DevDay
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья ТаратухинDevDay
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис РечкуновDevDay
 
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»DevDay
 

More from DevDay (20)

«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
 
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей СолодовниковРендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
 
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим ПашукDevops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
 
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий КожевниковInversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
 
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
 
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоМанипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
 
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
 
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев «Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
 
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
 

Анатомия ошибки