Hiperwydajne systemy rozproszone

Tytuł: Hiperwydajne systemy rozproszone
Kod: Arch-hiper
Kategoria: Architektura systemów i aplikacji
Forma: 25% wykłady / 75% warsztaty
Czas trwania: 3 dni
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Praktyczne warsztaty z tworzenia wydajnych i skalowalnych systemów rozproszonych z wykorzystaniem bibliotek Akki. Tworzenie skalowalnych systemów rozproszonych nie jest proste, ale istnieją proste abstrakcje i wzorce, które mogą w tym pomóc.

Korzystając z stosu technologicznego Akki możemy tworzyć systemy, które gotowe są na gwałtowny wzrost ruchu i są w stanie efektywnie (koszty, czasy odpowiedzi, przepustowość) obsłużyć 1 000, 10 000 oraz 1 000 000 req/s.

Akka nie jest frameworkiem, jest to zbiór bibliotek, które można dowolnie łączyć i konfigurować oraz używać z innymi rozwiązaniami, takimi jak np. Spring.

Szkolenie koncentruje się na poznawaniu wielu aspektów budowania wydajnych i skalowalnych rozwiązań, poprzez tworzenie przykładowej aplikacji, która ma być: zawsze dostępna, odporna na błędy, elastyczna na zmiany i zorientowana na zdarzenia. Innymi słowy ma podążać za zasadami zebranymi w Reactive Manifesto.

Wzorce takie jak Event Sourcing i CQRS będą naszymi podstawowymi narzędziami, które dogłębnie przeanalizujemy i wykorzystamy za pomocą gotowych i wygodnych komponentów.

Omówimy jak można skalować każdą cześć systemu całkowicie niezależnie i dynamicznie (w zależności od obsługiwanego ruchu). Baza danych (nawet relacyjna), w końcu przestanie być wąskim gardłem. Duży nacisk położony zostanie na obsługę sytuacji awaryjnych i izolowanie ich wpływu na działanie całości systemu.

Szkolenie możliwe jest do przeprowadzenia w Javie lub Scali.

Wyróżniki szkolenia

  • Proste abstrakcje rozwiązują skomplikowane problemy.
  • Zmiana mindsetu w modelowaniu domeny - większy nacisk na modelowanie eventów niż agregatów.
  • Event Sourcing może być łatwym i zabójczo skutecznym narzędziem w podejściu event-driven, szczególnie w połączeniu z CQRS.
  • Domena jest odseparowana od Akki oraz warstwy infrastrukturalnej przez co jest łatwa w utrzymaniu, testowaniu oraz portowalna.

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Dlaczego reaktywność
    1. reactive manifesto
  2. Reaktywne mikroserwisy
    1. izolacja stanu, obszaru, czasu i błędów
    2. reaktywne wzorce wykorzystywane w mikroserwisach
  3. Korzystanie z Akki w Springu
    1. koegzystencja rozwiązań
  4. Model aktorów
    1. stos bibliotek Akki
    2. podstawy aktorów
    3. Actor System
    4. testowanie aktorów
    5. cykl życia aktorów
    6. obsługa błędów w aktorach
  5. Event Sourcing
    1. wady i zalety Event Sourcingu
    2. CQRS (zapis danych)
    3. Event Driven vs Event Sourcing
    4. różne sposoby implementacji Eventy Sourcingu
      1. spójność danych: optimitic locking vs single writer principle
    5. Command Sourcing
  6. Akka Persistence Typed
    1. podstawowe koncepcje
    2. architektura
    3. separacja domeny od warstwy aplikacyjnej
  7. Implementacja agregatu domenowego
    1. podstawowy przepływ domenowy: komenda -> agregat -> zdarzenia
    2. podstawowy przepływ aplikacyjny: serwis -> aktor/encja persystentna -> agregat -> baza danych
    3. stan aktora persystentnego
    4. API domeny
    5. API encji persystentnej
  8. Gwarancje dostarczania wiadomości
    1. at-most-once
    2. at-least-once
    3. exactly-once
  9. Cykl życia agregatu w Event Sourcingu
    1. wczytywanie stanu
      1. snapshotting
    2. odpytywanie o stan
  10. Modelowanie domeny w Event Sourcingu
    1. podejście event-first
    2. wzbogacanie zdarzeń
  11. Akka Projections
    1. CQRS (odczyt danych)
    2. konfiguracja oraz sposoby uruchamiania
    3. reaktywne projekcje (reactive streams)
  12. Transakcje między wieloma agregatami - wzorzec Sagi
    1. choreografia
    2. orkiestracja
  13. Serializacja danych
    1. omówienie rozwiązań do serializacji danych
      1. schema first vs code first
    2. wersjonowanie i ewolucja modelu zdarzenia
      1. kompatybilność wstecz i wprzód
  14. Skalowanie bazy danych SQL
  15. Skalowanie projekcji
  16. Pluginowość warstwy persystencji
    1. dziennik zdarzeń w SQL i NoSQL (Cassandra, DynamoDB)
  17. Skalowanie systemów rozproszonych
    1. spójność vs dostępność
    2. wydajność vs skalowalność
    3. contention i prawo Amdahla
    4. koherencja i prawo Gunthera
    5. przepustowość a czasy odpowiedzi
  18. Stateful vs stateless systems
  19. Akka Cluster
    1. podstawowa konfiguracja
    2. split brain
    3. strategie deployowania
    4. sposoby inicjalizacji
    5. sharding
      1. sharding encji
      2. rebalancing
      3. passivation
      4. remember entities
    6. obsługa błędów i sytuacji awaryjnych
  20. Akka Cluster Management
  21. Akka Cluster Singleton
  22. Distributed data (CRDTs)


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.