Plan Szkolenia

a:8:{i:0;a:2:{s:7:"content";s:105:"

Dzień 1: Teoria i wprowadzenie do systemów rozproszonych

";s:9:"timestamp";i:1730117513;}i:1;a:2:{s:7:"content";s:1315:"

  1. Wstęp
    • Wprowadzenie do struktury szkolenia i agendy, omówienie środowiska szkoleniowego.
  2. Podstawowe pojęcia systemów rozproszonych
    • Definicja systemów rozproszonych i ich znaczenie we współczesnych aplikacjach.
    • Kluczowe wyzwania: skalowalność, dostępność, spójność, odporność na błędy.
  3. Modele spójności danych
    • Omówienie Strong Consistency i Eventual Consistency.
    • Zarządzanie spójnością w systemach rozproszonych: quorum, Read-Write Quorums, Read Your Own Writes.
  4. Systemy rozproszonych logów i komunikacja
    • Wzorzec pub/sub i dualizm strumień-tablica.
    • Kompaktowanie danych i procesowanie danych w czasie rzeczywistym.
  5. Case Study 1: Przykład wysoko wydajnych aplikacji
    • Analiza architektury systemu komunikacyjnego (np. WhatsApp, Signal).
    • Wyzwania związane ze spójnością i odzyskiwaniem danych.

";s:9:"timestamp";i:1730117513;}i:2;a:2:{s:7:"content";s:103:"

Dzień 2: Praktyczne aspekty projektowania systemów rozproszonych

";s:9:"timestamp";i:1730117513;}i:3;a:2:{s:7:"content";s:2779:"

  1. Projektowanie aplikacji odpornych na błędy
    • Omówienie wzorców CQRS, Inbox/Outbox, Two-Phase Commit (2PC), Saga, Change Data Capture (CDC), Circuit Breaker, Read Repair.
    • Przykłady zastosowania w praktyce.
  2. Przykłady nierelacyjnych baz danych
    • Bazy dokumentowe (np. MongoDB, CouchDB):
    • Bazy klucz-wartość (np. Redis):
    • Bazy grafowe (np. Neo4j, OrientDB):
    • Bazy kolumnowe (np. HBase):
    • Bazy obiektowe (np. GridGain):
    • Bazy time-series (np. TimescaleDB, InfluxDB):
    • Search Engine (np. Apache Solr):
    • In-Memory Grid (np. Hazelcast, GridGain):
  3. Nowoczesne bazy danych: Partycjonowanie, sharding i replikacja
    • Partycjonowanie i sharding: Omówienie technik dzielenia danych na mniejsze fragmenty w celu poprawy wydajności i skalowalności systemów.
    • Replikacja danych: Różne typy replikacji (synchroniczna, asynchroniczna), korzyści i wyzwania związane z replikowaniem danych w rozproszonych środowiskach.
    • Indeksy wtórne (Secondary Indexes): Tworzenie i optymalizacja zapytań z wykorzystaniem indeksów wtórnych dla poprawy wydajności.
  4. Case Study 2: Projektowanie systemu opartego na grafach
    • Projektowanie i modelowanie grafowe w systemach rozproszonych z użyciem Neo4j lub OrientDB.
    • Ćwiczenie praktyczne: modelowanie grafowe.
  5. Zarządzanie danymi w czasie rzeczywistym vs klasyczne hurtownie danych
    • Wprowadzenie do przetwarzania danych w czasie rzeczywistym oraz batch processing.
    • Przykład wykorzystania Timescale w monitorowaniu danych czasowych.
  6. NewSQL – nowoczesne podejście do relacyjnych baz danych
    • Omówienie koncepcji NewSQL jako połączenia zalet relacyjnych baz danych z elastycznością i skalowalnością rozwiązań NoSQL.
    • Zadanie dla NewSQL: Uczestnicy zapoznają się z najpopularniejszymi bazami NewSQL, a w zadaniu praktycznym będą pracować z CockroachDB. Celem zadania będzie implementacja transakcji z zachowaniem gwarancji ACID w środowisku rozproszonym.

";s:9:"timestamp";i:1730117513;}i:4;a:2:{s:7:"content";s:95:"

Dzień 3: Praktyczne ćwiczenia i optymalizacja baz danych

";s:9:"timestamp";i:1730117513;}i:5;a:2:{s:7:"content";s:2693:"

  1. Zadania praktyczne na przykładzie nierelacyjnych baz danych:
    • Zadanie dla MongoDB: Tworzenie złożonych zapytań z agregacją danych.
      • Uczestnicy będą pracować nad tworzeniem zapytań z wykorzystaniem pipeline MongoDB, grupowaniem i filtrowaniem danych w czasie rzeczywistym.
    • Zadanie dla Redis: Implementacja mechanizmu cache'owania przy użyciu Redis.
      • Uczestnicy zbudują system przechowywania wyników zapytań w Redis, aby zoptymalizować wydajność odczytów.
    • Zadanie dla CouchDB: Synchronizacja danych w CouchDB przy użyciu funkcji replikacji.
      • Zadanie obejmuje konfigurację replikacji pomiędzy dwoma instancjami CouchDB i analizę konfliktów danych.
    • Zadanie dla Neo4j: Optymalizacja zapytań z Cypher w bazie grafowej.
      • Uczestnicy przeanalizują duży graf i zbudują optymalizacje zapytań wyszukujących zależności między węzłami.
    • Zadanie dla InfluxDB: Przetwarzanie danych czasowych i optymalizacja retencji danych.
      • Ćwiczenia z użyciem InfluxQL do analizy przepływu danych oraz ustalania strategii retencji.
    • Zadanie dla GridGain: Przetwarzanie danych z wykorzystaniem GridGain, budowanie i optymalizacja zapytań w środowisku obiektowym.
      • Uczestnicy będą optymalizować przechowywanie i odczyt dużych obiektów.
    • Zadanie dla Apache Solr: Implementacja pełnotekstowego wyszukiwania z użyciem Solr.
      • Tworzenie indeksów i optymalizacja zapytań wyszukiwawczych na dużych zestawach danych.
  2. Zadanie: Transakcje rozproszone
    • Uczestnicy zapoznają się z koncepcją transakcji rozproszonych, w tym mechanizmami zapewniającymi spójność w systemach rozproszonych.
    • Praktyczne ćwiczenie: Implementacja transakcji rozproszonych z wykorzystaniem wzorców takich jak Two-Phase Commit (2PC) lub Saga.
  3. Odzyskiwanie danych po awarii i kopie zapasowe
    • Wzorce Last-Writer-Wins, Vector Clocks, CRDT.
    • Strategie odzyskiwania danych po awarii.
  4. Podsumowanie i dyskusja
    • Sesja Q&A i wymiana doświadczeń.

";s:9:"timestamp";i:1730117513;}i:6;a:2:{s:7:"content";s:110:"

Szkolenie nie omawia baz relacyjnych, Elasticsearch, Apache Kafka, Prometheus, Cassandra.

";s:9:"timestamp";i:1730117513;}i:7;a:2:{s:7:"content";s:30:"

";s:9:"timestamp";i:1730117513;}}

 21 godzin

Liczba uczestników


cena netto za uczestnika

Opinie uczestników (1)

Propozycje terminów

Powiązane Kategorie