Higiena i zdrowie aplikacji .Net (Operating and Instrumenting)

Slides:



Advertisements
Podobne prezentacje
One Framework to rule them all
Advertisements

Polityki kontroli w Windows Server 2008
Decyzje projektowe w .NET Framework
INTRUSION DETECTION SYSTEMS
„Migracja środowisk Microsoft NT/Active Directory/Exchange oraz SharePoint do nowych wersji przy użyciu narzędzi Quest Software” Grzegorz Szafrański Product.
Copyright © 2006 Quest Software Wybrane Narzędzia z Oferty Quest Software Dedykowane dla Baz Danych MACIEJ POGORZELSKI.
WEB SERVICE Stefan Rutkowski.
SERDECZNIE WITAMY Microsoft Developer Days Visual Studio 2005 Warszawa-Gdańsk-Poznań-Wrocław-Katowice 9-13 maja 2005.
Horyzontalne scenariusze pracy
ADAM Active Directory w trybie aplikacyjnym
OLAP budowa aplikacji analitycznych w MS SQL 2000 i Yukon
Administrator w środowisku Windows Agenda Wstęp Wstęp Active Directory – Administracja użytkownikami i zasobami Active Directory – Administracja.
Microsoft Office System w praktyce wdrożenie w COMARCH-CDN
Zarządzanie informacją a produktywność przedsiębiorstwa
Platforma .Net i Vs.Net.
Microsoft Exchange Server 2003 Obieg dokumentów
Tematyka prac magisterskich w Zakładzie Informatyki Stosowanej
Tomasz Smieszkoł - 15 stycznia
Systemy operacyjne.
„Migracja środowisk Novell NDS/eDirectory oraz Novell Groupwise do środowiska Microsoft Active Directory oraz Microsoft Exchange przy użyciu narzędzi Quest.
MOM 2005 Microsoft Operations Manager Dominik Fonrobert 7ZA.
Administracja zintegrowanych systemów zarządzania
Information Bridge Framework platforma integracji Microsoft Office 2003 z aplikacjami Line of Business Krzysztof Michalski10/01/2005.
Enteprise Java Beans Emil Wcisło.
7. Platformy informatyczne przyszłości (wizja SAP)
Projekt i implementacja narzędzia wspierającego zarządzanie siecią komputerową Dyplomant: Piotr Kodzis Promotor: mgr inż. Krzysztof Nierodka.
Analiza, projekt i częściowa implementacja systemu obsługi kina
Multimedialne bazy danych
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
WebSphere Everyplace Micro Environment IBM Workplace Client Technology, Micro Edition Monika Nawrot, Tomasz Jadczyk, Tomasz Sadura KI, EAIiE, AGH.
Novell Account Management 3.0
Sieciowe systemy operacyjne
C# Windows Forms Zastosowania Informatyki Wykład 2
Microsoft Sharepoint 2010 – Peter Dabrowski
.NET gdzie szukać? .NET co warto wiedzieć?
Rozwój aplikacji przy wykorzystaniu ASP.NET
Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki,
WSPARCIE DLA BIZNESU / STR. 2 Mikołaj Gomółka UpGreat Systemy Komputerowe Sp. z o.o Poznań, ul Ostrobramska 22 Tel Faks: 0-61.
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Opracował : Przemysław Drzymała
Licencjonowanie aplikacji serwerowych
ZIS Tematyka prac magisterskich w Zakładzie Informatyki Stosowanej.
Co to jest Visual Studio Team System?
Licencjonowanie narzędzi dla programistów
IBM mainframe jest optymalnym serwerem, o ile … (czy musi być tak drogo?)
Systemy operacyjne. Komputer aby mógł realizować zadania oraz aby wszystkie urządzenia w systemie komputerowym mogły działać poprawnie, musi być wyposażony.
Arkadiusz Twardoń ZTiPSK
Rozdział 1: Wprowadzenie do systemu Windows 2000 i podstaw sieci
Sieciowe Systemy Operacyjne
Rejestr systemu Windows
Wykonał: Michał Nikołajuk
Narzędzia administracyjne
Implementacja systemu
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Bazy danych, sieci i systemy komputerowe
Dział Wsparcia Technicznego MAM PROBLEM! ! II Linia Wsparcia JAKI PROBLEM ???
„Żadna firma nie posiada ani czasu, ani środków niezbędnych do uczenia się wyłącznie na własnych błędach” James Harrington.
Technologie internetowe i mobilne
Uprawnienia w Windows Server
Zakres wykładu Kierunki rozwoju oprogramowania systemów rozproszonych Własności wybranych architektur - problemy badawcze Przykładowe obszary zastosowań.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Platforma .Net.
Zwiększenie poziomu bezpieczeństwa IT oraz dostępności aplikacji bankowych poprzez automatyzację kontroli zgodności z zewnętrznymi i wewnętrznymi regulacjami.
Wdrożenie Foglight w Urzędzie Dozoru Technicznego
Struktura systemu operacyjnego
Temat 1 Pojęcie systemu operacyjnego Opracował: mgr Marek Kwiatkowski.
Zintegrowany monitoring infrastruktury IT w Budimex
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
.NET Core Łukasz Co to takiego? Nowy, open-sourcowy framework pozwalający na pisanie cross-platformowych aplikacji z użyciem.NET.
Podstawy programowania
Zapis prezentacji:

Higiena i zdrowie aplikacji .Net (Operating and Instrumenting) Cezary Nolewajka Getin Sp. z o.o. c.nolewajka@m2mob.com

Wstęp O czym jest ta prezentacja? Monitorowanie i raportowanie działania aplikacji Różne mechanizmy monitorowania Enterprise Management Narzędzia do monitorowania: MOM

Wstęp Dla kogo jest ta prezentacja? Projektanci oraz programiści (projekt i implementacja odpowiednich mechanizmów) Administratorzy (implementacja infrastruktury i konfiguracja Enterprise Management)

Monitorowanie - dlaczego? weryfikacja poprawności działania oraz czy system spełnia wymogi SLA przestoje w działaniu systemu powodują wymierne straty dla organizacji często do 80% czasu poświęconego rozwiązaniu problemu jest poświęcona na zidentyfikowanie problemu monitorowanie działania jest kluczowe dla diagnostyki problemów

Monitorowanie - dlaczego? (c.d.) wiele z problemów objawia się dopiero w środowisku produkcyjnym informacja o awarii systemu będzie znana zanim spostrzegą ją użytkownicy automatyzacja działania i procesów zarządzania systemami możliwość przewidywania i proaktywnego reagowania

Monitorowanie - co? Platorma systemowa Monitorowanie aplikacji Monitorowanie usług (serwisów) jako całości (SLA!) Sieć Monitorowanie sprzętu komputerowego (serwerów)

Monitorowanie - ‘zdrowa’ aplikacja? zwraca poprawne wyniki w odpowiednim czasie wydajna (np. brak zbędnych pętli, oszczędne wykorzystywanie zasobów) optymalne wykorzystanie środowiska aplikacji minimalne wykorzystanie infrastruktury (przy ciągłym zapewnieniu funkcjonalności i wymaganej wydajności)

Monitorowanie - ‘zdrowa’ aplikacja? zwalnia wykorzystywane zasoby jak tylko skończy je wykorzystywać stosuje wydajne wykorzystywanie zasobów pamięci (np. wykorzystywanie z pliku „pagefile” tylko, gdy jest to konieczne) działanie aplikacji nie wpływa negatywnie na inne aplikacje

Monitorowanie - ‘niezdrowa’ aplikacja? nie zwraca wyników zwraca wynik działania zbyt wolno, lub wydajność nie jest stabilna zwraca nieprawidłowe wyniki nie zwalnia wykorzystywanych zasobów w niewydajny sposób wykorzystuje zasoby systemu operacyjnego (np. zarządzanie pamięcią) negatywnie wpływa na działanie innych aplikacji

Monitorowanie - jak? Aspekty wyboru źródła danych Zbieranie informacji z systemów poza aplikacją (np. system, Performance Counters) Przygotowanie aplikacji tak, aby dostarczała danych o działaniu aplikacji

Monitorowanie - jak? (c.d.) Narzędzia od najprostrzych metod aż po infrastruktury VS .Net: System.Diagnostics: Trace/Debug, Performance Counter, EventLog VS.Net, Windows 2000/2003 Server: WMI (Windows Management and Instrumentation) EIF (Enterprise Instrumentation Framework) Microsoft Operations Manager 2000

Monitorowanie - po kolei... Wybór elementów i strategii monitorowania Budowanie danych bazowych (baseline) Wykorzystanie symulacji i sztucznych bodźców (testy) Przygotowanie aplikacji (instrumenting)

Najprostrze narzędzia System.Diagnostics Trace/Debug EventLog Performance Counters

Struktura przykładów int nSleep = 100; int nLoop = 1000; for (int i = 0; i <= nLoop; i++) { nSleep = nSleep - rnd.Next (10, 50); if (nSleep < 10) nSleep = 10; // do something with: // SleepValue // Loop }

System.Diagnostics - Trace/Debug WriteLine, Write, Indent, Unindent Assert TraceSwitch BooleanSwitch TraceListener

System.Diagnostics - Trace/Debug <assert assertuienabled="false" ...></assert> <trace autoflush="true" indentsize="2"> <listeners> <remove name="Default"></remove> <add name="MyListener" type="...” ... /> </listeners> </trace> <switches> <add name="SwitchName" value="2" /> </switches> </system.diagnostics>

01_DebugTrace

System.Diagnostics - Performance Counters CategoryName, CounterName NextValue (odczyt) Increment, IncrementBy, RawValue (zapis) CounterType RawData, Average, Difference, Instantaneous, Percentage, Rate

02_PerformanceCounters

System.Diagnostics - EventLog EventLog.WriteEvent Własne dzienniki zdarzeń (EventLog) Własne źródła zdarzeń (EventSource) HKLM/SYSTEM/CurrentControlSet/ Services/EventLog - uprawnienia!

03_EventLog

WMI - Windows Management and Instrumentation DMTF (Desktop Management Task Force) => CIM (Common Information Model) TDC (Technology Development Committee), 1996 CIM TDC: Compaq, CISCO, HP, IBM/Tivoli, Intel, MS, Novell, SunSoft WBEM (Web Based Enterprise Management) CIM – standard przemysłowy opracowany do reprezentowania systemów, aplikacji, sieci, urządzeń, ... WMI – implementacja WBEM i CIM zrealizowana przez MS

WMI - co można? Zarządzanie obiektami Instrumentacja aplikacji Język zapytań WQL (WMI Query Language) Wyszukiwanie definicji klas i instancji obiektów Subskrypcja zdarzeń Wywoływanie metod Dostęp do atrybutów Strongly-typed WMI Instrumentacja aplikacji Zarejestrowanie klasy w schemacie WMI Emitowanie zdarzeń Udostępnianie metod i danych

WMI - co można? (c.d.) Współpraca z wieloma systemami monitorującymi MS Operations Manager HP OpenView IBM Tivoli NetIQ inne...

WMI - Platform SDK

WMI - instrumentacja aplikacji [assembly:Instrumented("Root/WMITest")] using System.Management.Instrumentation; Zdarzenia [InstrumentationClass(InstrumentationType.Event)] Klasa bazowa BaseEvent Instrumentation.Fire () lub BaseEvent::Fire ()

WMI - instrumentacja aplikacji Obiekty [InstrumentationClass(InstrumentationType.Instance)] Klasa bazowa Instance Klasy i atrybuty publiczne mapowane na typy CLI i WMI InstallUtil !!!

04_WMIExposeEvent

06_WMICallMethod

06_WMICallMethod (c.d.)

WMI - ograniczenia w .Net Ograniczenia WMI w kodzie “managed” Nie da się udostępniać atrybutów do zapisu Nie da się udostępniać metod Nie jest wspierane tworzenie kwalifikatorów Właściwości obiektów nie mogą być definiowane jako atrybuty klucze Ograniczenia te nie dotyczą implementacji WMI w C++ „unmanaged”

05_WMIObjectClass

EIF - Enterprise Instrumentation Framework Wyklucza wady innych API konieczność uczenia się różnych API konieczność zmian w kodzie w celu dostrojenia monitorowanych danych konieczność zmian w kodzie w celu dodania kolejnego mechanizmu monitorowania EIF to rekomendowana technika instrumentacji ze względu na łatwość konfiguracji i zarządzania w środowisku produkcyjnym

EIF - architektura Event Schema bazuje na System.Management, a więc i WMI dla implementacji Event Schema Event Sources Event Sinks Request Tracing (execution flow !!!) Instrumentation API XML Configuration File nie pozwala na udostępnianie instancji obiektów !

EIF

EIF - konfiguracja TraceSessions.config EnterpriseInstrumentation.config <filters> <filter name="defaultSoftwareElementFilter" > <eventCategoryRef name="All Events"> <eventSinkRef name="wmiSink" /> <eventSinkRef name="traceSink" /> <eventSinkRef name="logSink" /> </eventCategoryRef> </filter> </filters>

Microsoft Operations Manager Strategia zarządzania systemami proponowana przez Microsoft Mechanizmy Windows 2000/2003 Server Operations Manager Systems Management Server (zarządzanie zmianami i konfiguracją) Microsoft Operations Framework (MOF) Usługi .Net Mangement Services

Microsoft Operations Manager Zarządzanie operacyjne Zarządzanie rozproszone (agenci) Zarządzanie centralne (konsola administracyjna) Reguły Ostrzeżenia Monitorowanie wydajności Pakiety Management Packs (baza wiedzy technicznej) Graficzne narzędzia raportowania Skalowalność do rozmiarów korporacyjnych Agenci Zautomatyzowanie wdrażania agentów i reguł

Podsumowanie Czy warto monitorować? Właściwy dobór zakresu i strategii Właściwy dobór sposobów notyfikacji Właściwy dobór narzędzi Nie strzelać do wróbla z armaty! WMI EIF Łączenie technik, np.: Trace + CustomTrace Listener + .config + WMI = EIF !!! (no prawie)

Bibliografia Operating .Net-Based Applications (www.microsoft.com/technet/itsolutions/ net/maintain/opnetapp/default.asp) Enterprise Instrumentation Framework Documentation WMI Platform SDK MSDN for Visual Studio .Net 2003 Operations Manager 2000 Documentation CHIP SPECIAL: MS Visual Studio .Net