Тестирование аварий. Андрей Губа. highload++ 2015

Post on 13-Apr-2017

2.902 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Тестирование аварий

Андрей Губа

О себе •  В IT 15 лет

•  В Одноклассниках с 2008 года

•  Системный администратор

–  Руководитель отдела

–  Deputy CTO

•  Системное Администрирование

API, Платформа

Информационная безопасность

Одноклассники в цифрах

0  

10  

20  

30  

40  

50  

2010   2011   2012   2013   2014   2015  

Уники, млн/сут

Одноклассники в цифрах

0  1000  2000  3000  4000  5000  6000  7000  8000  

2010   2011   2012   2013   2014   2015  

Серверов

Одноклассники в цифрах

0  

200  

400  

600  

800  

1000  

1200  

2010   2011   2012   2013   2014   2015  

Трафик, Гбит/cек

Авария в WEB проекте

Умер web сервер

Отказала «главная база»

Пропало электричество во втором ДЦ

Пропала сеть в основном ДЦ

jabber сервера с нами больше нет

Главный админ вне досягаемости

Пятница, вечер

Авария 04.04.2013 hIp://habrahabr.ru/p/268413/

Инциденты с эффектом для пользователей

2010   2011   2012   2013   2014   2015  

Инциденты/месяц   Уники/день  

45  млн  

13  млн  

16  

84  

Оперативный мониторинг

Железо и инфраструктура

Приложения

Активность пользователей

Оперативный мониторинг. Проблемы

Новое оборудование

Новая операционная система

Много информации! Сложно!

Оперативный мониторинг Решение

Семафоры

Smart Monitoring

Обнаруживает аномалии на графиках

Показывает причинно-следственную связь между найденными аномалиями

Создает и оформляет тикеты

Графики использования ресурсов

Всё продакшн оборудование Автоматически Диски, память, трафик … Java heap, GC … 2.7 млн метрик

ПОПП — Проверка операционных показателей и прогнозирование

Резервирование

Диски в райд массиве Резервный интернет канал Реплика базы данных Множество серверов одного типа в кластере.

Резервирование

MS SQL, HP Быстро реагируем –> Не всегда помогает

Резервирование

Надежное железо тоже отказывает 1 сервер = раз в 3 года 200 серверов = раз в неделю 2000 серверов > раз в день

Приложения должны обрабатывать аварийные ситуации: Отказ Замедление Возвращение в работу Старт без связанных сервисов

Резервирование

Управляемая деградация

Отключение сервиса

Горилла и Годзилла Тестирование аварийных сценариев в приложениях, сервисах … ДЦ

Резервирование

Все данные должны иметь копии в разных дата-центрах

Все данные должны иметь копии в разных дата-центрах

Все данные должны иметь копии в разных дата-центрах

Все данные должны иметь копии в разных дата-центрах

Проект должен работать в случае отказа любого дата-центра!

Резервирование. Сложности

Приложения не готовы. Нужно переписать код. Приложений много!

Нет готовых технических решений. Нужно внедрять!

Не хватает людей

Рабочие инструменты

Доступ

Рабочие инструменты

Аварийный доступ

Рабочие инструменты

Системы управления Надежность

Системы мониторинга Надежность Точность

Документация

Описание сервиса Схема Настройка Решение типичных проблем Achtung!

План действий при аварии Чеклист для команды мониторинга: Оповещение дежурного Сообщение в рабочие чаты Создание аварийного чата Способы оповещения Мобилизация нужных команд Оповещение:

руководителей, менеджеров, партнеров

План действий при аварии

Распределение ролей и ответственности: Оценка масштаба Координатор Составление оперативного плана Предоставление доступов Координация работ в отдельном ДЦ Перенятие ролей Разбор аварии

План действий при аварии

Чеклист по восстановлению сервисов: Приоритезированный список Ссылки на инструкции и инструменты Как проверять Что делать, если что-то пошло не так Тестирование

План действий при аварии

Отдельная инструкция для человека, выполняющего роль координатора: Распределять задачи Контролировать Делегировать Обновлять оперативный план Информировать

План действий при аварии

Отдельная инструкция на случай падения дата-центра: Вывод трафика Ввод трафика Контроль

План действий при аварии

Регламент взаимодействия с партнёрами: Список контактов Способы коммуникации Уровни взаимодействия:

Информационный Мобилизационный Рабочая группа

Распределение ролей

Тестирование плана

Раз в квартал Разный координатор Сценарий Коллеги из других команд Фиксирование проблем Задачи на исправление

Сами аварии – это тоже тестирование!

Регистрируем Время (начало, завершение)

Скорость оповещения Эффект Хронология Суть проблемы Обновляем в процессе Результаты разбора Задачи на исправление

Коротко о главном

Мониторинг Резервирование Рабочие инструменты План действий при аварии Тестирование аварий

Спасибо за внимание!

hIp://habrahabr.ru/company/odnoklassniki/blog/

andrey.guba@ok.ru

top related