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.
Эволюция системы логирования интеграционного ПО.
Сокращаем время сбора и анализа логов в 9 раз.
Черятов Кирилл
МТС ИТ
kche...
Проблемы. Сложность сбора логов.
Логи сгруппированы по
модулям/системам, а не по бизнес-
процессам.
В случае FORIS количес...
Проблемы. Сложность сбора логов.
• Невозможно выделить логи,
относящиеся к конкретному
тестовому сценарию.
• Для сбора лог...
Проблемы. Пинг-понг багов.
из письма 2013 года
…Наблюдаю пинг-понг в подавляющем большинстве багов…
Этап 1. Пользовательская история.
Я, как инженер группы тестирования, хочу
собирать все необходимые разработке логи
тестов...
Этап 1. Название системы.
Central Logging
Этап 1. Идея.
Этап 1. Реализация. Идентификатор сессии.
Если сессия еще не создана, то она создается при
первой попытке записи лога. Иде...
Этап 1. Реализация. Сбор логов.
Для сбора логов разработан log4net appender, WCF
служба для группировки, сжатия и записи л...
Этап 1. Реализация.
Этап 1. Реализация. Поиск логов.
Для поиска логов разработано WPF приложение. Тиражируется с
помощью ClickOnce.
Этап 1. Реализация. Поиск логов.
Этап 1. Реализация. Средства для анализа логов.
Контекстный поиск, навигация по результатам поиска.
Этап 1. Внедрение.
Внедрение проходило несколько этапов:
• Proof на небольшой группе тестирования.
• Отдали в эксплуатацию...
Этап 1. Результаты.
• Термин «пинг-понг багов» безнадежно устарел и
перестал употребляться.
• Оценка сокращения временных ...
Сокращаем время сбора и анализа логов в 9 раз.
Название БП c CL без CL
Продажа
контракта
5 45
Этап 1. Результаты. Затраты на 1 баг -30%.
На один баг:
Testing (Test) — 1 час
Testing (Creation) — 15 мин сбор логов
Inte...
Этап 2.
Я, как инженер технической поддержки,
тоже хочу иметь возможность собрать логи
выполнения бизнес-процесса на проду...
Этап 2. Отличия от этапа 1.
Тестовый стенд:
1-30 серверов БЛ,
несколько тысяч БП.
Продуктив:
300 серверов БЛ,
50 млн. БП в...
Этап 2. Идея.
Модуль фильтрации логов
Этап 2. Реализация.
Модуль фильтрации состоит из 3 элементов:
• Метод, который применяет фильтры к логам.
• Таймер, которы...
Этап 2. Реализация.
Этап 2. Реализация. Типы фильтров.
• Логин оператора,
• Временной интервал,
• Тип бизнес-процесса,
• Абонент
Этап 2. Внедрение.
Система развернута и эксплуатируется на
продуктиве.
Для ряда интеграционных проблем CL позволяет
ускори...
Этап 3.
Я, как разработчик, хочу в результатах
запуска интеграционных автотестов видеть логи
бизнес-процесса, который запу...
Этап 3. Идея.
Позволяем помечать сессии
атрибутами,
реализуем службу,
которая ищет сессии
по заданным атрибутам.
Этап 3. Реализация.
Этап 3. Внедрение.
О том, что в итоге получилось, чуть позже
расскажет Павел Бирюков.
Этап 4.
Я, как представитель разработки системы, которая
интегрируется с FORIS, хочу получить возможность
писать логи в CL.
FORIS
SCP НКИП
COCAT
BSSmBP
BMS
Этап 4.
Этап 4. Реализация.
Добавили еще 1 интерфейс для записи логов в CL –
RabbitMQ.
(асинхронное взаимодействие, кроссплатформе...
Этап 4. Внедрение.
Внедрено в рамках задачи интеграции с
платформой SMBP (unix, c++, java)
В процессе внедрения в online п...
Подведем итоги.
• Сократили календарь исправления бага за счет
сокращения количества ретестов и сбора логов.
• Сократили т...
Спасибо.
Черятов Кирилл
МТС ИТ
kcheryatov@gmail.com
Upcoming SlideShare
Loading in …5
×

Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем время сбора и анализа логов в 9 раз

249 views

Published on

Автоматизация бизнес-процессов часто подразумевает интеграцию большого количества IT систем. При производстве такого ПО серьезной проблемой является сбор и анализ логов систем. Эта проблема актуальная и для системы FORIS, которая поддерживает бизнес МТС.

Мы разберем проблемы, которые подтолкнули к разработке системы Central Logging, обозначим решение этих проблем, узнаем, какое отношение имеет игра пинг-понг к разработке программного обеспечения, а так же, как Central Logging помогла нам меньше играть в пинг-понг и больше времени тратить на разработку новых задач для заказчика.

Published in: Business
  • Be the first to comment

  • Be the first to like this

Кирилл Черятов. Эволюция системы логирования интеграционного ПО. Сокращаем время сбора и анализа логов в 9 раз

  1. 1. Эволюция системы логирования интеграционного ПО. Сокращаем время сбора и анализа логов в 9 раз. Черятов Кирилл МТС ИТ kcheryatov@gmail.com
  2. 2. Проблемы. Сложность сбора логов. Логи сгруппированы по модулям/системам, а не по бизнес- процессам. В случае FORIS количество папок с логами ~ 300.
  3. 3. Проблемы. Сложность сбора логов. • Невозможно выделить логи, относящиеся к конкретному тестовому сценарию. • Для сбора логов нужно знать, какие модули вызываются при выполнении бизнес-процесса.
  4. 4. Проблемы. Пинг-понг багов. из письма 2013 года …Наблюдаю пинг-понг в подавляющем большинстве багов…
  5. 5. Этап 1. Пользовательская история. Я, как инженер группы тестирования, хочу собирать все необходимые разработке логи тестового сценария, не зная подробностей о реализации модулей.
  6. 6. Этап 1. Название системы. Central Logging
  7. 7. Этап 1. Идея.
  8. 8. Этап 1. Реализация. Идентификатор сессии. Если сессия еще не создана, то она создается при первой попытке записи лога. Идентификатор сессии – GUID. Транспорт: WCF/Soap headers, BPM context, .net CallContext.
  9. 9. Этап 1. Реализация. Сбор логов. Для сбора логов разработан log4net appender, WCF служба для группировки, сжатия и записи логов. Хранилище логов - DB Oracle.
  10. 10. Этап 1. Реализация.
  11. 11. Этап 1. Реализация. Поиск логов. Для поиска логов разработано WPF приложение. Тиражируется с помощью ClickOnce.
  12. 12. Этап 1. Реализация. Поиск логов.
  13. 13. Этап 1. Реализация. Средства для анализа логов. Контекстный поиск, навигация по результатам поиска.
  14. 14. Этап 1. Внедрение. Внедрение проходило несколько этапов: • Proof на небольшой группе тестирования. • Отдали в эксплуатацию в аутсорсную команду тестирования (~30 человек). • CL – стал стандартным инструментом для поиска логов для большинства UC. В баге не приложены логи CL – баг возвращается в тестирование с просьбой приложить логи.
  15. 15. Этап 1. Результаты. • Термин «пинг-понг багов» безнадежно устарел и перестал употребляться. • Оценка сокращения временных затрат по результатам тестовой эксплуатации Название БП Поиск логов с CL Поиск логов без CL Смена ТП 5 30 Продажа контракта 5 45 ДУУ 5 15 Заказ документов 5 20 Расторжение контракта 5 25 Объединение ЛС 5 25
  16. 16. Сокращаем время сбора и анализа логов в 9 раз. Название БП c CL без CL Продажа контракта 5 45
  17. 17. Этап 1. Результаты. Затраты на 1 баг -30%. На один баг: Testing (Test) — 1 час Testing (Creation) — 15 мин сбор логов Integration (Localization) — 15 мин изучения стенда и логов 50% Testing (Add Logs) — 15 мин досбор других логов 50% Integration (Localization) — 15 мин изучения стенда и логов Dev Team 1 (Localization) — 15 мин изучение логов 30% Testing (Add Logs) — 15 мин сбор логов (если удалились, то ретест) Dev Team 1 (Localization) — 15 мин изучение логов 30% Dev Team 2 (Localization) — 15 мин изучение логов Testing (Retest + Add Logs) — 1 час на ретест (уже точно удалились) + сбор логов Dev Team 1 или 2 (Fix) — 2 часа на исправление Testing (Retest) – 1 час
  18. 18. Этап 2. Я, как инженер технической поддержки, тоже хочу иметь возможность собрать логи выполнения бизнес-процесса на продуктиве, без перенастройки модулей, рестарта служб, существенного увеличения нагрузки на сервер.
  19. 19. Этап 2. Отличия от этапа 1. Тестовый стенд: 1-30 серверов БЛ, несколько тысяч БП. Продуктив: 300 серверов БЛ, 50 млн. БП в сутки.
  20. 20. Этап 2. Идея. Модуль фильтрации логов
  21. 21. Этап 2. Реализация. Модуль фильтрации состоит из 3 элементов: • Метод, который применяет фильтры к логам. • Таймер, который периодически получает обновленные фильтры • Флаг «пиши логи», который передается аналогично идентификатору сессии, если сработал фильтр.
  22. 22. Этап 2. Реализация.
  23. 23. Этап 2. Реализация. Типы фильтров. • Логин оператора, • Временной интервал, • Тип бизнес-процесса, • Абонент
  24. 24. Этап 2. Внедрение. Система развернута и эксплуатируется на продуктиве. Для ряда интеграционных проблем CL позволяет ускорить локализацию на несколько дней.
  25. 25. Этап 3. Я, как разработчик, хочу в результатах запуска интеграционных автотестов видеть логи бизнес-процесса, который запускался в автотесте.
  26. 26. Этап 3. Идея. Позволяем помечать сессии атрибутами, реализуем службу, которая ищет сессии по заданным атрибутам.
  27. 27. Этап 3. Реализация.
  28. 28. Этап 3. Внедрение. О том, что в итоге получилось, чуть позже расскажет Павел Бирюков.
  29. 29. Этап 4. Я, как представитель разработки системы, которая интегрируется с FORIS, хочу получить возможность писать логи в CL.
  30. 30. FORIS SCP НКИП COCAT BSSmBP BMS Этап 4.
  31. 31. Этап 4. Реализация. Добавили еще 1 интерфейс для записи логов в CL – RabbitMQ. (асинхронное взаимодействие, кроссплатформенный клиент) Как правило, взаимодействие между модулями происходит с помощью SOAP, поэтому идентификатор сессии передается стандартным образом.
  32. 32. Этап 4. Внедрение. Внедрено в рамках задачи интеграции с платформой SMBP (unix, c++, java) В процессе внедрения в online платформу SCP (unix, c++).
  33. 33. Подведем итоги. • Сократили календарь исправления бага за счет сокращения количества ретестов и сбора логов. • Сократили трудоемкость исправления бага ~30%. • Упростили сбор логов для ошибок на продуктиве.
  34. 34. Спасибо. Черятов Кирилл МТС ИТ kcheryatov@gmail.com

×