Tworzenie złożonych systemów w architekturze zdarzeniowej z wykorzystaniem Apache Kafka

Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Wstęp - co zamierzamy osiągnąć
- Asynchroniczna komunikacja pomiędzy poszczególnymi Bounded Contextami
- Wykorzystanie zdarzeń do budowy systemu raportowego
- Architektura aplikacji
- Zapoznanie z domeną systemu
- Bounded Context
- Model C4
- Drivery architektoniczne
- Przygotowanie środowiska pracy
- Instalacja środowiska deweloperskiego (IDE)
- Instalacja Javy
- Instalacja MySQL
- Zbudowanie projektu szkieletowego na podstawie szablonu z repozytorium
- Architektura Event-Driven
- Zalety Event-Driven Architecture
- Wyzwania związane z komunikacją asynchroniczną
- Orkiestracja zdarzeń i wzorzec Saga
- Architektura pluginowa
- Anatomia Apache Kafka
- Porównanie Kafka vs RabbitMQ vs AWS SQS
- Brokery
- Producent
- Konsumer
- Topiki
- Wiadomość
- typ danych
- nagłówek
- Partycje
- Zarządzanie Apache Kafka
- Poznanie narzędzia Lenses.io
- Zarządzanie topikami
- Schema Registry
- Zarządzanie grupami konsumerów
- Wyszukiwanie wiadomości za pomocą KSQL
- Wstawianie nowych wiadomości na topik
- Zarządzanie offsetami
- Implementacja komunikacji asynchronicznej w systemie ze złożoną domeną
- Problem transakcyjności i implementacja wzorca Outbox pattern
- Kafka Connect
- Implementacja wzorca Outbox
- Wsparcie dla Kafki w Spring Boot
- Implementacja konsumera zdarzeń
- Obsługa błędów
- Poison Pill
- Dead Letter Topic
- Błędy serializacji i deserializacji
- Implementacja producenta zdarzeń
- Debugowanie problemów i śledzenie logów
- Problem transakcyjności i implementacja wzorca Outbox pattern
- Wysoko wydajne raporty danych za pomocą wzorca CQRS 3 poziomu
- Budowanie stosu read w oparciu o zdarzenia
- Problem ostatecznej spójności
- Regeneracja danych w oparciu o Kafkę
- Testowanie aplikacji w architekturze zdarzeniowej
- Testowanie asynchroniczne
- Awaitility w JUnit
- Testy integracyjne za pomocą Testcontainers
- Testy E2E w architekturze zdarzeniowej
- Debugowanie
- Niedeterministyczność
- Testowanie asynchroniczne
- Podsumowanie
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu
Kompleksowe szkolenie pokazujące proces budowania złożonego systemu informatycznego w architekturze rozproszonej z wykorzystaniem brokera Kafka i komunikacji w formie publish - subscribe. Przedstawienie zalety i wyzwania stojące podczas pracy z architekturą aplikacji w formie rozproszonej przy jednoczesnej komunikacji asynchronicznej.
Cel szkolenia
Poznasz najbardziej popularne obecnie narzędzie do pracy w architekturze zdarzeniowej – Kafkę. Nauczysz się ją wykorzystywać do komunikacji pomiędzy poszczególnymi modułami aplikacji. Zaimplementujemy, oparty na rzeczywistej domenie biznesowej, system informatyczny komunikujący się wyłącznie asynchronicznie przy wsparciu Spring Boot. Dowiesz się na co zwrócić szczególną uwagę przy implementacji takich rozwiązań, a także zdobędziesz umiejętności debugowania i naprawiania potencjalnych problemów.
Dla kogo?
Adresatami są osoby pracujące na codzień, lub mające zamiar pracować ze złożonymi systemami informatycznymi w architekturze rozproszonej z wykorzystaniem Kafki. Wymagane umiejętności to znajomość języka programowania Java, przynajmniej na średnim poziomie, podstawowa znajomość SQL oraz Spring Boot.
Co usprawnisz w swojej pracy?
Praca w architekturze rozproszonej z wykorzystaniem komunikacji asynchronicznej wymaga sporo doświadczenia i znajomości pewnego warsztatu, który pozwoli Ci szybko rozwijać, a potem utrzymywać takie systemy. Jeżeli już pracujesz z Kafką to odkryjemy przed Tobą jej wszystkie sekrety i sprawimy że wniesie ona jeszcze większą wartość dodaną do Twojego projektu.
Gdzie użyjesz nabytą wiedzę?
Szkolenie przyda Ci się podczas pracy z aplikacjami w architekturze rozproszonej. Pozwoli Ci wprowadzić całą gamę usprawnień do projektu, które zdecydowanie wpłyną na jego jakość. Jeżeli dopiero zamierzasz zbudować system w oparciu o Kafkę i komunikację asynchroniczną, to dzięki kursowi dowiesz się na co szczególnie zwrócić uwagę żeby uniknąć późniejszych problemów i wykorzystać maksymalną wartość tego narzędzia.
Czego się nauczysz?
Dogłębnie poznasz architekturę i sposób działania Kafki w integracji ze Spring Bootem jako narzędzia do implementacji złożonego systemu informatycznego. Dowiesz się jak dobrze wdrażać i testować aplikację opartą o zdarzenia. Rozważymy również kwestie późniejszego zarządzania i utrzymania takich systemów.
Prework - jak przygotować się do szkolenia?
- Przypomnienie najważniejszych aspektów programowania w języku Java
- Podstawowe kontrukcje typu warunek, pętla itd.
- Programowanie obiektowe w Java
- Kolekcje
- Stream API
- Przypomnienie czym jest Spring Boot jako framework do tworzenia nowoczesnych aplikacji
- Beany/wstrzykiwanie zależności
- 3-warstwowa architektura
- Podstawy REST API
- Komunikacja z bazą danych
- Powtórka podstawowych informacji o bazach danych i języku SQL:
- Co to jest baza danych?
- Co to jest tabela?
- SELECT ... FROM ... WHERE .... ORDER BY
- INSERT/UPDATE/DELETE
Spring BOOT
Nowoczesny framework do szybkiego tworzenia aplikacji webowych. Pozwala w łatwy sposób udostępnić aplikację za pomocą wbudowanego serwera HTTP w postaci REST API. Umożliwia szybką implementację najbardziej potrzebnych funkcjonalności aplikacji, takich jak połączenie z bazą danych czy wysyłkę emaili.
MySQL
Jedna z najbardziej popularnych, relacyjnych baz danych. Bardzo dobrze wspiera język SQL (Structure Query Language). Jest wykorzystywana zarówno w małych jak i dużych projektach. Cechuje się wysoką niezawodnością i szybkością działania.
Kafka
Skalowalna i bardzo wydajna platforma streamingowa służąca do przetwarzania ogromnych ilości informacji w modelu publish-subscribe. Doskonale sprawdza się w systemach czasu rzeczywistego takich jak śledzenie aktywności użytkownika. Bardzo dobrze pozwala również wdrożyć rozproszoną architekturę aplikacji z centralnym brokerem wiadomości sterującym pracą poszczególnych usług za pomocą przekazywanych komunikatów.
Prowadzący szkolenie:
Marcin Nowak
Architekt oprogramowania i lider techniczny z 11-letnim doświadczeniem w programowaniu w technologii Java i tworzeniu systemów klasy Enterprise. Posiada wieloletnie doświadczenie w pracy z systemami zarówno legacy jaki i greenfield, posiadającymi bardzo złożoną i trudną w zrozumieniu domenę biznesową (life science, farmacja, procesy produkcji, energetyka zawodowa). Wielki entuzjasta Domain Driven Design, architektury zdarzeniowej (EDA) oraz mikroserwisowej. Zwolennik dzielenia się wiedzą (https://appsynergy.pl) i przekazywania jej w jak najprostszy sposób, najlepiej na przykładach zaczerpniętych z prawdziwych projektów. Widział pracę z obu stron projektu (biznes i developerzy), więc bardzo dobrze rozumie potrzebę grania obu ekip do jednej bramki. Prywatnie szczęśliwy mąż i ojciec dwójki synów.
Stanowisko robocze

Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia

Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Architektura oprogramowania



