Udostępnij za pośrednictwem


Analiza aplikacji: co każdy deweloper powinien wiedzieć

W firmie PreEmptive Solutions Sebastian Holst odpowiada za strategię rozwoju produktów i rynków ze szczególnym uwzględnieniem analityki i bezpieczeństwa aplikacji.Oprócz tworzenia oprogramowania Sebastian uczestniczy także w pracach organizacji, które ustanawiają standardy branżowe dotyczące sprzętu i oprogramowania komputerowego, takich jak komisja doradcza organizacji W3C, komisje organizacji MMA zajmujące się kwestiami prywatności i analizowania danych oraz organizacja Compliance Consortium (jako współzałożyciel).Sebastianowi obsługuje również blogspot aplikacje są zbyt osób, gdzie zapisuje prośbę o parallels i foibles osób, programów i kultury.W wolnym czasie programuje aplikacje na urządzenia przenośne i pomaga uczniom szkół średnich robić to samo.

Lipiec 2012 r.

W tym artykule Sebastian Holst omawia cele i zalety stosowania analityki aplikacji.

Dotyczy

Zarządzanie cyklem życia aplikacji, program Visual Studio 2013, zestaw oprogramowania Team Foundation Server

Cele

Wymagania

Ograniczenia

Program Visual Studio 2012 i analityka aplikacji

Pomyślmy tylko, o ile wydajniejsi byliby programiści, gdyby nie musieli zgadywać, które funkcje są przydatne, a które można bezpiecznie usunąć?Jak zadowoleni byliby użytkownicy, gdyby można było uzyskiwać dane wyjątków obejmujące kontekst użycia, zanim użytkownicy ci zgłoszą błąd?Jak poprawiłaby się jakość oprogramowania, gdyby plany testów były dostosowane do rzeczywistych wzorców użycia i preferencji użytkowników w oprogramowaniu produkcyjnym?Analiza aplikacji jest gałęzi analytics purpose-built dokonanie tych scenariuszach rzeczywistością; przez aplikację "samolubna zaś interesy" wszystkich uczestników projektu, np.Tworzenie testu, właścicieli produktu, operacji, itp.

Diagram cykli Analytics aplikacji

Rysunek 1: Analityka aplikacji ułatwia pracę zarówno programistom, jak i informatykom, zapewniając im wystarczające rozeznanie w zwyczajowych zastosowaniach aplikacji oraz w typowych czynnościach użytkowników na istniejących platformach programistycznych i produkcyjnych.

Analityka aplikacji opiera się na interpretowaniu danych dotyczących użytkowania aplikacji, danych z oprogramowania dedykowanego analizowaniu aplikacji oraz danych uzyskanych dzięki algorytmom heurystycznym wbudowanym w oprogramowanie testowe i produkcyjne.

Różnorodność współczesnych rozwiązań analitycznych wynika (i powinna wynikać) z potrzeb klientów.Przykład: typowy klient korzystający z analityki aplikacji sieciowych to podmiot prowadzący sprzedaż lub działalność marketingową, dla którego ważne są liczba wyświetleń stron, wybierane opcje i konwersje.Rozwiązania do analizy aplikacji sieciowych mają (i powinny mieć) zatem następujące wspólne cechy:

  • Cele: monetyzacja funkcjonowania mechanizmów sieci Web;

  • Wymagania: zliczanie gości, wyświetleń, kliknięć i konwersji;

  • Ograniczenia: spełnianie wymagań dotyczących prywatności danych i sprawności działania.

Z drugiej strony można powiedzieć, że rozwiązania do analizowania aplikacji to mechanizmy analityczne, których pierwotnym użytkownikiem jest jeden wielki dział projektowania aplikacji o jednolitych celach, wymaganiach i ograniczeniach..

Cele

Programowanie oparte na opiniach zwrotnych

Zgodnie z manifestem Agile głównym celem tworzenia oprogramowania jest usatysfakcjonowanie klienta przez natychmiastowe i niezakłócone zapewnianie mu przydatnego oprogramowania. W tym kontekście powodzenie projektu można obiektywnie stwierdzić tylko na podstawie praktycznych zastosowań aplikacji przez użytkowników.Analityka aplikacji dostarcza doświadczalnych danych na temat użycia aplikacji oraz zachowań użytkowników końcowych, które to dane — pod warunkiem ich prawidłowego zastosowania w procesie projektowania — gwarantują:

  • zapoznanie się z potrzebami użytkowników,

  • ostateczne ustalenie hierarchii ważności

  • oraz dostęp do obiektywnych mierników poprawności i kompletności planów testów.

Oto przykłady:

  • Microsoft program poprawy jakości obsługi klienta (CEIP) "utworzono udzielenia wszystkich klientów firmy Microsoft przyczyniają się do projektowania i opracowywania produktów firmy Microsoft." W ramach tego programu gromadzone są informacje o praktycznych przypadkach użycia oprogramowania firmy Microsoft.

Jakość DevOps

W manifeście Agile można także przeczytać, że podstawowym miernikiem postępu prac jest działające oprogramowanie. Zadaniem działu IT jest optymalne wykorzystanie współczesnych aplikacji — przyszłe iteracje aplikacji nie mogą rozwiązać aktualnych problemów ze stabilnością, sprawnością, komfortem pracy użytkownika czy bezpieczeństwem.Analityka aplikacji — pod warunkiem prawidłowego wdrożenia w dziale IT i pomocy technicznej — gwarantuje:

  1. wiarygodne statystyki i źródło danych o zwyczajowych zastosowaniach aplikacji w konkretnej strukturze systemowej,

  2. alerty o zdarzeniach w oprogramowaniu produkcyjnym na podstawie wyjątków z aplikacji

  3. oraz dostęp do analiz na temat stopnia przyswojenia aplikacji na poziomie organizacyjnym i produktywności z uwzględnieniem zwrotu z inwestycji przedsiębiorstwa w aplikację.

Oto przykłady:

  • Oprogramowanie PreEmptive Analytics Community Edition daje programistom korzystającym z programu Microsoft Visual Studio 2012 Professional możliwość opracowania własnego programu poprawy jakości obsługi klienta, ponieważ pozwala zarówno programistom, jak i informatykom szybko identyfikować wyjątki w aplikacjach produkcyjnych i odpowiednio na nie reagować.

Wymagania

W kontekście tych celów zalety stosowania analityki aplikacji wydają się oczywiste, chociaż jej wdrożenie może być trudne.Gromadzenie, analizowanie i przetwarzanie danych czasu wykonywania aplikacji stanowią specyficzne wyzwania zarówno pod względem rodzaju danych, które muszą być gromadzone, jak i mierników używanych do oceniania powodzenia projektu.

Skuteczne implementacje rozwiązań do analizowania aplikacji muszą sobie radzić z różnorodnością współczesnych aplikacji, a także rozpowszechnieniem się chmur obliczeniowych oraz mobilnych i rozproszonych platform komputerowych.Następujące wymagania dotyczące analityki aplikacji wyjaśniają, dlaczego proste mechanizmy analityczne nigdy nie spełnią wszystkich oczekiwań związanych z projektem programistycznym.

Telemetria czasu wykonywania

Dane czasu wykonywania przesyłane z aplikacji są zwykle o wiele bardziej skomplikowane i niejednorodne niż to, co jest zazwyczaj przesyłane strumieniowo ze strony lub portalu sieci Web.

Typy danych

Telemetria czasu wykonywania: odmiany, semantyka i lokalizacja danych czasu wykonywania aplikacji

Funkcja

Funkcja aplikacji nie polega na jednym kliknięciu.Funkcja span jedną lub większą liczbę metod, umieścić wiele składników, uruchomić na powierzchni środowiska wykonawczego i nawet zaimplementowania wielokrotnie w różnych językach, np.Windows Presentation Foundation (WPF), Microsoft Silverlight i HTML5.Do monitorowania urządzeń i platform jest wymagany pomiar zużycia i wydajności arbitralnie zdefiniowanego zakresu.

Dane aplikacji

Wiele współczesnych aplikacji jest opartych na danych, przy czym rzeczywiste zachowanie aplikacji również jest zakodowane w danych.Wiedza na temat przetwarzanych szablonów, przepływów pracy oraz innych „nowoczesnych” typów zawartości może być bardziej wartościowa niż wiedza o przepływie pracy lub aparacie renderowania, który przetworzył te dane.

Sesja

Informacje o sesji mogą być zdefiniowane inaczej na serwerze aplikacji, inaczej w ramach sesji na urządzeniu przenośnym, a jeszcze inaczej w przeglądarce; mogą być również rozproszone we wszystkich powyższych typach danych obsługiwanych w chmurze.

Zdarzenie

„Zdarzenia produkcyjne” mogą obejmować wyjątki nieobsługiwane, przechwytywane oraz zgłaszane, a także nieoczekiwane działania lub podejrzane zachowania użytkowników.

Aplikacja

Aplikacje składają się często z wielu składników — niektóre z nich są rozmieszczone lokalnie, a niektóre oparte na usługach.Aplikacje te (oraz ich składniki) są wersjonowane w nieprzewidywalnych odstępach czasu.Wymagania, którym musi sprostać analityka aplikacji, obejmują obliczanie przepływu pracy przez rozproszone aplikacje, a następnie uzgadnianie tego działania w różnych wersjach.

Stos

Gdy wiele aplikacji są uruchamiane w "Skrzynka", np.Telefon komórkowy, środowiska wykonawczego systemu Windows, Microsoft Azure — inne aplikacje mają pełny dostęp do komputera bez systemu i system operacyjny.Aby przekonać się, jak działa aplikacja i jak może ją odbierać użytkownik, często należy brać pod uwagę parametry takie jak rozdzielczość ekranu, producent procesora czy dostępność osprzętu.

Tożsamość

Tożsamości użytkowników mogą być definiowane i śledzone na podstawie identyfikatorów urządzeń, adresów IP, poświadczeń użytkownika, licencji na oprogramowanie oraz innych elementów.Rozwiązania do analizowania aplikacji muszą umożliwiać wymuszanie stosowania zasad dotyczących prywatności i bezpieczeństwa zarówno na poziomie klienta, jak i w całej sieci.Zapewnienie skutecznego porządkowania danych jest wstępnym i niezbędnym warunkiem do skutecznego analizowania uzyskiwanych danych czasu wykonywania.

Architektury i mechanizmy środowisk wykonawczych

Zważywszy na stopień złożoności, różnorodność i zakres dystrybuowania współczesnych platform produkcyjnych, nie można już polegać na symulacjach ich działania.Analityka aplikacji może wypełnić powstałą w ten sposób lukę tylko pod warunkiem zapewnienia kompleksowej obsługi współczesnych platform obliczeniowych.

Kategorie

Architektury i mechanizmy środowisk wykonawczych: istniejące i nowe języki oraz platformy

Architektury i powierzchnie

Aplikacja to coś o wiele więcej niż prosta warstwa prezentacji i sekwencja czynności użytkownika.Oprzyrządowanie musi obsługiwać komunikację między klientem i serwerem, publiczne i prywatne chmury obliczeniowe, serwlety sieciowe i platformy na urządzeniach przenośnych, architektury oraz powierzchnie.

Języki i środowiska wykonawcze

Dzisiejsze aplikacje zawierają składniki zarządzane, macierzyste i skryptowane, w tym składnik Microsoft.NET Framework oraz składniki w języku C++, Java i JavaScript.

Zintegrowanie narzędzi IDE oraz zarządzania cyklem życia aplikacji

Aby analizowanie aplikacji przyniosło oczekiwane efekty, właściwe informacje muszą zostać przypisane do odpowiednich ról w odpowiednim czasie i w odpowiednim kontekście.Oznacza to konieczność zintegrowania zadania przyrządowania z procesami projektowania i kompilowania aplikacji oraz powierzchniowe udostępnienie mechanizmów analizowania aplikacji w fazach programowania, testowania, rozmieszczania i zarządzania.

Schemat blokowy pokazujący pięć etapów w sekwencji

Rysunek 2: Pięć faz funkcjonalnych wdrażania mechanizmów do analizowania aplikacji.

Faza DevOps

Integracja zarządzania (ALM) cyklu życia IDE & aplikacji: roli i używania w sprawie scenariuszy kierowany

1.Oprzyrządowanie

Oprzyrządowanie jest systemem logicznym wewnątrz aplikacji odpowiadającym za wytworzenie danych czasu wykonywania, które podlegają analizom.Oprzyrządowanie może zostać zaprogramowane przy użyciu interfejsu API (wymagane w przypadkach aplikacji macierzystych i skryptowanych) lub dodane po zakończeniu kompilowania do zestawów zarządzanych.

2.Kompilowanie i rozmieszczanie

Aplikacje można kompilować ręcznie, w ramach procesów kompilacji ciągłej i automatycznie w celu stosowania w chmurach.Wydajność i skalowalność wdrożenia jest zapewniona pod warunkiem możliwości obsługiwania różnych procesów produkcyjnych i formatów ładunków.

3.Zarządzanie danymi czasu wykonywania

Zarządzanie danymi czasu wykonywania wymaga mechanizmów do skalowania, porządkowania i zabezpieczania.Wymagania dotyczące zarządzania danymi czasu wykonywania szybko przekraczają kolejne granice między branżami, przypadkami użycia czy jurysdykcjami.

4.Publikowanie danych czasu wykonywania

Różne osoby zainteresowane działaniem aplikacji wymagają różnych prezentacji i analiz: programiści, architekci, właściciele produktu oraz zarządy firm uzupełniają podstawowe dane czasu wykonywania własnymi punktami widzenia i priorytetami.W przypadkach użycia obejmujących planowanie sprintów, obsługę klienta oraz monitorowanie działania przedsiębiorstwa wymagana jest zwykle obsługa raportów i pulpitów nawigacyjnych, a także opcji eksportowania i dostępu programowego.

5.Integracja

Integrację analytics aplikacji platformy deweloperskie, np.Program Visual Studio i TFS, operacje, np.program Operations manager i zarządzanie relacjami z klientami, np.Microsoft Dynamics za pośrednictwem raportów i zdarzeń, planowanie rozwiązanie "ostatni mila" wydajność analytics aplikacji.

Ograniczenia

*Utrwalenie nie może być niższa który choroby.*Do analizy ruchu aplikacji oznacza to, że włączenie aplikacji analytics do tworzenia i obsługi nie może spowodować produktywności, wydajności, zabezpieczeń i użytkownika ryzyka obsługi większych niż te, które jest przeznaczony do ograniczenia.Nie jest to proste zadanie, jeśli weźmie się pod uwagę wielorakość form i ról, które aplikacje przyjmują dziś na siebie.

Zarządzanie ryzykiem

Ograniczenia: sprawność i stabilność działania, prywatność i stopień złożoności

Sprawność i stabilność działania

Oznacza to skuteczne gromadzenie, buforowanie i przesyłanie danych czasu wykonywania przez urządzenia bez spadku wydajności, gdy analityka działa prawidłowo, i bez wywierania negatywnego wpływu na stabilność działania aplikacji czy komfort pracy użytkowników, jeśli/gdy zawiedzie co najmniej jeden z mechanizmów analitycznych.Może to być szczególnie trudne, biorąc pod uwagę specjalne zależności, np. od czasu pracy baterii, planów taryfowych, właściwości sieci itp.

Bezpieczeństwo i prywatność

Różne aplikacje konsumenckie, biznesowe oraz branżowe wymagają różnej ochrony bezpieczeństwa i prywatności.Wymagania te są dodatkowo zróżnicowane pod względem regionów i kategorii branżowych.Oprzyrządowanie programów do analizowania aplikacji, jak również opcje zarządzania transportem i zawartością muszą być rozszerzalne i umożliwiać wymuszanie przestrzegania tych wymagań w komunikacji między aplikacjami.

Stopień złożoności

Zbytnie skomplikowanie przyczynia się do marnotrawstwa i wzrostu ryzyka, a co za tym idzie, również do oporu użytkowników przed korzystaniem z aplikacji.Skuteczna implementacja rozwiązania do analizowania aplikacji wymaga jego bezwzględnego zintegrowania z istniejącymi platformami, procesami i metodami.

Program Visual Studio 2012 i analityka aplikacji

Analizowanie wyjątków w programie Visual Studio 2012 z programem PreEmptive Analytics CE

Program Visual Studio 2012 obejmuje oprogramowanie PreEmptive Analytics for TFS Community Edition (PA for TFS CE), rozwiązanie z zakresu analityki aplikacji, które monitoruje wyjątki i tworzy lub aktualizuje elementy robocze w oprogramowaniu Team Foundation Server (TFS) na podstawie progów definiowanych przez użytkowników.

Oprogramowanie PA for TFS CE zostało zaprojektowane w celu śledzenia nieobsługiwanych wyjątków w aplikacjach wykonywanych na platformach .NET Framework i Java.Pięć faz analizowania aplikacji jest obsługiwanych zgodnie z następującym opisem:

Faza DevOps

PreEmptive Analytics for TFS Community Edition

1.Oprzyrządowanie

Oprzyrządowanie stanowi system Dotfuscator Community Edition.Monitorowanie nieobsługiwanych wyjątków z możliwością uwzględnienia opcji wyrażania zgody i opinii zwrotnych przez użytkownika jest obsługiwane w aplikacjach na platformach .NET Framework, Silverlight, Microsoft Windows Phone oraz XNA.Dostępny jest również do pobrania bezpłatny interfejs API dla aplikacji w języku Java z obsługą systemu Android.Firma PreEmptive Solutions udostępnia rozwiązania obsługujące kody macierzyste oraz kody w językach JavaScript i Java.

2.Kompilowanie i rozmieszczanie

System Dotfuscator Community Edition jest interaktywny.W wersji Professional systemu Dotfuscator od firmy PreEmptive Solutions jest dostępny interfejs wiersza polecenia i obsługiwany aparat MSBuild.

3.Zarządzanie danymi czasu wykonywania

Moduł zbierający dane po stronie serwera jest dołączony do wersjiVisual Studio Team Foundation Server 2012.W ramach fazy działania oprzyrządowania następują odwołania do punktu końcowego modułu zbierającego przy użyciu adresu URL osadzonego w monitorowanej aplikacji.Moduł zbierający można znajdują się obok serwera TFS, na całkowicie inny serwer, a nawet wewnątrz systemu Microsoft Azure.

4.Publikowanie danych czasu wykonywania

W programie Visual Studio 2012 — w ramach zestawu oprogramowania TFS — znajduje się także agregator sondujący punkt końcowy modułu zbierającego.Po przekroczeniu progu zdefiniowanego przez użytkownika agregator tworzy lub aktualizuje element roboczy zdarzenia produkcyjnego w zestawie narzędzi TFS w programie Visual Studio 2012.

5.Integracja

Elementy robocze utworzone przez oprogramowanie PA for TFS CE są śledzone, przypisywane, hierarchizowane i uwzględniane w raportach w programie Visual Studio 2012, tak jak każdy inny typ elementu roboczego pierwszej klasy.

Zrzut ekranu lokalizacji menu Narzędzia

Rysunek 3: Wyszukiwanie programu PreEmptive Analytics w menu narzędzi programu Visual Studio 2012.

Zrzut przedstawiający Dotfuscator CE ekranu

Rysunek 4: Oprzyrządowanie.W systemie Dotfuscator CE dodanie atrybutu instalacji identyfikuje punkt końcowy modułu zbierającego dane czasu wykonywania.Punkt końcowy może być lokalny obok serwera TFS lub umieszczony na Microsoft Azure zdalnie.

Zrzut programu Visual Studio przedstawiający integracji ekranu

Rysunek 5: Integracja z programem Visual Studio 2012.Elementy robocze zdarzeń produkcyjnych są automatycznie udostępniane wewnątrz oprogramowania Visual Studio po przekroczeniu progu woluminu.W tej kwerendzie „Wszystkie elementy” widoczny jest typ wyjątku, liczba wykrytych wyjątków tego typu oraz liczba maszyn, na których one zostały wykryte.Poniżej można zobaczyć dodatkowe informacje na temat tego elementu roboczego, w tym rejestr stosu oraz przypisanie elementu roboczego, jego priorytet i klasyfikację.

Zrzut ekranu przykładu podsumowania wykresu

Rysunek 6: Raportowanie.Na jednym z przykładów wykresów podsumowujących w programie PA for TFS CE widoczne są wszystkie zdarzenia w stanie otwartym.

PreEmptive Analytics Professional Edition

Oprócz rozszerzonej integracji z oprogramowaniem TFS i wbudowanych opcji oprzyrządowania wersja Professional Edition programu PreEmptive Analytics obejmuje mechanizmy do analizowania danych funkcji, sesji i użytkowników, umożliwiające określanie trendów, wzorców użycia i preferencji użytkowników przez cały okres istnienia aplikacji produkcyjnej.

Podstawowe przypadki użycia programów PreEmptive Analytics Community Edition oraz PreEmptive Analytics Professional Edition

Przypadek użycia

Community Edition

Professional Edition

Śledzenie wyjątków nieobsługiwanych w aplikacjach na platformach .NET Framework i Java

Tak

Tak

Automatyczne tworzenie i aktualizowanie elementów roboczych oprogramowania TFS w programie Visual Studio 2012

Tak

Tak

Zapewnianie opcji wyrażania zgody i opinii zwrotnych przez użytkownika w czasie wykonywania

Tak

Tak

Obsługiwanie programu Visual Studio w wersji 2010

Tak

Śledzenie wyjątków przechwytywanych i zgłaszanych

Tak

Obsługiwanie danych niestandardowych oraz definicji reguł rozszerzania i elementów roboczych

Tak

Obsługiwanie monitorowania elementów w języku JavaScript i aplikacji macierzystych

Tak

Mierzenie czasu używania funkcji i trwania sesji

Tak

  • Środowiska programistyczne muszą spełniać wyjątkowe wymagania, z którymi nie radzą sobie rozwiązania sieciowe, BI ani żadne inne, które nie są przeznaczone specjalnie do stosowania w tych środowiskach.

  • Specyficzne potrzeby programistów i informatyków są w stanie zaspokoić wyłącznie mechanizmy z zakresu analityki aplikacji.

  • W programie Visual Studio 2012 można uzyskać dostęp do gotowego zestawu takich mechanizmów analizowania aplikacji i rozbudowywać go przez integrowanie z innymi programami oraz dodawanie opcjonalnych rozwiązań od firm partnerskich.

Więcej informacji na ten temat znajduje się w następujących witrynach:

  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