26
Высоконагруженный сервис – высоконагруженная служба поддержки. Кондратов Николай Mail.Ru HighLoad++ 2011

Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

  • Upload
    ontico

  • View
    1.130

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

Высоконагруженный сервис –высоконагруженная служба поддержки.

Кондратов НиколайMail.Ru

HighLoad++ 2011

Page 2: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 2

О чем мы?

• Перенос Службы Поддержки в Нижний Новгород (фактически «с нуля»)

• Нагруженный сервис – нагруженная Служба Поддержки

• Аналогия – высоконагруженные системы

• Используем аналогичные принципы и подходы

Page 3: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 3

Жизненный цикл службы.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 4: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 4

Жизненный цикл службы: определение требований.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 5: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 5

Жизненный цикл службы: проектирование архитектуры.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 6: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 6

Жизненный цикл службы: разработка.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 7: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 7

Жизненный цикл службы: отладка.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 8: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 8

Жизненный цикл службы: внедрение.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 9: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 9

Жизненный цикл службы: оптимизация.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 10: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 10

Жизненный цикл службы: мониторинг.

требования

проектирование

разработка

отладка внедрение

оптимизация

мониторинг

Page 11: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 11

Определяем требования

• Нагрузка (не менее 20К писем в день)

• Соответствие метрикам службы

• Масштабируемость

• Отказоустойчивость (без «bottle-neck»-ов)

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

Page 12: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 12

Архитектура: структура службы

• 2-х уровневая структура

• Разделение на группы

• Специализации

1-я линия

Группа «Пароли»

Группа «Веб»

Группа «Abuse»

Группа «Solvers»

2-я линия

60% потока

Page 13: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 13

Архитектура: программные средства. OTRS

Open-source Ticket Request System это:

• Веб-интерфейс

• Переписка собирается в цепочки

• Очереди для различных типов тикетов

• Шаблоны

• Развитые механизмы фильтрации

• Настраиваемые отчеты и мониторинг

• … и много чего еще! http://www.otrs.org/

Page 14: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 14

Архитектура: отказоустойчивость и резервирование

Задача – избавление от «узких мест»:

• Ротация сотрудников

• Резерв людей

• Резерв рабочих мест – 20%

Технические меры:

• Резервирование каналов

• Репликация и бэкапы

Page 15: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 15

Разработка

• Набор и формирование команды

• «Допиливание» OTRS:

• Версия 2.2.6

• Низкая производительность

• Неудобные интерфейсы

• «Незаточенность» под наши процессы

Page 16: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 16

Разработка: переделки OTRS

• Поиск – реализовали на Sphinx

• Ускорение запросов

• Интерфейс реализовали на ajax

• Интеграция с внутренними ИС

• Кеширование

• Отложенные действия и асинхронная работа

• Многопроектность, расписания, автоматические блокировки

• Рейтинги, баллы, ошибки

• Интерфейс «1-й линии»

Page 17: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 17

Внедрение.

• плавный пуск

• поэтапное наращивание нагрузки

• особое внимание параметрам мониторинга на каждом этапе

Page 18: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 18

Оптимизация (на примере интерфейса 1 линии).

• на что смотрели

• трекинг мышки

• анализ частоты операций

• скорость работы интерфейса (загрузки страниц)

• предложения сотрудников

Page 19: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 19

Оптимизация (анализ частоты).

Page 20: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 20

Результаты оптимизации (на примере интерфейса 1 линии).

• по итогам анализа действий и трекинга

• действия с наибольшим весом вынесли наверх

• по итогам измерения скорости интерфейса

• кэширование тикетов

• асинхронная подгрузка и обработка

• полный ajax

• а также

• добавили подсказки в интерфейсе

• отображаем производительность

Page 21: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 21

Мониторинг. Что?

• динамические параметры

• динамика входящего потока по линиям и группам

• динамика состояния очередей

• динамика произведенных операций

• статические показатели

• временные срезы

• суммарные срезы

• статистические срезы

Page 22: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 22

Мониторинг. Как?

• как считаем

• встроились в ORM

• учитываем каждое событие по заявке

• учитываем каждое действие оператора

• как обрабатываем

• графики в реальном времени (graphite)

• отчеты по статическим данным

• уведомления

Page 23: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 23

Мониторинг. Graphite.

Инструмент отображения динамических параметров

• Простой протокол

• Веб-интерфейс

• Развитая клиентская часть

• Поддержка функций обработки данных

• … и много чего еще! http://graphite.wikidot.com/

Page 24: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 24

Что нам все это дало.

• новая служба развернута менее чем за полгода

• служба отвечает всем исходным требованиям

• итеративность подхода позволяет постоянно развиваться

• движемся к Поддержка 2.0 (интеграция служб поддержки смежных проектов)

• а еще…

Page 25: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 25

Очаровательная команда.

Page 26: Высоконагруженный сервис (Николай Кондратов, Дмитрий Чернышев)

HighLoad++ 2011 26

Спасибо. Вопросы?

Кондратов Николай[email protected]