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