Управление производительностью приложений. Рецепт HPE
Для решения этой задачи Hewlett Packard Enterprise предлагает решение Application Performance Manager (APM). В нем, кроме средств мониторинга приложений всех типов («обычных», облачных, мобильных), присутствует интеграция с компонентами, предназначенными для мониторинга состояния инфраструктуры, в том числе гетерогенной и гибридной. Эти компоненты дают возможность понять, кто и как нагружает информационные системы, с чем связаны проблемы, снижающие производительность приложений, где возникают ошибки.
В состав решения входят программные инструменты для консолидации информации о событиях, а также средства эксплуатационной аналитики, обеспечивающей интеллектуальное выявление и реагирование на события на основе лог-файлов, собранных метрик, событий и т. д. Все эти данные могут быть подвергнуты дальнейшему углубленному анализу, чтобы в наглядном виде визуализировать происходящее в ИТ-системе.
Решение базируется на сервисно-ресурсных моделях (Real-time Service Model, RTSM), которые могут брать информацию как из внешних баз данных управления конфигурациями (Configuration Management Database, CMDB), например HPE Universal CMDB, так и из СУБД, встроенной в само решение.
Два взгляда на приложения: RUM и BPM
Для того чтобы обеспечить качественную работу программных решений, необходимо понять, как то или иное приложение воспринимается пользователем с точки зрения доступности, скорости работы и т. д. В HPE APM есть два основных компонента, предназначенных для этого.
Первый — Real User Monitor (RUM). Он позволяет «прослушивать» трафик между пользователем и приложением, а также между приложениями, входящими в какой-либо сервис, например между сервером приложений и базой данных. Анализируя трафик, мы можем понять, кто подключается в систему, нет ли паразитных подключений, каково время отклика приложений и сервера, насколько велик объем передаваемых данных.
Второй компонент, Business Process Monitor (BPM), позволяет осуществлять эмуляцию деятельности пользователей с помощью скриптов протокольного и интерфейсного уровней.
Система «глазами пользователя»
Модуль RUM в целом работает аналогично сниферу, но собирать весь трафик ему не нужно. В настройках компонента можно указать, трафик какого рода интересует нас в каждом конкретном случае — в зависимости от того, что является объектом изучения.
Есть несколько сценариев использования RUM. Во-первых, он может размещаться на специализированном устройстве, которое ставится в разрыв сети и анализирует идущий через него трафик. Второй вариант — зеркалировать трафик на устройство с RUM, в этом случае его влияние на работу объекта изучения существенно меньше.
Если эти способы не подходят по каким-либо соображениям, то есть и третий вариант: на серверную платформу ставится программный модуль (Plug-in), который просматривает интересующий трафик.
Real User Monitor поддерживает работу с широким спектром клиентских рабочих мест: ПК, тонких клиентов, мобильных устройств. Велик и набор поддерживаемых протоколов — это и различные HTTP-протоколы, протоколы SOA, почтовые, серверов приложений, баз данных, сетевые, протоколы для ряда специализированных устройств, например банкоматов.
В режиме эмуляции
При изучении работы приложений с помощью Business Process Monitor нагрузку от реальных пользователей эмулируют посредством скриптов, которые распределяются по «пробникам» — программным компонентам, установленным на отдельные компьютеры, находящиеся как во внутренних сегментах сети, так и «снаружи». В последнем случае проходящее можно оценить с точки зрения не только внутренних пользователей, но и внешних провайдеров услуг или клиентов, которым предоставляется доступ в корпоративную сеть.
После распределения скриптов начинается процесс мониторинга, выполняется эмуляция обращений к ресурсам на протокольном или интерфейсном уровне, а в базу данных записываются результаты этих обращений. Последние могут визуализироваться в зависимости от цели исследования, например в виде карт с указанием расположения отслеживаемых пользователей, гистограмм с отображением хода транзакций и описанием характера проблем, если таковые возникли, круговых диаграмм со статистикой ошибок за выбранный временной интервал.
Тестирование с помощью скриптов ведется в рамках концепции DevOps, предполагающей тесное сотрудничество разработчиков и тестировщиков со службой эксплуатации, что позволяет гораздо быстрее находить ошибки и совершенствовать ПО.
Оптимальный способ контроля производительности состоит в совместном использовании и RUM, и BPM, поскольку сравнение результатов тестов двумя способами может дать важную информацию о происходящем в ИТ-системе и позволит устранить негативные явления еще до того, как они окажут воздействие на работу пользователей.
Серверы и сети
Кроме поведения пользователей, необходимо, как уже говорилось, изучать и процессы, происходящие на уровне инфраструктуры. Для этого HPE предлагает Diagnostics — решение, позволяющее понять, какую активность на серверах приложений вызывает деятельность пользователей. С серверов, построенных на технологиях .Net, Java и Python, информация собирается через программных агентов, встраивающихся в технологию, на которой работает приложение (при этом менять что-то в самом приложении не требуется), а с ряда других серверов (SAP, SQL Server, IBM WebSphere MQ) — с помощью безагентского решения Diagnostics Collector.
Средства визуализации Diagnostics позволяют наглядно представить детальную топологическую схему информационных потоков, процессы информационного взаимодействия между пользователями и серверами приложений или баз данных, а также между самими системами. Эти данные могут быть полезны и при мониторинге — иногда приложение «тормозит» не по своей вине, а потому, что сервер, на котором оно расположено, слишком загружен другими операциями.
RUM, BPM и Diagnostics могут работать вместе со средствами функционального и нагрузочного тестирования ALM. При этом появляется обратная связь с тестировщиками, а скриптовые наработки последних передаются в систему мониторинга для последующего использования. И наоборот, RUM способен создать скрипт, реально отображающий происходящее в рабочей среде. Это дает возможность при тестировании задавать правильные нагрузки для приложения, которое должно быть инсталлировано в систему.
Кроме того, RUM является дополнительным источником информации для баз данных управления конфигурациями: он позволяет обнаружить «неучтенные» ранее протоколы, открытые порты и т. д., которые используют приложения в ходе работы.
Также не надо забывать, что все процессы в ИТ-системе идут через сети. Поэтому для оценки работоспособности приложения необходимо уделять достаточное внимание мониторингу работы сети. Посредством интеграции данных от HPE Network Node Manager с Real User Monitor или Business Process Monitor можно посмотреть, какие именно сетевые устройства стоят на пути трафика от того или иного приложения к пользователю — реальному или эмулированному, и в случае торможения или недоступности приложения понять, влияет ли на это сеть.
Анализируй всё и всегда
Чтобы получить максимально точные данные о состоянии ИТ-инфраструктуры, HPE предлагает собирать всю информацию, поступающую от приложений, сети, серверов и других устройств, в СУБД Vertica, предназначенную для работы с Большими данными, и анализировать её при помощи HPE Operation Analitics. Этот анализ дает не только полную картину происходящего в ИТ-системе, но и прогнозы относительно развития событий, позволяет выявить аномалии в поведении тех или иных компонентов системы, и узнать о неизвестных ранее проблемах.
Полученную информацию можно визуализировать с помощью HPE Business Value Dashboard — средства для создания индивидуальных консолей, позволяющих настраивать их с учетом выполняемых сотрудниками задач и определенных для них уровней в иерархии управления.
Недавно вышла новая версия APM — 9.3. В ней обновлены некоторые интерфейсы, а также добавилась поддержка ряда протоколов и новых версий браузеров, в частности Microsoft Edge (хотя и неполная из-за особенностей этой программы).
Георгий Токаев, технический консультант Департамента программных решений НРЕ в России