В области информационных технологий и системного управления управление производительностью приложений ( APM ) — это мониторинг и управление производительностью и доступностью программных приложений. APM стремится обнаруживать и диагностировать сложные проблемы с производительностью приложений для поддержания ожидаемого уровня обслуживания . APM — это «перевод показателей ИТ в бизнес-смысл ([т. е.] ценность)». [1]
Два набора показателей производительности тщательно отслеживаются. Первый набор показателей производительности определяет производительность, которую испытывают конечные пользователи приложения. Одним из примеров производительности является среднее время отклика при пиковой нагрузке. В состав набора входят время загрузки и отклика:
Второй набор показателей производительности измеряет вычислительные ресурсы, используемые приложением для нагрузки, указывая, имеется ли достаточная мощность для поддержки нагрузки, а также возможные места узких мест в производительности. Измерение этих величин устанавливает эмпирическую основу производительности приложения. Затем базовый уровень можно использовать для обнаружения изменений в производительности. Изменения производительности можно коррелировать с внешними событиями и впоследствии использовать для прогнозирования будущих изменений производительности приложений. [3]
Использование APM обычно используется для веб-приложений, что лучше всего подходит для более детальных методов мониторинга. [4] Помимо измерения времени отклика пользователя, можно также отслеживать время отклика компонентов веб-приложения, чтобы помочь точно определить причины задержек. Также существуют устройства HTTP , которые могут декодировать время ответа для конкретной транзакции на уровне веб-сервера приложения.
В своей концептуальной структуре APM компания Gartner Research описывает пять аспектов APM: [5] [6] [7] [8]
В 2016 году Gartner Research обновила свое определение, разделив его на три основных функциональных измерения: [9]
С первой половины 2013 года APM вступила в период острой конкуренции в области технологий и стратегий с участием множества поставщиков и точек зрения. [10] Это вызвало переворот на рынке, когда поставщики из несвязанных между собой областей (включая сетевой мониторинг, [11] системное управление, инструментирование приложений и мониторинг веб-производительности ) стали использовать обмен сообщениями вокруг APM [ какой? ] . В результате термин APM стал размытым и превратился в концепцию управления производительностью приложений на многих различных вычислительных платформах, а не на одном рынке. [ необходимо разъяснение ] [12] При таком большом количестве поставщиков выбор одного может оказаться непростой задачей. Важно тщательно оценить каждый из них, чтобы убедиться, что его возможности соответствуют вашим потребностям. [13]
Две проблемы при внедрении APM: (1) может быть сложно настроить приложение для мониторинга производительности приложения, особенно среди компонентов приложения, и (2) приложения могут быть виртуализированы , что увеличивает вариативность измерений. [14] [15] Чтобы облегчить первую проблему, управление службами приложений (ASM) обеспечивает ориентированный на приложения подход, при котором прозрачность производительности бизнес-услуг является ключевой целью. Второй аспект, присутствующий в распределенных, виртуальных и облачных приложениях, создает уникальную проблему для мониторинга производительности приложений, поскольку большинство ключевых компонентов системы больше не размещаются на одной машине. Каждая функция теперь, скорее всего, будет спроектирована как интернет-служба, работающая на нескольких виртуализированных системах. Сами приложения, скорее всего, будут перемещаться из одной системы в другую, чтобы достичь целей уровня обслуживания и справиться с кратковременными сбоями. [16]
Сами приложениями становится все труднее управлять по мере перехода к высокораспределенным, многоуровневым и многоэлементным конструкциям, которые во многих случаях полагаются на такие среды разработки приложений, как .NET или Java. [17] Концептуальная основа APM была разработана, чтобы помочь расставить приоритеты в подходе к тому, на чем следует сосредоточиться в первую очередь, для быстрого внедрения и общего понимания пятимерной модели APM. На слайде структуры обозначены три области внимания для каждого измерения и описаны их потенциальные выгоды. Эти области ниже обозначены как « Основные », а измерения с более низким приоритетом обозначены как « Вторичные » . [18]
Измерение прохождения трафика от запроса пользователя к данным и обратно является частью сбора данных об опыте конечного пользователя (EUE). [19] Результат этого измерения называется мониторингом приложений в реальном времени (он же нисходящий мониторинг), который состоит из двух компонентов: пассивного и активного. Пассивный мониторинг обычно представляет собой безагентное устройство, реализуемое с использованием зеркалирования сетевых портов . Ключевой особенностью, которую следует учитывать, является возможность поддержки многокомпонентной аналитики (например, базы данных, клиента/браузера). Активный мониторинг , с другой стороны, состоит из синтетических зондов и веб-роботов, предопределенных для сообщения о доступности системы и бизнес-транзакциях. Активный мониторинг является хорошим дополнением к пассивному мониторингу; Вместе эти два компонента помогают обеспечить видимость работоспособности приложений в непиковые часы, когда объем транзакций невелик.
Управление пользовательским опытом (UEM) — это подкатегория, возникшая из измерения EUE для мониторинга поведенческого контекста пользователя. UEM, как это практикуется сегодня, выходит за рамки доступности и фиксирует задержки и несоответствия при взаимодействии людей с приложениями и другими службами. [20] UEM обычно основан на агентах и может включать внедрение JavaScript для мониторинга устройства конечного пользователя. UEM считается еще одним аспектом мониторинга приложений в реальном времени.
Существуют предложения по обнаружению приложений и сопоставлению зависимостей (ADDM) для автоматизации процесса сопоставления транзакций и приложений с базовыми компонентами инфраструктуры. [21] При подготовке к реализации архитектуры приложений во время выполнения необходимо обеспечить наличие мониторинга вверх/вниз для всех узлов и серверов в среде (т.н. мониторинг снизу вверх). Это помогает заложить основу для корреляции событий и дает основу для общего понимания того, как топологии сети взаимодействуют с архитектурой приложений.
Сосредоточьтесь на определяемых пользователем транзакциях или определениях URL-страниц, которые имеют определенное значение для бизнес-сообщества. Например, если для данного приложения существует от 200 до 300 уникальных определений страниц, сгруппируйте их в 8–12 категорий высокого уровня. Это позволяет создавать содержательные отчеты по соглашениям об уровне обслуживания и предоставлять информацию о тенденциях производительности приложений с точки зрения бизнеса: начните с широких категорий и уточняйте их с течением времени. Для более глубокого понимания см. Управление бизнес-транзакциями .
Мониторинг компонентов глубокого погружения (DDCM) требует установки агента и обычно ориентирован на промежуточное программное обеспечение , уделяя особое внимание веб-серверам, приложениям и серверам обмена сообщениями. Он должен обеспечивать просмотр стеков J2EE и .NET в режиме реального времени , связывая их с определяемыми пользователем бизнес-транзакциями. Надежный монитор показывает четкий путь от выполнения кода (например, Spring и Struts) до отображаемого URL-адреса и, наконец, до запроса пользователя. Поскольку DDCM тесно связан со вторым измерением модели APM, большинство продуктов в этой области также предоставляют отображение зависимостей обнаружения приложений (ADDM) как часть своих предложений.
Важно прийти к общему набору показателей для сбора и составления отчетов для каждого приложения, а затем стандартизировать общее представление о том, как представлять данные о производительности приложения. Сбор необработанных данных из других наборов инструментов в модели APM обеспечивает гибкость в составлении отчетов о приложениях. Это позволяет отвечать на широкий спектр вопросов производительности по мере их возникновения, несмотря на разные платформы, на которых может работать каждое приложение. Слишком много информации утомляет. Вот почему важно, чтобы отчеты были простыми, иначе они не будут использоваться. [22]