В 2013 году случилась самая большая авария в истории Одноклассников: в течение трёх дней проект был целиком, а потом частично, неработоспособен. После того, как мы устранили последствия аварии, к нам пришел бизнес со следующим вопросом: какие проблемы видит технический отдел компании и какие варианты защиты может предложить. Сходу мы выделили три основных — взлом хакерами, DDoS-атаки и аварии. Взломы — не в плоскости конференции Highload, про DDoS-атаки — наоборот, рассказывают довольно часто. Поэтому в этом докладе мы поговорим именно про аварии.
Отказ диска или сервера мы давно не считаем аварией — у нас несколько тысяч серверов, и подобные сбои происходят по нескольку раз в день. Среди выделенных нами серьезных отказов — отказ канала связи до дата-центра, сбои электричества, перегрузка какой-то из подсистем, вызванная ростом какой-то активности (в т.ч. эксперименты), ошибка программиста/инженера и другие.
По каждому из перечисленных направлений мы проанализировали риски и провели ряд работ на портале, позволивший нашей системе успешно функционировать в условиях перечисленных выше проблем. Как и в программировании, мы решили, что тестирование — это отличный способ выявлять проблемы на ранних стадиях и ликвидировать их минимальными средствами. В презентации мы расскажем о том, как мы защищаемся от каждой из перечисленных выше угроз и сфокусируемся на техниках эмуляции аварийных ситуаций.
2. О себе
• В IT 15 лет
• В Одноклассниках с 2008 года
• Системный администратор
– Руководитель отдела
– Deputy CTO
• Системное Администрирование
API, Платформа
Информационная безопасность
6. Авария в WEB проекте
Умер web сервер
Отказала «главная база»
Пропало электричество во втором ДЦ
Пропала сеть в основном ДЦ
jabber сервера с нами больше нет
Главный админ вне досягаемости
Пятница, вечер
37. План действий при аварии
Чеклист для команды мониторинга:
Оповещение дежурного
Сообщение в рабочие чаты
Создание аварийного чата
Способы оповещения
Мобилизация нужных команд
Оповещение:
руководителей, менеджеров,
партнеров
38. План действий при аварии
Распределение ролей и ответственности:
Оценка масштаба
Координатор
Составление оперативного плана
Предоставление доступов
Координация работ в отдельном ДЦ
Перенятие ролей
Разбор аварии
39. План действий при аварии
Чеклист по восстановлению сервисов:
Приоритезированный список
Ссылки на инструкции и инструменты
Как проверять
Что делать, если что-то пошло не так
Тестирование
40. План действий при аварии
Отдельная инструкция для человека,
выполняющего роль координатора:
Распределять задачи
Контролировать
Делегировать
Обновлять оперативный план
Информировать
41. План действий при аварии
Отдельная инструкция на случай падения
дата-центра:
Вывод трафика
Ввод трафика
Контроль
42. План действий при аварии
Регламент взаимодействия с партнёрами:
Список контактов
Способы коммуникации
Уровни взаимодействия:
Информационный
Мобилизационный
Рабочая группа
Распределение ролей
43. Тестирование плана
Раз в квартал
Разный координатор
Сценарий
Коллеги из других команд
Фиксирование проблем
Задачи на исправление
44.
45. Сами аварии – это тоже
тестирование!
Регистрируем
Время (начало, завершение)
Скорость оповещения
Эффект
Хронология
Суть проблемы
Обновляем в процессе
Результаты разбора
Задачи на исправление