Projektowanie aplikacji o wysokiej wydajności - kurs 46 900 rub. z Centrum Szkoleniowego IBS, szkolenie 25 godz., data: 11 marca 2024 r.
Miscellanea / / November 28, 2023
Jeszcze przed zaprojektowaniem jakiegokolwiek systemu oprogramowania należy zrozumieć, że ze względu na pewne ograniczenia zawsze może on stać się systemem o wysokiej wydajności. Opracowując system o wysokiej wydajności, konieczne jest określenie, jakie parametry określają system jako wysokowydajny. Jeżeli system charakteryzuje się wysoką wydajnością, wówczas w celu jego pomyślnego wdrożenia należy podjąć specjalne środki w celu zapewnienia wydajności.
Kurs analizuje różnice pomiędzy systemami o dużym obciążeniu, wysokiej niezawodności i wysokiej wydajności.
Głównym celem kursu jest zapewnienie zrozumienia podstawowych pojęć, zasad i podejść stosowanych w projektowaniu systemów o wysokiej wydajności.
Popularne zdanie: „To powinno działać szybko!” - nie jest to wymóg. Podczas szkolenia uczestnicy nie tylko dowiedzą się, dlaczego nie jest to wymaganie, ale także dowiedzą się, jak prawidłowo pracować z wymaganiami wydajnościowymi i je analizować. Kurs wprowadza także pojęcia „scenariuszy krytycznych”. Studenci będą utrwalać zdobytą wiedzę dotyczącą pracy z wymaganiami w praktyce podczas zajęć praktycznych.
Kurs analizuje główne przykłady utraty produktywności systemów oprogramowania. Następnie podano główne sposoby zwalczania wydajności systemu. Również w ramach kursu omawiane są wzorce stosowane przy projektowaniu systemów o podwyższonych wymaganiach na praktycznych przykładach zastosowań. wydajność, dostarcza informacji o głównych antywzorcach napotykanych podczas wdrażania systemów oprogramowania, które mają na to wpływ wydajność.
Szczególną uwagę zwraca się na przygotowanie systemu do testów i analizę wyników testów. Opisuje tworzenie programu i metodykę testowania układów o dużym obciążeniu, modele obciążeniowe systemów i omawia metodologię pozwalającą na ilościową ocenę wydajności systemy.
Ponieważ twórcy oprogramowania często muszą rozwiązywać problemy związane z tworzeniem mocno obciążonych systemów, które przetwarzają duże ilości danych biorąc pod uwagę wymagania dotyczące czasów reakcji i ilości przetwarzanych danych, kurs będzie przydatny nie tylko dla architektów, ale także dla kierowników projektów deweloperskich, deweloperzy.
1. Koncepcja systemu o wysokiej wydajności (2,5 godziny):
Aplikacja o wysokiej wydajności, aplikacja o dużym obciążeniu, aplikacja o wysokiej dostępności.
Zarządzanie wydajnością aplikacji.
Zależność ceny korekcji błędów od etapu detekcji i etapu wprowadzenia.
Podstawowe charakterystyki opisujące wydajność systemu.
Model obciążenia systemu.
2. Analiza wymagań dla systemów o dużej wydajności (1,5 godz.)
Tworzenie wymagań niefunkcjonalnych dla systemów o wysokiej wydajności.
Radzenie sobie ze sprzecznościami podczas tworzenia wymagań wydajnościowych.
Kompletność wymagań.
Warsztat (1 godzina):
Analiza wymagań pod kątem niespójności i kompletności.
2.1.Taktyka architektoniczna. Taktyka produktywności (1,5 godziny)
Cechy formułowania wymagań dla systemów kolejkowych (QS).
3. Projektowanie systemów o dużej wydajności (2 godz.)
Atrybuty jakości systemu.
Kompromisy przy jednoczesnej pracy nad kilkoma atrybutami jakości: przykład CAP i PACELC.
Warsztat: Analiza zasady równoważenia atrybutów jakościowych na przykładzie Amazon Dynamo DB (1 godz.):
Rozważenie podejść do elastycznego skalowania systemu na przykładzie Amazon Dynamo DB przy zachowaniu kontroli nad odpornością na awarie i utrzymaniu stałej wydajności.
3.1. Klasyczne podejście do wydajności
Główne przyczyny utraty wydajności systemu (1 godzina).
Podstawowe metody zwiększania wydajności systemu (1 godz.).
Zasady skalowania poziomego i pionowego systemów (0,5 godz.).
Warsztaty (2 godziny):
Analiza przykładu skalowania systemu.
Konwersja systemu monolitycznego do Map-Reduce.
Przegląd Map-Reduce.
Konwersja Map-Reduce na architekturę Lambda w celu ograniczenia problemów związanych z czystą praktyką Map-Reduce.
4. Wzorce wdrażania systemów o dużej wydajności (5 godz.)
Główne klasy wzorców stosowanych w budowaniu systemów o dużej wydajności: GRASP, wzorce architektury, wzorce integracji aplikacji.
Przykłady praktycznej realizacji szablonów we współczesnych standardach.
Przykłady praktycznej implementacji szablonów w frameworkach rozwoju nowoczesnych systemów integracyjnych.
5. Kodowanie systemów o dużej wydajności (2 godz.)
Podstawowe zagadnienia kodowania systemów o dużej wydajności.
Metody optymalizacji dla współczesnych kompilatorów i środowisk wykonawczych.
6. Testowanie systemów o wysokiej wydajności (2 godziny)
Rodzaje testów stosowanych do sprawdzenia wydajności systemu.
Przygotowanie do testów (opracowanie scenariuszy i utworzenie modelu obciążeniowego).
Analiza wyników badań.
7. Metodologia SPE (1 godzina)
Wprowadzenie do metodyki SPE. Historia, granice użytkowania.
Metodologia analizy systemów z wykorzystaniem SPE.
Warsztat (1 godzina):
Rozważenie praktycznego przykładu zastosowania metodologii SPE do:
Szacowanie granic wydajności systemu na podstawie aktualnej charakterystyki sprzętu i oprogramowania;
Ocena wpływu decyzji dotyczących architektury na wydajność systemu;
Szacunki wymagań sprzętowych w oparciu o wymagania wydajnościowe, w oparciu o skalowanie bieżących procesów systemowych.