SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Постмортемы
Юрий Литвиненко
Постмортем?
Постмортем?
• Посмертная фотография (осторожно крипота!)
Постмортем?
• Посмертная фотография (осторожно крипота!)
• ad-hoc ретроспектива
Постмортем?
• Посмертная фотография (осторожно крипота!)
• ad-hoc ретроспектива
• Инвентаризация 

граблей
Постмортем?
• Посмертная фотография (осторожно крипота!)
• ad-hoc ретроспектива
• Инвентаризация 

граблей
Зачем?
Извлечь уроки
• Избежать повторения
• Смягчить последствия
• Быстрее обнаружить в следующий раз
• В идеале - автоматически
Когда
• После любого “инцидента”
• Правило у нас: на каждый Critical или Blocker
• В идеале – сразу как починили, по горячим
следам
Use case
• Приложение сначала стало работать очень
медленно, а потом и вовсе вырубилось.
Проведение
Проведение: онлайн
• Собрались, поговорили, записали
• Удобно если все участники в одном офисе
Проведение: оффлайн
• Кто-то собирает начальную информацию в один
документ
• Рассылает всем кто вовлечен
• Комментарии, уточнения, добавления
• ???
• PROFIT!
Этапы
• Оценка ущерба aka Impact analysis
• Реконструкция событий aka Reconstruction
• Анализ причин aka Root Cause Analysis
• Превентивные меры aka Mitigation aka Remediation
Оценка ущерба
• В деньгах или в KPI
• Прямой, косвенный или потенциальный
• Приблизительная оценка (хотя бы порядок)
• Важно для понимания усилий по
предотвращению в будущем
Оценка ущерба
Примеры
• Конверсия упала на 10%
• 50% пользователей не смогли войти в личный
кабинет
• Пострадала репутация компании
• Команда разработки целый день не могла
пользоваться репозиторием
Оценка ущерба
Use case
• Timeframe: 

14:11 – 15:54 - медленная работа приложения

15:54 – 15:59 - downtime
• Пострадали пользователи, которые пытались
воспользоваться нашим сайтом в этот момент,
особенно в период downtime
• Репутационные потери
• Падение конверсии
Реконструкция
• Перечисление ключевых событий с временными
метками
• Нужно для понимания как быстро среагировали и
решили
• Кто был вовлечен
• Что сделали чтобы починить
Реконструкция
Use Case
14:11
Support engineer reports a 504 Cloudflare issue in the
engineering channel on Slack.
14:20 Ticker of priority Blocker is created
14:21 Infrastructure department notified about the incident
14:25 Support engineer showcases the issue to Infrastructure
guys
14:28
Infrastructure tries to reproduce the issue but gets a File
not found error. Engineering channel reports a deploy was
triggered.
14:37 Deploy is finished
Реконструкция
Use Case (contd.)
14:39
Infrastructure guys continue to investigate the problem after
confirming that deployment is done but application is working really
slow. Slowness confirmed by Support engineer
14:45
Infrastructure verifies that the load on the machines is low despite the
application being slow, discarding machine overload as the source of
the problem.
14:50
Infrastructure verifies that there are hundreds of spurious requests
coming from chinese sites. A firewall rule is added demanding a
challenge for China. Amount of spurious requests falls a bit down but
picks up quickly from other IP addresses.
15:00
Infrastructure starts adding challenge requests to Chinese IPs on all
domains. Engineering team is notified to not perform any deploys if
the environment is not stable.
15:17 Lots of slow requests detected between 2 internal systems.
15:40
The issue is traced to the MongoDB instance which is working really
slow.
Реконструкция
Use Case (contd.)
15:42
A suggestion to drop big unused collections from the
MongoDB instance if any to try and fix the problem.
15:51 2 journaling collections totalling in ~50GB are dropped
15:57
MongoDB performance is still not good. Application is
virtually not accessible as reported by Zabbix. MongoDB
instance is restarted
15:58
 MongoDB instance is back online. Application
performance is back to normal.
16:12
Support engineer confirms that the application is working
as expected. Issue solved.
Анализ причин
• “Повзучий детермінізм”
• 5 “почему”
• Без тыкания пальцем
• Без обвинений
Анализ причин
Use case
• The MongoDB instance for Zend was overloaded
with I/O operations.
• The instance had around 200GB of data but the
data files are using around 900GB.
• MongoDB seems to be having problems
sometimes most likely due to fragmentation.
• The I/O wait was below the threshold of 80% so it
was not detected by the monitoring system.
Превентивные меры
• Что сделать чтобы избежать, смягчить,
среагировать раньше
• Усилия – сопоставимы с ущербом
Превентивные меры
Примеры
• Добавить алерт на конкретный тип ошибки
• Добавить авто/юнит/интеграционные/etc. тесты
• Изменить что-то в процессе
Превентивные меры
Use case
• Block suspicious IPs from accessing the application
• Add another node to the MongoDB setup to fix the data files
problem at an existing host
• then recycle the data files in the existing host
• Engineering must suspend deploys when there are production
issues being investigated in a live environment.
• Lower Zabbix I/O monitoring threshold for MongoDB servers
• Add monitoring template to Zabbix that checks all important
performance indicator from MongoDB instances
Где подвох?
• Очень сложно избежать hindsight bias
• Документ заполняется для галочки
• Воспринимается как наказание
• Внедрять нужно аккуратно
Ссылки
• https://en.wikipedia.org/wiki/Hindsight_bias
• http://www.startuplessonslearned.com/2008/11/
five-whys.html
• Как это делают в Etsy: https://vimeo.com/
77206751
• Инструмент Etsy: https://github.com/etsy/morgue

Contenu connexe

En vedette

Getting Things Done
Getting Things DoneGetting Things Done
Getting Things Donemattw231
 
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech rilufamarrakesh19
 
Photo feature, a tradition of luxury
Photo feature, a tradition of luxuryPhoto feature, a tradition of luxury
Photo feature, a tradition of luxuryArun Khanna
 
A New Case for Software Development
A New Case for Software DevelopmentA New Case for Software Development
A New Case for Software DevelopmentRichard Hiers
 
AdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueAdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueWitold Wrodarczyk
 
The Victorian Period
The Victorian PeriodThe Victorian Period
The Victorian Periodphebeshen
 
2015/12_YinXiang Innovatation Competition
2015/12_YinXiang Innovatation Competition2015/12_YinXiang Innovatation Competition
2015/12_YinXiang Innovatation CompetitionSean Cherng
 
AdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueAdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueWitold Wrodarczyk
 
Budaya, Kreativitas dan Inovasi
Budaya, Kreativitas dan InovasiBudaya, Kreativitas dan Inovasi
Budaya, Kreativitas dan Inovasijurasslides
 
Phụ nữ trên 70 cần khám những bệnh gì
Phụ nữ trên 70 cần khám những bệnh gìPhụ nữ trên 70 cần khám những bệnh gì
Phụ nữ trên 70 cần khám những bệnh gìpablo778
 
Digital Marketing Revolution Adequate Witold Wrodarczyk
Digital Marketing Revolution Adequate Witold Wrodarczyk Digital Marketing Revolution Adequate Witold Wrodarczyk
Digital Marketing Revolution Adequate Witold Wrodarczyk Witold Wrodarczyk
 

En vedette (15)

Getting Things Done
Getting Things DoneGetting Things Done
Getting Things Done
 
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
A Helpful Overview Of Root Elements For Places To Stay In Marrakech
 
Photo feature, a tradition of luxury
Photo feature, a tradition of luxuryPhoto feature, a tradition of luxury
Photo feature, a tradition of luxury
 
Eko syar new
Eko syar newEko syar new
Eko syar new
 
A New Case for Software Development
A New Case for Software DevelopmentA New Case for Software Development
A New Case for Software Development
 
AdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueAdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive Boutique
 
The Victorian Period
The Victorian PeriodThe Victorian Period
The Victorian Period
 
Internship Presentation
Internship PresentationInternship Presentation
Internship Presentation
 
Kepemimpinan
KepemimpinanKepemimpinan
Kepemimpinan
 
2015/12_YinXiang Innovatation Competition
2015/12_YinXiang Innovatation Competition2015/12_YinXiang Innovatation Competition
2015/12_YinXiang Innovatation Competition
 
AdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive BoutiqueAdUniverse 2015 Adequate Interactive Boutique
AdUniverse 2015 Adequate Interactive Boutique
 
Budaya, Kreativitas dan Inovasi
Budaya, Kreativitas dan InovasiBudaya, Kreativitas dan Inovasi
Budaya, Kreativitas dan Inovasi
 
Phụ nữ trên 70 cần khám những bệnh gì
Phụ nữ trên 70 cần khám những bệnh gìPhụ nữ trên 70 cần khám những bệnh gì
Phụ nữ trên 70 cần khám những bệnh gì
 
Digital Marketing Revolution Adequate Witold Wrodarczyk
Digital Marketing Revolution Adequate Witold Wrodarczyk Digital Marketing Revolution Adequate Witold Wrodarczyk
Digital Marketing Revolution Adequate Witold Wrodarczyk
 
Evaluation question 3
Evaluation question 3Evaluation question 3
Evaluation question 3
 

Similaire à "Постмортемы" Ю.Литвиненко

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыYuri Zhloba
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.IT Share
 
Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика ITEM
 
Mobile Monday Kiev#1 - How to save time in Mobile Apps Development
Mobile Monday Kiev#1 - How to save time in Mobile Apps DevelopmentMobile Monday Kiev#1 - How to save time in Mobile Apps Development
Mobile Monday Kiev#1 - How to save time in Mobile Apps DevelopmentIntersog
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеNikolay Sivko
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovRuby Meditation
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложенийAlexander Khozya
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015odnoklassniki.ru
 
5 oleg nikiforov - automating routine tasks for mobile apps testing
5   oleg nikiforov - automating routine tasks for mobile apps testing5   oleg nikiforov - automating routine tasks for mobile apps testing
5 oleg nikiforov - automating routine tasks for mobile apps testingIevgenii Katsan
 
dont badmouth mojo
dont badmouth mojodont badmouth mojo
dont badmouth mojoAnton Ukolov
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Ontico
 
PT ESC - кто полечит доктора?
PT ESC - кто полечит доктора?PT ESC - кто полечит доктора?
PT ESC - кто полечит доктора?Alexey Kachalin
 
ИСО 27001 на практике, или будни внедренца
ИСО 27001 на практике, или будни внедренцаИСО 27001 на практике, или будни внедренца
ИСО 27001 на практике, или будни внедренцаAlexey Evmenkov
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2rit2010
 
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Positive Hack Days
 
Max Lapshin Erlyvideo V1
Max Lapshin Erlyvideo V1Max Lapshin Erlyvideo V1
Max Lapshin Erlyvideo V1guest092df8
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorYandex
 
Вирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииВирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииSQALab
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераCisco Russia
 

Similaire à "Постмортемы" Ю.Литвиненко (20)

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
 
Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика
 
Mobile Monday Kiev#1 - How to save time in Mobile Apps Development
Mobile Monday Kiev#1 - How to save time in Mobile Apps DevelopmentMobile Monday Kiev#1 - How to save time in Mobile Apps Development
Mobile Monday Kiev#1 - How to save time in Mobile Apps Development
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
 
5 oleg nikiforov - automating routine tasks for mobile apps testing
5   oleg nikiforov - automating routine tasks for mobile apps testing5   oleg nikiforov - automating routine tasks for mobile apps testing
5 oleg nikiforov - automating routine tasks for mobile apps testing
 
dont badmouth mojo
dont badmouth mojodont badmouth mojo
dont badmouth mojo
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
 
PT ESC - кто полечит доктора?
PT ESC - кто полечит доктора?PT ESC - кто полечит доктора?
PT ESC - кто полечит доктора?
 
ИСО 27001 на практике, или будни внедренца
ИСО 27001 на практике, или будни внедренцаИСО 27001 на практике, или будни внедренца
ИСО 27001 на практике, или будни внедренца
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2
 
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
Ph days2015 pavel_shodanYet another Shodan или наш опыт создания аналогичной ...
 
Max Lapshin Erlyvideo V1
Max Lapshin Erlyvideo V1Max Lapshin Erlyvideo V1
Max Lapshin Erlyvideo V1
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
 
Вирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииВирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестировании
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 

Plus de Fwdays

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...Fwdays
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil TopchiiFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...Fwdays
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...Fwdays
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...Fwdays
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...Fwdays
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...Fwdays
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...Fwdays
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...Fwdays
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...Fwdays
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra MyronovaFwdays
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...Fwdays
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...Fwdays
 

Plus de Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 

"Постмортемы" Ю.Литвиненко

  • 4. Постмортем? • Посмертная фотография (осторожно крипота!) • ad-hoc ретроспектива
  • 5. Постмортем? • Посмертная фотография (осторожно крипота!) • ad-hoc ретроспектива • Инвентаризация 
 граблей
  • 6. Постмортем? • Посмертная фотография (осторожно крипота!) • ad-hoc ретроспектива • Инвентаризация 
 граблей
  • 7. Зачем? Извлечь уроки • Избежать повторения • Смягчить последствия • Быстрее обнаружить в следующий раз • В идеале - автоматически
  • 8. Когда • После любого “инцидента” • Правило у нас: на каждый Critical или Blocker • В идеале – сразу как починили, по горячим следам
  • 9. Use case • Приложение сначала стало работать очень медленно, а потом и вовсе вырубилось.
  • 11. Проведение: онлайн • Собрались, поговорили, записали • Удобно если все участники в одном офисе
  • 12. Проведение: оффлайн • Кто-то собирает начальную информацию в один документ • Рассылает всем кто вовлечен • Комментарии, уточнения, добавления • ??? • PROFIT!
  • 13. Этапы • Оценка ущерба aka Impact analysis • Реконструкция событий aka Reconstruction • Анализ причин aka Root Cause Analysis • Превентивные меры aka Mitigation aka Remediation
  • 14. Оценка ущерба • В деньгах или в KPI • Прямой, косвенный или потенциальный • Приблизительная оценка (хотя бы порядок) • Важно для понимания усилий по предотвращению в будущем
  • 15. Оценка ущерба Примеры • Конверсия упала на 10% • 50% пользователей не смогли войти в личный кабинет • Пострадала репутация компании • Команда разработки целый день не могла пользоваться репозиторием
  • 16. Оценка ущерба Use case • Timeframe: 
 14:11 – 15:54 - медленная работа приложения
 15:54 – 15:59 - downtime • Пострадали пользователи, которые пытались воспользоваться нашим сайтом в этот момент, особенно в период downtime • Репутационные потери • Падение конверсии
  • 17. Реконструкция • Перечисление ключевых событий с временными метками • Нужно для понимания как быстро среагировали и решили • Кто был вовлечен • Что сделали чтобы починить
  • 18. Реконструкция Use Case 14:11 Support engineer reports a 504 Cloudflare issue in the engineering channel on Slack. 14:20 Ticker of priority Blocker is created 14:21 Infrastructure department notified about the incident 14:25 Support engineer showcases the issue to Infrastructure guys 14:28 Infrastructure tries to reproduce the issue but gets a File not found error. Engineering channel reports a deploy was triggered. 14:37 Deploy is finished
  • 19. Реконструкция Use Case (contd.) 14:39 Infrastructure guys continue to investigate the problem after confirming that deployment is done but application is working really slow. Slowness confirmed by Support engineer 14:45 Infrastructure verifies that the load on the machines is low despite the application being slow, discarding machine overload as the source of the problem. 14:50 Infrastructure verifies that there are hundreds of spurious requests coming from chinese sites. A firewall rule is added demanding a challenge for China. Amount of spurious requests falls a bit down but picks up quickly from other IP addresses. 15:00 Infrastructure starts adding challenge requests to Chinese IPs on all domains. Engineering team is notified to not perform any deploys if the environment is not stable. 15:17 Lots of slow requests detected between 2 internal systems. 15:40 The issue is traced to the MongoDB instance which is working really slow.
  • 20. Реконструкция Use Case (contd.) 15:42 A suggestion to drop big unused collections from the MongoDB instance if any to try and fix the problem. 15:51 2 journaling collections totalling in ~50GB are dropped 15:57 MongoDB performance is still not good. Application is virtually not accessible as reported by Zabbix. MongoDB instance is restarted 15:58  MongoDB instance is back online. Application performance is back to normal. 16:12 Support engineer confirms that the application is working as expected. Issue solved.
  • 21. Анализ причин • “Повзучий детермінізм” • 5 “почему” • Без тыкания пальцем • Без обвинений
  • 22. Анализ причин Use case • The MongoDB instance for Zend was overloaded with I/O operations. • The instance had around 200GB of data but the data files are using around 900GB. • MongoDB seems to be having problems sometimes most likely due to fragmentation. • The I/O wait was below the threshold of 80% so it was not detected by the monitoring system.
  • 23. Превентивные меры • Что сделать чтобы избежать, смягчить, среагировать раньше • Усилия – сопоставимы с ущербом
  • 24. Превентивные меры Примеры • Добавить алерт на конкретный тип ошибки • Добавить авто/юнит/интеграционные/etc. тесты • Изменить что-то в процессе
  • 25. Превентивные меры Use case • Block suspicious IPs from accessing the application • Add another node to the MongoDB setup to fix the data files problem at an existing host • then recycle the data files in the existing host • Engineering must suspend deploys when there are production issues being investigated in a live environment. • Lower Zabbix I/O monitoring threshold for MongoDB servers • Add monitoring template to Zabbix that checks all important performance indicator from MongoDB instances
  • 26. Где подвох? • Очень сложно избежать hindsight bias • Документ заполняется для галочки • Воспринимается как наказание • Внедрять нужно аккуратно
  • 27. Ссылки • https://en.wikipedia.org/wiki/Hindsight_bias • http://www.startuplessonslearned.com/2008/11/ five-whys.html • Как это делают в Etsy: https://vimeo.com/ 77206751 • Инструмент Etsy: https://github.com/etsy/morgue