Bazy danych w projektowaniu wysoko wydajnych systemów rozproszonych

Tytuł: Bazy danych w projektowaniu wysoko wydajnych systemów rozproszonych
Kod: ddb-database
Kategoria: Bazy danych
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy, architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Poziom skomplikowania i mnogość dostępnych rozwiązań zwiększyła się w sposób wykładniczy, a ryzyko wyboru niewłaściwej bazy danych może okazać się katastrofą całego projektu. Mikrousługi nad którymi pracowaliśmy x czasu zostały wdrożone.

Skrupulatnie wydzieliliśmy konteksty, opanowaliśmy granice agregatów, event storming sprawił, że naprawdę wiemy o co w tym biznesie chodzi. Jednak po wdrożeniu na produkcję system okazuje się niewydajny, może trzeba zmienić bazę danych? A dlaczego w zasadzie zdecydowaliśmy się na bazę relacyjną? Może dokumenty będą lepsze? No właśnie, w nowoczesnych, rozproszonych systemach nie jest to takie oczywiste..

Dlatego to szkolenie jest dla Ciebie jeżeli chcesz:

  • poznać drivery architektoniczne wskazujące na wybór odpowiedniej bazy danych do projektowanego systemu
  • wiedzieć jak baza danych z której korzystasz działa “pod maską”
  • poznać wzorce aplikacyjne pozwalające opanować błędy związane z brakiem spójności danych
Szkolenie to niezbędnik każdego specjalisty projektującego, rozwijającego i utrzymującego aplikacje zbudowane w architekturze mikrousługowej.

Uczestnicy zostaną wprowadzeni do podstawowych pojęć związanych z systemami rozproszonymi i bazami danych. Dowiedzą się, dlaczego projektowanie wysoko wydajnych systemów rozproszonych jest kluczowe w dzisiejszych aplikacjach. Warsztat skupia się na praktycznym projektowaniu wykorzystania baz danych w kontekście systemów rozproszonych. Uczestnicy dowiedzą się, jak zoptymalizować wydajność swoich baz danych i unikać typowych pułapek. Szkolenie będzie zawierać wykłady teoretyczne, studia przypadków, praktyczne ćwiczenia oraz dyskusje, które pomogą uczestnikom zrozumieć i zastosować teorię w praktyce. Po zakończeniu szkolenia uczestnicy będą mieć solidne podstawy w projektowaniu baz danych w systemach rozproszonych, co pozwoli im efektywniej tworzyć wysoko wydajne aplikacje i systemy.

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. Wprowadzenie do systemów rozproszonych
    1. Czym są systemy rozproszone?
    2. Bazy danych jako systemy rozproszone
    3. Dlaczego systemy rozproszone są ważne?
    4. Wyzwania w budowaniu systemów rozproszonych
  2. Bazy danych relacyjne i nierelacyjne
    1. Relacyjne bazy danych
      1. Architektura relacyjnych baz danych
        1. Transaction Log
        2. Indeksy
      2. Skalowanie relacyjnych baz danych
        1. Skalowanie wertykalne
        2. Repliki do odczytu
        3. Partycjonowanie
      3. Kiedy stosować relacyjne bazy danych?
      4. Kluczowe czynniki architektoniczne decydujące o wyborze relacyjnej bazy danych
      5. Przykłady systemów opartych o relacyjne bazy danych
    2. Bazy danych NoSQL
      1. Geneza powstania nierelacyjnych baz danych
      2. Rodzaje nierelacyjnych baz danych
        1. Key-value
        2. Dokumentowe
        3. Kolumnowe
        4. Grafowe
        5. Timescale
        6. Search Engine
      3. Architektura nie relacyjnych baz danych
        1. Twierdzenie CAP
        2. Typowe wzorce wykorzystywane w projektowaniu rozproszonych baz danych
          1. Partitioning
          2. Sharding
          3. Replikacja
          4. Secondary indexes
          5. Lider, follower
      4. Kluczowe czynniki architektoniczne decydujące o wyborze nierelacyjnych bazy danych
      5. Przykłady systemów opartych o nierelacyjne bazy danych
    3. Zarządzanie spójnością danych w nierelacyjnych bazach danych
      1. Gwarancja spójności Eventual Consistency
      2. Gwarancja spójności Strong Consistency
    4. Zrozumienie i łagodzenie typowych problemów związanych z rozproszeniem danych
      1. Read-Write Quorums
      2. Read Your Own Writes
    5. Strategie odzyskiwania danych po awarii i tworzenia kopii zapasowych
      1. Ostatni wygrywa
      2. Wektor wersji
      3. Conflict Free Replicated Data Types (CRDT)
  3. System rozdystrybuowanego logu
    1. Wzorzec pub/sub
    2. Apache Kafka jako baza danych
      1. Dualizm strumień-tablica
      2. Kompaktowanie danych
    3. Procesowanie danych w czasie rzeczywistym vs klasyczne hurtownie danych
    4. Przykłady systemów opartych distributed log
      1. aplikacji chat messaging system
  4. Projektowanie wysoko wydajnych aplikacji wykorzystujących nierelacyjne bazy danych
    1. Najczęstsze problemy
      1. Transakcje rozproszona
      2. Zapytania skanujące pełny zbiór danych
    2. Wzorce wykorzystywane w projektowanie aplikacji odpornych na błędy
      1. CQRS
      2. Inbox, Outbox
      3. Two-Phase Commit (2PC)
      4. Saga
      5. Change Data Capture (CDC)
      6. Circuit Breaker
      7. Read Repair
  5. Omówienie implementacji wybranych rozproszonych baz danych
    1. Bazy danych klucz wartość
      1. Redis
      2. DynamoDB
      3. Voldemort
    2. Bazy danych dokumentowe
      1. MongoDB
      2. CouchDB
    3. Bazy danych kolumnowe
      1. Cassandra
      2. Clickhouse
    4. Bazy danych grafowe
      1. Neo4j
      2. ArangoDB
    5. Bazy danych timescale
      1. Prometheus
      2. InfluxDB
    6. Silniki wyszukiwań
      1. Elasticsearch, Apache Lucene


Pobierz program w formacie PDF

Trenerzy

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

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.