Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,381 views

Published on

  • Be the first to comment

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

  1. 1. Высоконагруженный сервис – высоконагруженная служба поддержки.<br />Кондратов НиколайMail.Ru<br />HighLoad++ 2011<br />
  2. 2. О чем мы?<br /><ul><li>Перенос Службы Поддержки в Нижний Новгород (фактически «с нуля»)
  3. 3. Нагруженный сервис – нагруженная Служба Поддержки
  4. 4. Аналогия – высоконагруженные системы
  5. 5. Используем аналогичные принципы и подходы</li></ul>HighLoad++ 2011<br />2<br />
  6. 6. Жизненный цикл службы.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />3<br />
  7. 7. Жизненный цикл службы: определение требований.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />4<br />
  8. 8. Жизненный цикл службы: проектирование архитектуры.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />5<br />
  9. 9. Жизненный цикл службы: разработка.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />6<br />
  10. 10. Жизненный цикл службы: отладка.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />7<br />
  11. 11. Жизненный цикл службы: внедрение.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />8<br />
  12. 12. Жизненный цикл службы: оптимизация.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />9<br />
  13. 13. Жизненный цикл службы: мониторинг.<br />требования<br />мониторинг<br />проектирование<br />оптимизация<br />разработка<br />внедрение<br />отладка<br />HighLoad++ 2011<br />10<br />
  14. 14. Определяем требования<br /><ul><li>Нагрузка (не менее 20К писем в день)
  15. 15. Соответствие метрикам службы
  16. 16. Масштабируемость
  17. 17. Отказоустойчивость (без «bottle-neck»-ов)
  18. 18. Резервирование</li></ul>HighLoad++ 2011<br />11<br />
  19. 19. Архитектура: структура службы<br /><ul><li>2-х уровневая структура
  20. 20. Разделение на группы
  21. 21. Специализации</li></ul>60% потока <br />1-я линия<br />2-я линия<br />Группа «Пароли»<br />Группа «Веб»<br />Группа «Abuse»<br />Группа «Solvers»<br />HighLoad++ 2011<br />12<br />
  22. 22. Архитектура: программные средства. OTRS<br />Open-source Ticket Request System это:<br /><ul><li>Веб-интерфейс
  23. 23. Переписка собирается в цепочки
  24. 24. Очереди для различных типов тикетов
  25. 25. Шаблоны
  26. 26. Развитые механизмы фильтрации
  27. 27. Настраиваемые отчеты и мониторинг
  28. 28. … и много чего еще! http://www.otrs.org/</li></ul>HighLoad++ 2011<br />13<br />
  29. 29. Архитектура: отказоустойчивость и резервирование<br />Задача – избавление от «узких мест»:<br /><ul><li>Ротация сотрудников
  30. 30. Резерв людей
  31. 31. Резерв рабочих мест – 20% </li></ul>Технические меры:<br /><ul><li>Резервирование каналов
  32. 32. Репликация и бэкапы</li></ul>HighLoad++ 2011<br />14<br />
  33. 33. Разработка<br /><ul><li>Набор и формирование команды
  34. 34. «Допиливание» OTRS:
  35. 35. Версия 2.2.6
  36. 36. Низкая производительность
  37. 37. Неудобные интерфейсы
  38. 38. «Незаточенность» под наши процессы</li></ul>HighLoad++ 2011<br />15<br />
  39. 39. Разработка: переделки OTRS<br /><ul><li>Поиск – реализовали на Sphinx
  40. 40. Ускорение запросов
  41. 41. Интерфейс реализовали на ajax
  42. 42. Интеграция с внутренними ИС
  43. 43. Кеширование
  44. 44. Отложенные действия и асинхронная работа
  45. 45. Многопроектность, расписания, автоматические блокировки
  46. 46. Рейтинги, баллы, ошибки
  47. 47. Интерфейс «1-й линии»</li></ul>HighLoad++ 2011<br />16<br />
  48. 48. Внедрение.<br /><ul><li>плавный пуск
  49. 49. поэтапное наращивание нагрузки
  50. 50. особое внимание параметрам мониторинга на каждом этапе</li></ul>HighLoad++ 2011<br />17<br />
  51. 51. Оптимизация (на примере интерфейса 1 линии).<br /><ul><li>на что смотрели
  52. 52. трекингмышки
  53. 53. анализ частоты операций
  54. 54. скорость работы интерфейса (загрузки страниц)
  55. 55. предложения сотрудников</li></ul>HighLoad++ 2011<br />18<br />
  56. 56. Оптимизация (анализ частоты).<br />HighLoad++ 2011<br />19<br />
  57. 57. Результаты оптимизации (на примере интерфейса 1 линии).<br /><ul><li>по итогам анализа действий и трекинга
  58. 58. действия с наибольшим весом вынесли наверх
  59. 59. по итогам измерения скорости интерфейса
  60. 60. кэширование тикетов
  61. 61. асинхроннаяподгрузка и обработка
  62. 62. полный ajax
  63. 63. а также
  64. 64. добавили подсказки в интерфейсе
  65. 65. отображаем производительность</li></ul>HighLoad++ 2011<br />20<br />
  66. 66. Мониторинг. Что? <br /><ul><li>динамические параметры
  67. 67. динамика входящего потока по линиям и группам
  68. 68. динамика состояния очередей
  69. 69. динамика произведенных операций
  70. 70. статические показатели
  71. 71. временные срезы
  72. 72. суммарные срезы
  73. 73. статистические срезы</li></ul>HighLoad++ 2011<br />21<br />
  74. 74. Мониторинг. Как? <br /><ul><li>как считаем
  75. 75. встроились в ORM
  76. 76. учитываем каждое событие по заявке
  77. 77. учитываем каждое действие оператора
  78. 78. как обрабатываем
  79. 79. графики в реальном времени (graphite)
  80. 80. отчеты по статическим данным
  81. 81. уведомления</li></ul>HighLoad++ 2011<br />22<br />
  82. 82. Мониторинг. Graphite.<br />Инструмент отображения динамических параметров<br /><ul><li>Простой протокол
  83. 83. Веб-интерфейс
  84. 84. Развитая клиентская часть
  85. 85. Поддержка функций обработки данных
  86. 86. … и много чего еще! http://graphite.wikidot.com/</li></ul>HighLoad++ 2011<br />23<br />
  87. 87. Что нам все это дало.<br /><ul><li>новая служба развернута менее чем за полгода
  88. 88. служба отвечает всем исходным требованиям
  89. 89. итеративность подхода позволяет постоянно развиваться
  90. 90. движемся к Поддержка 2.0 (интеграция служб поддержки смежных проектов)
  91. 91. а еще…</li></ul>HighLoad++ 2011<br />24<br />
  92. 92. Очаровательная команда.<br />HighLoad++ 2011<br />25<br />
  93. 93. Спасибо. Вопросы?<br />Кондратов Николай<br />kondratov@corp.mail.ru <br />HighLoad++ 2011<br />26<br />

×