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