Анализ использования приложений. Информация, необходимая всем разработчикам
Себастиан Холст отвечает за стратегию в отношении продуктов и рыночную стратегию PreEmptive Solutions с основным вниманием на аналитику и обеспечение безопасности приложений. Помимо создания программного обеспечения, Себастиан активно участвует в разработке стандартов вычислительных технологи и отраслевых стандартов в качестве члена Совещательного комитета консорциума W3C, комитетов MMA по конфиденциальности и аналитике, а также является соучредителем Консорциума по соответствию нормативам. Помимо этого, Себастиан ведет блог Приложения — тоже люди, в котором проводит параллели между людьми, программами и культурой и рассказывает о связанных с ними иррациональных страхах. В свободное время он разрабатывает приложения для мобильных устройств и помогает учащимся средней школы создавать собственные разработки в этой сфере.
Июль 2012
Себастиан Холст рассматривает задачи и преимущества аналитики приложений.
Применение
Управление жизненным циклом приложения, Visual Studio 2013, Team Foundation Server
Visual Studio 2012 and Application Analytics
Представьте себе, насколько эффективнее действовали бы ваши разработчики, если бы им не пришлось гадать, какие функции применяют пользователи, а какие можно убрать без ущерба для производительности. Насколько повысилась бы удовлетворенность пользователей, если бы вы получали данные об исключениях, тесно связанные с контекстом использования, прежде чем у пользователей возникло желание отправить жалобу? Насколько выше стало бы качество вашего ПО, если бы ваши планы по тестированию соответствовали фактическим шаблонам использования и предпочтениям пользователей в отношении вашей продукции? Аналитик приложений — это вид аналитики, специально разработанный для реализации таких сценариев, чтобы удовлетворить "личные интересы" участников проекта по разработке приложений, например разработчиков, тестировщиков, владельцев продуктов, специалистов по эксплуатации и т. д.
Рис. 1. Аналитика приложений повышает эффективность разработки и эксплуатации за счет углубленного анализа процессов внедрения и поведения пользователей в средах популярных платформ для разработки и эксплуатации.
Аналитика приложений интегрирует данные по использованию приложений, ПО для аналитики, ориентированное на приложения, и эвристические процедуры, интегрированные в процессы разработки и эксплуатации.
Разнообразие современных аналитических решений, как это и должно быть, обусловлено требованиями заказчиков. Например, основными заказчиками решений для веб-аналитики являются представители маркетинговой отрасли и отрасли сбыта, в результате чего данные решения ориентированы на аналитику количества просмотров страниц, кликов и конверсий. Ниже представлены общие характеристики всех решений для веб-аналитики.
Цели: монетизация веб-проектов.
Требования: анализ посетителей, впечатлений, кликов и конверсий.
Ограничения: соответствие политике конфиденциальности и требуемому уровню производительности.
Другими словами, аналитика приложений включает аналитические решения, основным заказчиком которых является определенный разработчик приложений или несколько таких разработчиков с общими целями, требованиями и ограничениями.
Цели
Разработка на основе отзывов
Согласно манифесту Agile, для разработчиков "наиболее приоритетной задачей является удовлетворение заказчика посредством ускоренного непрерывного предоставления полезного ПО". В этом контексте успех разработки можно точно определить, только когда приложение окажется у пользователя — в "точке работы" (или игры). Аналитика приложений обеспечивает эмпирические данные по использованию приложений и поведению конечного пользователя. При должной интеграции в процесс разработки эти данные обеспечивают следующие преимущества:
Достоверную информацию о требованиях пользователей
Проверку приоритетов разработки
Объективное измерение точности и полноты плана тестирования
Примеры:
- Программа улучшения качества программного обеспечения (CEIP) Майкрософт была "создана, чтобы предоставить всем заказчикам Майкрософт возможность внести вклад в процессы проектирования и разработки продуктов Майкрософт". CEIP собирает информацию о том, как программы Microsoft используются "на практике".
Качество DevOps
Манифест Agile также гласит, что "работающее ПО — основной показатель прогресса". Задача DevOps — извлечь максимальные преимущества из современных приложений — будущие итерации приложений не могут решить нынешние проблемы, связанные со стабильностью, производительностью, взаимодействием с пользователем или безопасностью. При должной интеграции с эксплуатацией и поддержкой аналитика приложений обеспечивает следующие возможности:
Внедрение приложения и получение показателей использования на той или иной платформе
Оповещение об инцидентах на производстве с помощью исключений приложений
Организационный анализ внедрения и производительности, связывающий инвестиции в приложение с окупаемостью инвестиций на корпоративном уровне.
Примеры:
- Решение PreEmptive Analytics Community Edition, позволяющее разработчикам, применяющим Microsoft Visual Studio 2012 Professional, создавать собственные программы CEIP за счет предоставления специалистам по разработке и эксплуатации возможности идентифицировать и быстро отреагировать на исключения приложений, возникающие в процессе производства.
Требования
С учетом этих целей ценность аналитики приложений очевидна, однако некоторые особенности рабочих процессов могут затруднять ее выполнение. Процессы сбора, анализа и реагирования на данные о простое приложения создают уникальные проблемы, касающиеся типов данных, которые необходимо собрать, и показателей успеха.
Для достижения эффективности внедрение аналитики приложений должно выполняться с учетом разнообразия современных приложений и развития облачных платформ, мобильных платформ и платформ распределенных вычислений. Следующие требования к аналитике приложений объясняют, почему от технологий аналитики узких областей нельзя ожидать полного удовлетворения потребностей разработчиков.
Телеметрия среды выполнения
Данные среды выполнения, передаваемые из приложения, обычно гораздо более сложны и неоднородны, чем данные, поступающие с веб-страницы или портала.
Типы данных |
Телеметрия среды выполнения: разнообразие, семантика и расположение данных о среде выполнения приложения |
---|---|
Функция |
Функция приложения — не клик. Функция может задействовать один или несколько методов, включать несколько компонентов, охватывать несколько планов среды выполнения и даже внедряться многократно в разные языки, например Windows Presentation Foundation (WPF), Microsoft Silverlight и HTML5. Измерение показателей использование и производительности в произвольно определенном диапазоне необходимо для мониторинга работоспособности на разных устройствах и платформах. |
Данные приложения |
Многие современные приложения опираются главным образом на данные, и их фактическое поведение зашифровано в этих данных. Информация о том, какие шаблоны, рабочие процессы и другое "современное" содержимое обрабатываются приложением, может быть более полезна, чем сведения о том, какие рабочие процессы или механизмы отрисовки обрабатывают эти данные. |
Сеанс |
Информацию о сеансах можно определить по-разному в средах серверов приложений, мобильных сеансов, в браузере или в случае распределения по всем вышеупомянутым службам посредством облачной службы. |
Событие |
Необработанные исключения, созданные и перехваченные исключения, непредвиденные результаты или подозрительное поведение пользователя могут являться компонентами "производственного события". |
Приложение |
Приложения нередко состоят из нескольких компонентов, одни из которых являются локальными, а другие основаны на службах. Темпы развития этих приложений (и их компонентов) невозможно прогнозировать. Вычисление рабочего процесса в рассредоточенных приложениях и последующее согласование полученных данных по времени и в соответствии с различными версиями — одна из задач аналитики приложений. |
Стек |
Несмотря на то, что многие приложения выполняются в среде тестирования и разработки (например, мобильные приложения, приложения среды выполнения Windows, приложения Microsoft Azure), существует немало других приложений с полным доступом к базовой ОС и вычислительному оборудованию. Зачастую для понимание условий работы пользователя и поведения приложения необходимо отследить разрешение экрана, изготовителей микросхем и доступность оборудования. |
Удостоверение |
Удостоверение пользователя можно определить и отследить по идентификатору устройства, IP‑адресу, учетным данным пользователя, лицензии на ПО и т.д. Решения для аналитики приложений должны иметь возможность внедрения политик конфиденциальности и безопасности на уровне клиента и на агрегированном уровне. Гарантия эффективного контроля данных является предпосылкой для эффективного анализа итоговых данных о среде выполнения. |
Архитектуры и технологии среды выполнения
По причине сложности, разнообразия и рассредоточения современных производственных платформ имитировать производственные процессы стало невозможно. Аналитика приложений сможет заполнить этот пробел только при наличии комплексной поддержки современных вычислительных платформ.
Категории |
Архитектуры и технологии среды выполнения: существующие и новые языки и платформы |
---|---|
Архитектуры и планы |
Приложения представляют собой нечто гораздо большее, чем обычный уровень презентации и последовательность действий пользователя. Инструментирование должно охватывать систему "клиент-сервер", облачные службы (общедоступные и частные), веб-сервлеты и мобильные платформы, архитектуры и планы. |
Языки и среды выполнения |
Современные приложения включают в себя управляемые, внутренние и заданные скриптами компоненты, в том числе Microsoft .NET Framework, C++, Java и JavaScript. |
Интеграция с IDE и ALM
Для обеспечения эффективности аналитики приложений нужные результаты анализа необходимо передать сотрудникам с соответствующими должностными обязанностями в нужное время и в нужном контексте. Сюда входит интеграция задачи инструментирования с процессом разработки и создания, а также распределение результатов аналитики приложений на этапы разработки, тестирования, развертывания и управления.
Рис. 2. Пять функциональных этапов реализации аналитики приложений.
Этап DevOps |
Интеграция IDE с управлением жизненным циклом приложений (ALM): сценарии на основе ролей и вариантов использования |
1. Инструментирование |
Инструментирование — это внутренняя логика приложения, создающая данные о среде выполнения для анализа. Инструментирование можно закодировать через API-интерфейс (необходимый для встроенных приложений и приложений со скриптами) или добавить в управляемые сборки после компиляции. |
2. Сборка и развертывание |
Сборка приложения может выполняться вручную, как один из этапов непрерывного процесса сборки, а также автоматически, для поддержки облачных платформ. Для обеспечения эффективного и масштабируемого развертывания необходима поддержка различных производственных процессов и форматов полезной информации. |
3. Управление данными среды выполнения |
Для управления данными среды выполнения требуются средства управления масштабированием, организацией и безопасностью. Требования к управлению данными среды выполнения приложения значительно разнятся в зависимости от отрасли, варианта использования и юрисдикции. |
4. Публикация данных среды выполнения |
Различным участникам процесса разработки требуются индивидуально подготовленные презентации и анализ; разработчики, архитекторы, владельцы продукта и руководители направлений бизнеса обладают разными концепциями и приоритетами в отношении одних и тех же базовых данных среды выполнения. Если варианты использования включают планирование спринтов, поддержку заказчика и мониторинг производительности бизнеса, для эффективного анализа, как правило, одновременно необходимы отчеты, панели мониторинга, экспорт и программный доступ. |
5. Интеграция |
Интеграция аналитики приложений в платформы для разработки (например, Visual Studio и TFS), процессы (например, Operations Manager) и средства управления взаимоотношениями с заказчиком (например, Microsoft Dynamics) посредством отчетов и планирования событий является последним элементом системы аналитики приложений, необходимым для обеспечения ее производительности. |
Ограничения
*Лечение не может быть хуже, чем болезнь.*Применимо к аналитике приложений это значит, что включение средств аналитики приложений в процессы разработки и эксплуатации не должно создавать более высокие риски для производительности, эффективности, безопасности или взаимодействия с пользователем, чем риски, которые вы планируете устранить. Однако с учетом многочисленных форм и ролей, которые могут принимать современные приложения, это непростая задача.
Управление рисками |
Ограничения: производительность, стабильность, конфиденциальность и сложность |
---|---|
Производительность и стабильность |
Эффективный сбор, кэширование и передача данных среды выполнения с различных устройств без ущерба для производительности (при должной работоспособности), стабильности приложения или взаимодействию с пользователем в случае сбоя одного или нескольких аспектов решения для аналитики. Это может быть особенно сложно в отношении особых зависимостей, например, времени работы батареи, тарифных планов, характеристик сети… |
Безопасность и конфиденциальность |
Каждому потребительскому приложению, корпоративному приложению или бизнес-приложению предъявляют отдельные требования к безопасности и конфиденциальности. Эти требования также зависят от отрасли и юрисдикции. Инструментирование, передача и управление содержимым систем аналитики приложений должны обладать возможностью расширения и внедрения таких требований в каждое приложение. |
Сложность |
Высокий уровень сложности вызывает ненужные расходы и риск, что в конечном итоге приводи к нежеланию внедрять слишком сложную систему. Интеграция в существующие платформы, процессы и методологии — обязательное условие эффективного внедрения аналитики приложений. |
Visual Studio 2012 и аналитика приложений
Аналитики исключений при помощи решения Visual Studio 2012 PreEmptive Analytics CE
Visual Studio 2012 включает технологию PreEmptive Analytics для выпуска TFS Community Edition (PA для TFS CE), решение для аналитики приложений, которое отслеживает исключения и создает либо обновляет рабочие элементы в Team Foundation Server (TFS) на основе пороговых значений, заданных пользователем.
Решение PA для TFS CE предназначено для отслеживания необработанных исключений в приложениях, которые находятся в средах выполнения .NET Framework и Java. Поддержка пяти этапов аналитики приложений осуществляется следующим образом:
Этап DevOps |
PreEmptive Analytics для TFS Community Edition |
---|---|
1. Инструментирование |
Инструментирование выполняется с помощью Dotfuscator Community Edition. Мониторинг необработанных исключений с помощью дополнительных функций, включаемых по требованию, и отзывов пользователей, поддерживается для приложений .NET Framework, Silverlight, Microsoft Windows Phone и XNA. Можно также бесплатно загрузить API-интерфейс для Java-приложений, включающий поддержку платформы Android. Решения PreEmptive обеспечивают поддержку машинного кода, JavaScript и Java. |
2. Сборка и развертывание |
Dotfuscator Community Edition — интерактивное решение. Поддержку интерфейса командной строки и MSBuild обеспечивает технология Dotfuscator Professional, представленная в решениях PreEmptive. |
3. Управление данными среды выполнения |
В состав Visual Studio Team Foundation Server 2012 входит серверный сборщик данных. Связь с конечной точкой устанавливается посредством URL-адреса, встроенного в приложение, мониторинг которого осуществляется на указанном выше этапе инструментирования. Сборщик можно разместить рядом с сервером TFS, на другом сервере и даже в среде Microsoft Azure. |
4. Публикация данных среды выполнения |
Вместе с TFS в Visual Studio 2012 включена служба агрегатора, которая осуществляет опрос конечной точки сборщика. По достижении пороговых значений, заданных пользователем, сборщик будет создавать (или обновлять) рабочий элемент "Инцидент на производстве" внутри TFS в Visual Studio 2012. |
5. Интеграция |
В Visual Studio 2012 рабочие элементы TFS, создаваемые PA для TFS CE, отслеживаются, назначаются, распределяются по приоритету и заносятся в отчеты, как и любые другие типы рабочих элементов, относящиеся к первому классу. |
Рис. 3. Поиск PreEmptive Analytics в Visual Studio 2012 при помощи меню инструментов
Рис. 4. Инструментирование. В Dotfuscator CE добавление атрибута установки идентифицирует конечную точку сборщика данных о среде выполнения. Конечная точка может размещаться локально, рядом с сервером TFS, или удаленно, в среде Microsoft Azure.
Рис. 5. Интеграция Visual Studio 2012. Рабочие элементы "Инцидент на производстве" в среде Visual Studio автоматически выводятся на передний план по достижении пороговых значений объема. В данном запросе "Все элементы" отражены типы исключений, число обнаруженных исключений данного типа и число компьютеров, на которых они обнаружены. Ниже представлены дополнительные сведения о данном рабочем элементе, в том числе траекторию стека, а также назначение, приоритет и классификацию рабочего элемента.
Рис. 6. Отчеты. Одна из сводных диаграмм входящих в PA для TFS CE, которая приведена в качестве примера, указывает состояние всех открытых инцидентов.
Выпуск PreEmptive Analytics Professional
В дополнение к улучшенным возможностям интеграции и инструментирования TFS, выпуск Professional решения PreEmptive Analytics включает технологию аналитики функций, сеансов и пользователей, разработанную для выявления трендов, шаблонов использования и предпочтений пользователей в течение всего жизненного цикла производственного приложения.
Основные варианты использования PreEmptive Analytics Community и PreEmptive Analytics Professional
Вариант использования |
Community Edition |
Professional |
---|---|---|
Отслеживание необработанных исключений в приложениях .NET Framework и Java |
Да |
Да |
Автоматическое создание и обновление рабочих элементов TFS в Visual Studio 2012 |
Да |
Да |
Предоставление возможности подключения по требованию и отправки отзывов пользователями в среде выполнения |
Да |
Да |
Поддержка Visual Studio 2010 |
Да |
|
Отслеживание созданных и перехваченных исключений |
Да |
|
Поддержка пользовательских данных и расширяемых определений правил и рабочих элементов |
Да |
|
Поддержка мониторинга JavaScript и встроенных приложений |
Да |
|
Определение показателей использования функций и сеансов |
Да |
Процесс разработки обладает уникальными требованиями, которые не могут удовлетворить веб-решения, BI и другие аналитические решения, не ориентированные на разработку.
Аналитика приложений предлагает особые возможности, направленные на удовлетворение потребностей, возникающих в процессе разработки и эксплуатации.
Visual Studio 2012 предлагает "готовую" интегрированную систему аналитики приложений, поддерживающую расширение возможностей посредством интеграции и дополнительных компонентов, созданных партнерами.
Дополнительные сведения можно получить на следующих веб-сайтах: