Apache Kafka - niezbędnik programisty Python

Tytuł: Apache Kafka - niezbędnik programisty Python
Kod: python-kafka
Kategoria: Python
Forma: 50% wykłady / 50% ćwiczenia
Czas trwania: 4 dni
Odbiorcy: architekci, developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

W trakcie tego praktycznego warsztatu zapoznamy się z narzędziami i bibliotekami, które pozwolą programistom Pythona w efektywny sposób implementować oraz testować systemy wykorzystujące Apache Kafka. Przedstawione zostaną innowacyjne sposoby implementacji, w których Kafka to nie tylko broker wymiany wiadomości, ale też narzędzie do trwałego zapisywania i odczytywania danych, ich agregacji oraz strumieniowania.

Omówimy sposoby integracji danych z klastra z popularnymi bazami danych oraz sposoby łączenia ze sobą strumieni danych.

W części warsztatowej położymy nacisk na testowanie automatyczne wytworzonego kodu, zgodność z wzorcami projektowymi oraz dobrymi praktykami wytwarzania oprogramowania.

Szkolenie to niezbędnik programistyczny dla każdego dewelopera rozpoczynającego swoją przygodę z implementacją aplikacji posługujących się Kafką. Jest to zbiór najbardziej efektywnych praktyk zebranych na bazie doświadczenia w pracy z systemami wykorzystującymi Apache Kafka.

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. Architektura Apache Kafka
    1. Wprowadzenie do komunikacji asynchronicznej
      1. Komunikacja w monolicie vs mikrousługi
      2. Przykłady zastosowań komunikacji asynchronicznej
      3. Systemy oparte o zdarzenia
    2. Architektura Apache Kafka
      1. Wprowadzenie do podstawowych pojęć
        1. Topics, Partitions, Offsets
        2. Brokers
        3. Topics Replication
        4. Producers
        5. Consumers, Consumers Groups
        6. Offsets
        7. Acks
      2. Kolejność wiadomości
      3. Replikacja
      4. Jak dobrać odpowiednią ilość partycji?
      5. Poziomy potwierdzenia dostarczenia wiadomości
      6. Co zapewnia Apache Kafka
      7. Skąd bierze się wydajność?
    3. Architektura Confluent Platform
      1. Kafka Streams
      2. Kafka Connect
      3. KSQL
      4. Rest Proxy
      5. Schema Registry
    4. Kafka CLI
      1. Zarządzanie Topic’ami
      2. Wysyłanie wiadomości
      3. Odbieranie wiadomości
      4. Monitorowanie i zarządzanie Consumer Groups
      5. Zarządzanie Offsetami
    5. Pythonowy klient confluent_kafka
      1. Kafka Producer
        1. Implementacja niestandardowego partycjonowania
        2. Serializacja wiadomości
        3. Idempotentność
      2. Kafka Consumer
        1. Delivery semantics
        2. Deserializacja wiadomości
        3. Partition assignment strategies
        4. Static membership
        5. Implementacja cache w pamięci opartego o Kafka Consumer
      3. Transakcje
        1. Jak działają transakcje?
        2. Jak dobrać parametr transaction.id?
        3. Do czego wykorzystać transakcje na Apache Kafka?
        4. Implementacja aplikacji biznesowej przetwarzającej wiadomości w sposób transakcyjny
      4. Jak skonfigurować system do bezstratnego dostarczania wiadomości?
  2. Przetwarzanie strumieni zdarzeń, Event Streaming
    1. Koncepcja zastosowania w ekosystemie Confluent
    2. Architektura aplikacji opartych o pythonową implementację Kafka Streams, Faust-streaming
    3. Dualizm strumień-tablica
      1. Lokalna baza danych RocksDB
      2. Repartition topic
      3. Changelog logic
    4. Analiza topologii strumieni
    5. Reset tool
    6. Operacje bezstanowe
    7. Operacje stanowe
      1. Tablice
      2. Agregowanie danych
      3. Łączenie strumieni
      4. Agregacja danych w oknach czasowych
    8. Przetwarzanie zgodnie z podejściem Stateful Record-By-Record
    9. Exactly once processing
    10. Testowanie aplikacji opartych o pythonową implementację Kafka Streams, Faust-streaming
      1. Testy jednostkowe
      2. Testy integracyjne
    11. Implementacja wzorców
      1. Saga
      2. Read-Process-Write
      3. Sortowanie i deduplikacja zdarzeń
  3. Wykorzystanie Apache Kafki z frameworkami webowymi na przykładzie FastAPI
    1. Podstawowe operacje
      1. Wysyłka wiadomości
        1. tryby wysyłania wiadomości
        2. obsługa potwierdzeń i błędów
      2. Odbiór wiadomości
        1. Wielowątkowość
        2. Walidacja wiadomości
        3. Zarządzanie potwierdzeniami
        4. Ponawianie
        5. Wysyłka odpowiedzi
      3. Transakcje
        1. Publikowanie transakcyjne
        2. Transakcje inicjowane przez odczyt wiadomości
        3. Zarządzanie transaction.id
    2. Prawidłowa konfiguracja aplikacji
      1. Zarządzanie błędami
      2. Ustawienia klienta Kafki
      3. Serializacja i deserializacja
      4. Nagłówki
    3. Testowanie
      1. Przegląd możliwości testowania asynchronicznego z pytest
      2. Uruchamianie Kafka do testów z wykorzystaniem docker i docker compose
      3. Uruchamianie Kafka do testów z wykorzystaniem Testcontainers
    4. Implementacja aplikacji biznesowej z wykorzystaniem FastAPI, Apache Kafka i relacyjnej bazy danych
      1. Modelowanie procesów biznesowych w podejściu asynchronicznym
      2. Implementacja mechanizmów zapewniających idempotentność
      3. Wpływ asynchroniczności na modelowanie REST API
      4. Różne poziomy spójności
      5. Implementacja wzorca Outbox


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.