Freigeben über


Anwendungsanalyse: Was jeder Entwickler wissen sollte

Sebastian Holst ist für die Produkt- und Marktstrategie bei PreEmptive Solutions zuständig. Sein Schwerpunkt liegt auf der Anwendungsanalyse und Sicherheit. Neben seiner Tätigkeit in der Softwareentwicklung ist Sebastian Holst in Gremien für Computer- und Industriestandards als Mitglied des W3C Advisory Committee, der für Mobile Marketing zuständigen Ausschüsse (MMA Committees) zum Datenschutz und zu Analysen und als Mitbegründer des für die Kompatibilität zuständigen Konsortiums Compliance Consortium aktiv gewesen. Sebastian Holst hostet außerdem ein Blog zum Thema Applications are people too, in dem er über die Ähnlichkeiten und Eigenheiten von Menschen, Programmen und Kulturen schreibt. In seiner Freizeit entwickelt er mobile Anwendungen und arbeitet mit Studenten, die er in die Kunst der Anwendungsentwicklung einführt.

Juli 2012

Sebastian Holst erörtert Ziele und Vorteile der Anwendungsanalyse.

Betrifft

Application Lifecycle Management, Visual Studio 2013, Team Foundation Server

Objectives

Requirements

Restrictions

Visual Studio 2012 and Application Analytics

Wie viel effizienter könnten Ihre Entwickler arbeiten, wenn sie nicht raten müssten, welche Funktionen tatsächlich verwendet wurden und welche eigentlich veraltet sind? Welche Auswirkungen auf die Benutzerzufriedenheit hätte es, wenn Ausnahmedaten in Verbindung mit dem Verwendungskontext bereitgestellt würden, bevor sich die Benutzer beschweren könnten? Inwieweit würde sich die Qualität der Software verbessern, wenn Ihre Testpläne mit tatsächlichen Verwendungsmustern und Benutzereinstellungen in der Produktion abgeglichen werden würden? Die Anwendungsanalyse ist ein Zweig der Analyse, die das Ziel verfolgt, diese Szenarien praktisch umzusetzen und die "egoistischen Interessen" von Anwendungsbeteiligten, wie Entwicklung, Test, Produktbesitzer, Betrieb, usw. zu befriedigen.

Diagramm der Anwendungsanalysezyklen

Abbildung 1: Die Anwendungsanalyse verbessert sowohl die Entwicklung als auch den Betrieb, indem tiefe Einblicke in die Anwendungsannahme und das Benutzerverhalten innerhalb der etablierten Entwicklungs- und Betriebsplattformen gewährt werden.

Die Anwendungsanalyse integriert Anwendungsnutzungsdaten, App-orientierte Analysesoftware und in die Entwicklung und in den Betrieb eingebundene Heuristik.

Die Vielfalt der heutigen Analyselösungen ist naturgemäß kundenorientiert. Beispielsweise ist der Hauptkunde der Webanalyse Marketing und Vertrieb, was dazu führt, dass Seitenaufrufe, Klicks und Conversions im Mittelpunkt stehen. Webanalyselösungen haben Folgendes gemeinsam:

  • Ziele: Monetarisierung von Webdiensten

  • Anforderungen: Analyse von Besuchern, Impressionen, Klicks und Conversions

  • Einschränkungen: Erfüllung von Datenschutzauflagen und Leistungsvorgaben

In der Agile-Ausdrucksweise umfasst die Anwendungsanalyse Analyselösungen, in denen der primäre Kunde eine oder mehrerer Anwendungsentwicklungsmitwirkende bezeichnet, die allgemeine Ziele, Anforderungen und Einschränkungen teilen.

Ziele

Feedbackorientierte Entwicklung

Das Agile Manifest besagt, dass die höchste Priorität bei der Entwicklung darin bestehe, den Kunden durch frühe und fortlaufende Bereitstellung gewinnbringender Software zufrieden zu stellen. In diesem Kontext kann der Erfolg der Entwicklung nur dort genau gemessen werden, wo sich Benutzer und Anwendungen treffen – am "Punkt der Arbeit" (oder des Spiels). Die Anwendungsanalyse stellt empirische Beweise für die Anwendungsnutzung und das Endbenutzerverhalten zur Verfügung. Bei entsprechender Einbindung in einen Entwicklungsprozess bietet sie Folgendes:

  • Einblicke in Benutzeranforderungen

  • Validierung von Entwicklungsprioritäten

  • Objektive Beurteilung der Testplangenauigkeit und -vollständigkeit

Beispiele:

  • Das Microsoft Programm zur Verbesserung der Benutzerfreundlichkeit (CEIP) wurde entwickelt, um allen Microsoft-Kunden die Möglichkeit zu geben, zum Entwurf und zur Entwicklung von Microsoft-Produkten beizutragen. CEIP sammelt Informationen darüber, wie Microsoft-Programme in der Praxis verwendet werden.

DevOps-Qualität

Das Agile Manifest schreibt außerdem fest, dass funktionsfähige Software das primäre Maß für Fortschritt sei. Die Mission des operativen Betriebs besteht darin, die Anwendungen von heute optimal zu nutzen. Künftige Anwendungsiterationen können keine unmittelbare Stabilität, Leistung, Benutzerfreundlichkeit oder Sicherheitsaspekte aufgreifen. Die Anwendungsanalyse stellt bei ordnungsgemäßer Integration in den Betrieb und Support Folgendes bereit:

  1. Die Anwendungsannahme und -verwendungsmetrik innerhalb eines bestimmten operativen Geschäftsframeworks

  2. Produktionsvorfallwarnungen von Anwendungsausnahmen

  3. Organisatorische Annahme- und Produktivitätsanalysen, die Anwendungsinvestitionen mit der Rendite des Unternehmens in Verbindung bringen.

Beispiele:

  • PreEmptive Analytics Community Edition gibt Entwicklern, die Microsoft Visual Studio 2012 Professional nutzen, die Möglichkeit, ein eigenes CEIP zu erstellen. Dazu wird der Entwicklung und dem operativen Betrieb ermöglicht, in der Produktion auftretende Anwendungsausnahmen zu identifizieren und schnell darauf zu reagieren.

Anforderungen

Angesichts dieser Ziele scheint der Nutzen der Anwendungsanalyse auf der Hand zu liegen, doch die Details können das Ganze erschweren. Das Sammeln, Analysieren und Bearbeiten von Anwendungslaufzeitdaten stellt einzigartige Herausforderungen in Bezug auf die Art von Daten, die erfasst werden müssen, und auf die Metriken zur Messung des Erfolgs dar.

Effiziente Anwendungsanalyseimplementierungen müssen die unterschiedlichsten aktuellen Anwendungen und das Aufkommen von Cloud-, mobilen und verteilten Informatikplattformen berücksichtigen. Die folgenden Anwendungsanalyseanforderungen verdeutlichen, warum von enger gefassten Analysetechnologien nie erwartet werden sollte, dass sie Entwicklungsziele vollständig erfüllen.

Laufzeittelemetrie

Die Laufzeitdaten, die aus einer Anwendung gestreamt werden, sind in der Regel weitaus komplexer und heterogener als die Daten, die normalerweise aus einer Webseite oder einem Portal gestreamt werden.

Datentypen

Laufzeittelemetrie: die Verschiedenartigkeit, die Semantik und der Speicherort von Anwendungslaufzeitdaten

Funktion

Eine Anwendungsfunktion ist kein Klick. Eine Funktion kann sich über eine oder mehrere Methoden erstrecken, mehrere Komponenten enthalten, auf verschiedenen Laufzeitoberflächen ausgeführt werden und sogar mehrfach in verschiedenen Sprachen installiert werden, wie z. B. Windows Presentation Foundation (WPF), Microsoft Silverlight und HTML5. Zur Überwachung über Geräte und Plattformen hinweg müssen die Verwendung und Leistung eines willkürlich definierten Umfangs gemessen werden.

Anwendungsdaten

Viele aktuelle Anwendungen sind datengesteuert, wobei das tatsächliche Verhalten in Daten codiert ist. Zu wissen, welche Vorlagen, Workflows und weiteren "modernen" Inhalte verarbeitet werden, kann nützlicher sein als das Wissen darum, welcher Workflow oder welches Renderingmodul diese Daten verarbeitet hat.

Sitzung

Sitzungsinformationen können innerhalb eines App-Servers, einer mobile Sitzung und in einem Browser anders definiert werden oder über alle oben genannten Möglichkeiten verteilt und von einem cloudbasierten Dienst gehostet werden.

Ereignis

Ausnahmefehler, abgefangene und ausgelöste Ausnahmen, eine unerwartete Leistung oder verdächtiges Benutzerverhalten können alle ein Produktionsereignis darstellen.

Anwendung

Anwendungen bestehen häufig aus mehreren Komponenten. Einige davon werden lokal bereitgestellt und andere sind dienstbasiert. Diese Anwendungen (und deren Komponenten) werden in unvorhersehbarem Rhythmus versioniert. Die Berechnung des Workflows über die verteilten Anwendungen hinweg und das Abgleichen dieser Aktivität im Zeitverlauf und über die Versionen hinweg ist eine Anwendungsanalyseanforderung.

Stapel

Während viele Anwendungen in einem "Sandkasten" ausgeführt werden, z. B. mobil, Windows-Runtime, Microsoft Azure, haben zahlreiche andere Anwendungen vollen Zugriff auf das zugrunde liegende Betriebssystem und Bare-Metal. Zum Verstehen der Benutzerfreundlichkeit und des Anwendungsverhaltens ist es häufig wichtig, die Bildschirmauflösung, die Chiphersteller und die Hardwareverfügbarkeit zu erfassen.

Identity

Die Identität eines Benutzers kann mit der Geräte-ID, der IP-Adresse, den Benutzeranmeldeinformationen, der Softwarelizenz und weiteren Daten definiert und nachverfolgt werden. Anwendungsanalyselösungen müssen über die Kapazität verfügen, Datenschutz- und Sicherheitsrichtlinien auf Client- und Aggregatebene durchzusetzen. Eine effektive Datenherrschaft sicherzustellen, ist Voraussetzung für eine erfolgreiche Analyse der daraus resultierenden Laufzeitdaten.

Laufzeitarchitekturen und -technologien

Angesichts der Komplexität, Vielfalt und Verteilung der aktuellen Produktionsplattformen ist eine Simulation der Produktion nicht mehr möglich. Die Anwendungsanalyse kann diese Lücke nur füllen, wenn eine umfassende Unterstützung der aktuellen Informatikplattformen verfügbar ist.

Kategorien

Laufzeitarchitekturen und -technologien: vorhandene und in Entwicklung befindliche Sprachen und Plattformen

Architekturen und Oberflächen

Anwendungen sind weitaus mehr als eine einfache Darstellungsschicht und eine Sequenz von Benutzeraktionen. Die Instrumentation muss sich über Client/Server, Cloud-Dienste (öffentlich und privat), Webservlet- und mobile Plattformen, Architekturen und Oberflächen erstrecken.

Sprachen und Laufzeiten

Aktuelle Anwendungen integrieren verwaltete, systemeigene und Skriptkomponenten, einschließlich Microsoft .NET Framework, C++, Java und JavaScript.

IDE- und ALM-Integration

Damit die Anwendungsanalyse wirksam ist, müssen die richtigen Informationen zur rechten Zeit und im entsprechenden Kontext an die zuständigen Rollen weitergegeben werden. Dies schließt die Integration der Instrumentationsaufgabe in den Entwicklungs- und Buildprozess und das Einbringen der Anwendungsanalyse in die Entwicklungs-, Test-, Bereitstellungs- und Verwaltungsphasen ein.

Flussdiagramm mit fünf aufeinanderfolgenden Phasen

Abbildung 2: Fünf funktionale Phasen der Anwendungsanalyseimplementierung.

DevOps-Phase

Integration von IDE und Anwendungslebenszyklusverwaltung (ALM): rollen- und anwendungsfallgesteuerte Szenarien

1. Instrumentation

Die Instrumentation ist die Logik in einer Anwendung, die die zu analysierenden Laufzeitdaten erstellt. Die Instrumentation kann über eine API codiert (erforderlich für systemeigene und Skript-Apps) oder nach der Kompilierung in verwaltete Assemblys eingefügt werden.

2. Erstellen und Bereitstellen

Apps können im Rahmen eines fortlaufenden Buildprozesses manuell erstellt und automatisiert werden, um Cloudplattformen zu unterstützen. Eine Unterstützung der verschiedenen Herstellungsverfahren und Nutzlastformate ist erforderlich, um effiziente und skalierbare Bereitstellungen sicherzustellen.

3. Laufzeitdatenverwaltung

Für das Verwalten von Laufzeitdaten sind Skalierung, Datenherrschaft und Sicherheitskontrolle erforderlich. Die Anforderungen an die Anwendungslaufzeitdatenverwaltung variieren je nach Branche, Anwendungsfall und rechtlichem Zuständigkeitsbereich erheblich.

4. Laufzeitdatenveröffentlichung

Verschiedene Projektbeteiligte benötigen unterschiedliche Präsentationen und Analysen. Entwickler, Architekten, Produktbesitzer und das Branchenmanagement betrachten die gleichen zugrunde liegenden Laufzeitdaten aus unterschiedlichen Perspektiven und versehen sie mit verschiedenen Prioritäten. Berichte, Dashboards, Export und programmgesteuerter Zugriff sind in der Regel erforderlich, wenn sich die Anwendungsfälle über Sprintplanung, Kundensupport und Business Performance Monitoring erstrecken.

5. Integration

Die Integration der Anwendungsanalyse in Entwicklungsplattformen, z. B. Visual Studio und TFS, Betrieb, z. B. Betriebsleiter, und Kundenbeziehungsverwaltung, z. B. Microsoft Dynamics, durch Berichte und Ereignisplanung stellt die "letzte Meile" der Produktivität der Anwendungsanalyse dar.

Beschränkungen

Das Heilmittel kann nicht schlimmer sein als die Krankheit. Für die Anwendungsanalyse bedeutet dies, dass die Verwendung der Anwendungsanalyse in der Entwicklung und im operativen Betrieb nicht zu größeren Produktivitäts-, Leistungs-, Sicherheits- oder Benutzerfreundlichkeitsrisiken führen kann als die Risiken, die sie bekämpfen soll. Angesichts der vielen Formen und Rollen, die die heutigen Anwendungen annehmen können, ist dies keine leichte Aufgabe.

Risikomanagement

Einschränkungen: Leistung, Stabilität, Datenschutz und Komplexität

Leistung und Stabilität

Effizientes Sammeln, Zwischenspeichern und Übertragen von Laufzeitdaten über Geräte ohne Leistungseinbuße (bei ordnungsgemäßer Funktion) und ohne Auswirkungen auf die Anwendungsstabilität oder Benutzerfreundlichkeit, falls bei einem oder mehreren Aspekten der Analyselösung Fehler auftreten. Dies kann eine besondere Herausforderung sein, wenn spezielle Abhängigkeiten wie Akkulaufzeit, Datentarife und Netzwerkeigenschaften berücksichtigt werden.

Sicherheit und Datenschutz

Consumer-, Business-to-Business- und Branchenanwendungen haben jeweils eigene Sicherheits- und Datenschutzauflagen. Diese Auflagen werden durch die Branche und die rechtliche Zuständigkeit weiter fragmentiert. Die Instrumentation, der Transport und das Content Management der Anwendungsanalyse müssen erweiterbar und in der Lage sein, diese Anforderungen auf individueller Anwendungsbasis durchzusetzen.

Komplexität

Die Komplexität führt zu unnötigem Aufwand und Risiko und letztlich zu Widerstand gegenüber der Annahme. Die Integration in vorhandene Plattformen, Prozesse und Methoden ist Voraussetzung für effektive Anwendungsanalyseimplementierungen.

Visual Studio 2012 und Anwendungsanalyse

Ausnahmeanalyse mit Visual Studio 2012 PreEmptive Analytics CE

Visual Studio 2012 umfasst PreEmptive Analytics für TFS Community Edition (PA für TFS CE), eine Anwendungsanalyselösung, die Ausnahmen überwacht und Arbeitsaufgaben in Team Foundation Server (TFS) auf der Basis von benutzerdefinierten Schwellenwerten erstellt oder aktualisiert.

PA für TFS CE wurde entworfen, um Ausnahmefehler in Anwendungen zu verfolgen, die auf .NET Framework- und Java-Laufzeiten ausgeführt werden. Die fünf Phasen der Anwendungsanalyse werden wie folgt unterstützt:

DevOps-Phase

PreEmptive Analytics für TFS Community Edition

1. Instrumentation

Die Instrumentation erfolgt mit Dotfuscator Community Edition. Die Überwachung von Ausnahmefehlern mit optionaler Opt-in-Funktion und Benutzerfeedback wird für .NET Framework, Silverlight, Microsoft Windows Phone und XNA-Anwendungen unterstützt. Eine API für Java-Anwendungen ist auch als kostenloser Download verfügbar, der Unterstützung für Android umfasst. PreEmptive Solutions bietet Unterstützung für systemeigenen Code, JavaScript und Java.

2. Erstellen und Bereitstellen

Dotfuscator Community Edition ist interaktiv. Die Befehlszeilenschnittstelle und MSBuild-Unterstützung sind mit Dotfuscator Professional von PreEmptive Solutions verfügbar.

3. Laufzeitdatenverwaltung

Ein serverseitiger Datensammler ist in Visual Studio Team Foundation Server 2012 enthalten. Auf den Sammlerendpunkt wird über eine URL verwiesen, die in die im Rahmen der oben genannten Instrumentationsphase überwachten Anwendung eingebettet ist. Der Sammler kann sich neben dem TFS-Server, auf einem ganz anderen Server und sogar in Microsoft Azure befinden.

4. Laufzeitdatenveröffentlichung

Ein Aggregatordienst, der den Sammlerendpunkt abruft, ist ebenfalls mit TFS in Visual Studio 2012 enthalten. Wenn benutzerdefinierte Schwellenwerte erfüllt sind, erstellt (oder aktualisiert) der Aggregator eine Produktionsvorfallarbeitsaufgabe in TFS in Visual Studio 2012.

5. Integration

In Visual Studio 2012 werden TFS-Arbeitsaufgaben, die von PA für TFS CE erstellt werden, wie alle anderen erstklassigen Arbeitsaufgabentypen auch nachverfolgt, zugewiesen, priorisiert und gemeldet.

Screenshot der Position des Menüs „Extras“

Abbildung 3: Suchen von PreEmptive Analytics in Visual Studio 2012 außerhalb des Menüs "Tools"

Screenshot mit Dotfuscator CE

Abbildung 4: Instrumentation. In Dotfuscator CE wird durch Hinzufügen des Setupattributs der Sammlerendpunkt für Laufzeitdaten identifiziert. Der Endpunkt kann neben einem TFS-Server lokal angeordnet oder unter Microsoft Azure remote gehostet werden.

Screenshot von Visual Studio mit Integration

Abbildung 5: Integration von Visual Studio 2012. Produktionsvorfallarbeitsaufgaben werden in Visual Studio automatisch eingeblendet, wenn Volumenschwellenwerte erreicht werden. In der Abfrage "Alle Elemente" können Sie sehen, von welchem Typ die Ausnahme ist, wie viele Ausnahmen dieses Typs erkannt wurden und auf wie vielen Computern. Weitere Details zu dieser Arbeitsaufgabe sehen Sie unten. Dazu gehören eine Stapelüberwachung sowie die Zuweisung, Priorisierung und Klassifizierung der Arbeitsaufgabe.

Screenshot eines Beispiels eines zusammenfassenden Diagramms

Abbildung 6: Berichterstellung. Ein Beispiel für die Zusammenfassungsdiagramme, die in PA für TFS CE enthalten sind, zeigt der Status aller offenen Vorfälle an.

PreEmptive Analytics Professional Edition

Außer verbesserten TFS-Integrations- und -Instrumentationsoptionen umfasst die Professional-Edition von PreEmptive Analytics Funktions-, Sitzungs- und Benutzeranalysen zur Bewertung von Trends, Verwendungsmustern und Benutzereinstellungen während der gesamten Lebensdauer einer Produktionsanwendung.

Primäre Anwendungsfälle für PreEmptive Analytics Community Edition und Professional

Anwendungsfall

Community Edition

Professional

Nachverfolgung von Ausnahmefehlern in .NET Framework- und Java-Anwendungen

Ja

Ja

Automatisches Erstellen und Aktualisieren von TFS-Arbeitsaufgaben in Visual Studio 2012

Ja

Ja

Bereitstellen von Opt-in- und Benutzerfeedbackoptionen zur Laufzeit

Ja

Ja

Unterstützung von Visual Studio 2010

Ja

Nachverfolgung von abgefangenen und ausgelösten Ausnahmen

Ja

Unterstützung benutzerdefinierter Daten und erweiterbarer Regel- und Arbeitselementdefinitionen

Ja

Unterstützung von JavaScript und systemeigener Anwendungsüberwachung

Ja

Messung der Funktions- und Sitzungsverwendung

Ja

  • Für die Entwicklung gelten besondere Anforderungen, die von Web-, BI- oder anderen nicht entwicklungsorientierten Analyselösungen nicht erfüllt werden.

  • Die Anwendungsanalyse bietet spezifische Funktionen, die Entwicklungs- und Betriebsanforderungen erfüllen sollen.

  • Visual Studio 2012 bietet eine integrierte Standardanwendungsanalyse mit der Möglichkeit, diese Funktionen durch Integration and Partneroptionen zu erweitern.

Weitere Informationen finden Sie auf folgenden Websites:

  1. http://www.preemptive.com/pa

  2. https://www.microsoft.com/visualstudio/11/en-us/products/alm

  3. https://blogs.msdn.com/b/bharry/archive/2012/04/11/preemptive-analytics-in-visual-studio-and-tfs-11.aspx