Kod: ARC-008
Czas trwania: 24 godzin
Czas trwania: 24 godzin
Opis szkolenia
Już przed rozpoczęciem projektowania jakiegokolwiek systemu oprogramowania trzeba wziąć pod uwagę, że ze względu na pewne ograniczenia może on w dowolnym momencie okazać się wysokowydajnym systemem. Już w trakcie tworzenia wysokowydajnej aplikacji należy ustalić, jakie parametry będą określać wysoką wydajność systemu.Niniejsze szkolenie określa różnice między systemami o wysokim obciążeniu, wysokiej dostępności i wysokiej wydajności. Głównym celem szkolenia jest prezentacja podstawowych pojęć, zasad i podejść wykorzystywanych podczas projektowania wysokowydajnych systemów.
Często słyszana fraza: "To powinno pracować szybko!" nie jest wymogiem. Uczestnicy szkolenia dowiedzą się, jak prawidłowo pracować z wymogami wydajności i rozpoznawać je.
Podczas szkolenia rozpatrywane są przykłady i ćwiczenia dotyczące utraty wydajności w systemie aplikacji oraz główne metody w walce o przywrócenie wymaganej wydajności systemu. Tematy poruszane podczas szkolenia dotyczą praktycznych przykładów użycia szablonów używanych w projektowaniu systemu aplikacji z wysokimi wymogami wydajności oraz wiadomości na temat głównych szablonów, które mogą negatywnie wpłynąć na wydajność systemu.
Szkolenie ze szczególną uwagą omawia przygotowanie systemu do testowania i analizę wyników testowych. Uczestnicy zostaną zapoznani z procesem tworzenia programu oraz różnymi metodami testowania systemów z wysokim obciążeniem i modelem obciążenia systemu. Omówiony zostanie także przegląd metodyk, pozwalających na przeprowadzenie oceny ilościowej wydajności systemu.
Jako że programiści systemów często muszą radzić sobie z problemami, związanymi z tworzeniem systemów o wysokim obciążeniu, które zapewniają przetwarzanie dużej ilości danych z określonymi wymogami co do czasu odpowiedzi oraz ilości danych, szkolenie to może okazać się pomocne nie tylko dla architektów, lecz także dla menedżerów projektów i starszych programistów.
Plan szkolenia
Pojęcie systemu o wysokiej wydajności- High-Performance application, High-Load application, High-Availability application.
- Zarządzanie wydajnością aplikacji
- Zależność kosztu naprawy błędów od etapu identyfikacji i etapu wystąpienia błędu
- Główne parametry opisujące wydajność systemu
- Model wydajności systemu
- Określenie niefunkcjonalnych wymagań dla wysokowydajnych systemów
- Praca z nieścisłościami podczas określania wymagań dla wydajności
- Kompletność wymagań
- Ćwiczenia praktyczne
- Analiza wymagań dla nieścisłości i kompletności
- Atrybuty jakości systemu
- Główne przyczyny obniżenia wydajności systemu
- Główne metody stosowane dla podwyższenia wydajności systemu
- Ćwiczenia praktyczne
- Część 1: Budowanie algorytmu sortowania obiektów z użyciem równoległego sortowania. Omówienie zbudowanego algorytmu
- Część 2: Ilościowa ocena dostępu do bazy danych przy użyciu indeksów. Analiza zależności czasu dostępu od długości klucza i ilości wejść do bazy danych
- Główne klasy szablonów stosowane do budowania wysokowydajnych systemów (GRASP, Architecture patterns, Application Integration patterns)
- Przykłady praktycznego zastosowania szablonów we współczesnych standardach
- Przykłady praktycznego zastosowania szablonów we współczesnych systemach integracji podczas budowy frameworków
- Ćwiczenia praktyczne
- Optymizacja wydajności aplikacji sekwencyjnie przetwarzającej dużą ilość danych
- Główne zagadnienia dotyczące kodowania wysokowydajnych systemów
- Metody optymizacji współczesnych kompilatorów i środowisk wykonania
- Rodzaje testów używanych przy dokazaniu wydajności systemu
- Przygotowanie do testowania (tworzenie scenariuszy i budowanie modelu obciążenia)
- Analiza wyników testowania
- Optymizacja wydajności systemu
- Sposoby optymizacji wydajności złożonych systemów rozprowadzonych
- Optymizacja wydajności i poprawa stabilności aplikacji Java
- Poprawa wydajności baz danych
- Wprowadzenie do metodologii SPE: historia, granice użytkowania
- Zastosowanie modelu wydajności systemu w analizie współczesnych systemów
- Zastosowanie SPE podczas projektowania systemu
- Metodyka analizy systemów przy użyciu SPE
- Tworzenie modelu wydajności systemu testowego
Cele
- Określenie parametrów systemu o wysokiej wydajności
- Jak analizować wymagania systemowe, związane z obciążeniem systemu
- Planowanie procesu rozwoju systemu z wysoką wydajnością
- Projektowanie systemów przy użyciu optymalnych metod w celu zapewnienia wymaganej wydajności
- Jak współpracować z zespołem testowym podczas przeprowadzania testów obciążeniowych
- Jak optymizować systemy z wysokimi wymogami wydajności
- Użycie metodyki SPE w celu zapewnienia wysokiej wydajności systemu na etapie projektowania
Grupa docelowa
- Architekci
- Projektanci
- Analitycy
- Menedżerowie projektów
- Team leaderzy
- Starsi programiści
Wymagania
Wymagane:- Wiedza na temat UML i umiejętność zastosowania
- Podstawowa wiedza na temat projektowania zorientowanego obiektowo
- Znajomość języka Java
- Podstawowa wiedza z zakresu architektury komputerowej
- Podstawowa wiedza z zakresu architektury sieci i przekazywania danych
- Wiedza z zakresu wzorców GOF