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
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.
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:
Die Anwendungsannahme und -verwendungsmetrik innerhalb eines bestimmten operativen Geschäftsframeworks
Produktionsvorfallwarnungen von Anwendungsausnahmen
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.
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. |
Abbildung 3: Suchen von PreEmptive Analytics in Visual Studio 2012 außerhalb des Menüs "Tools"
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.
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.
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: