Messaging

Messaging

Zdobądź kompletną wiedzę w zakresie komunikacji asynchronicznej z wykorzystaniem message brokera i message streamingu. Poznaj od podszewki wszystkie składowe mechanik transportu wiadomości w twoim systemie. Dowiedz się, na jakie pułapki musisz być przygotowany i jak sobie z nimi poradzić.

Czas: 4 dni
Uczestnicy: do 16 osób (1-2 trenerów)

O szkoleniu

Czy kiedykolwiek zdarzyło Ci się pracować przy systemie rozproszonym, w którym teoretycznie niezależne od siebie aplikacje musiały się ze sobą komunikować? Być może pojawiły się inne mechanizmy integracji międzyusługowej niż synchroniczne żądania wykorzystujące dobrze znany protokół HTTP?

Zapewne zaczęło się niewinnie – od dodania do infrastruktury systemu tzw. brokera wiadomości. Na samym początku zdawał się spełniać powierzoną mu rolę, jednakże ze względu na wykorzystanie wysokpoziomowego frameworka wraz z masą abstrakcji, co w połączeniu z brakiem dogłębnego zrozumienia mechanizmów (topologii sieci, routingu komunikatów oraz modelami dostarczenia wiadomości) powolnie prowadziło do nieuchronnej katastrofy.

Horyzontalne skalowanie aplikacji, równoległe przetwarzanie komunikatów przez niezależne instancje, zwiększenie ogólnej przepustowości i niezawodności systemu, a może i dodatkowa integracja z mikroserwisem zaimplementowanym w innej technologi – rzeczywistość czy mrzonka?

Rozwiązaniem na to wszystko mogło być przecież dodanie Kafki, wszakże streaming brzmi lepiej niż jakiś message broker (poza semantyką to i tak w sumie to samo), a do tego działa znacznie szybciej – w końcu jesteśmy w stanie przetworzyć o jeden rząd wielkości wiadomości więcej w danym interwale czasowym niż poprzednio, o ile nie wymieszają się nam offsety i przypadkiem zduplikujemy dane. Oczywiście, wszystko dla pojedynczej instancji konsumenta, i analogicznej ilości partycji (w sumie dziwna nazwa na kolejkę), bo inaczej całkowicie zaburzymy kolejność.

Aha, posiadamy wyłącznie jeden, aczkolwiek bardzo mocny serwer – replikacja danych jest zbyt abstrakcyjnym pojęciem, a kraft kojarzy się co najwyżej z browarem.

Brzmi jak osobiste doświadczenia? A może całkowicie nieznane pojęcia? W jednym i drugim przypadku, to szkolenie będzie właśnie dla Ciebie 🙂

Te warsztaty nie są typowym “przejściem” po narzędziu X z użyciem frameworka Y – wręcz przeciwnie, kładziemy w nich przede wszystkim nacisk na dogłębne zrozumienie wszelkiego rodzaju mechanik związanych z komunikacją asynchroniczną pomiędzy aplikacjami w środowisku rozproszonym. Niezależnie od tego czy w swoim projekcie zdecydujesz się na wykorzystanie brokera wiadomości lub mechanizmu strumieniowania danych, będziesz w stanie poprawnie dobrać odpowiednie rozwiązanie, mając na uwadze wszelkiego rodzaju wyzwania wynikające zarówno z teoretycznych podstaw implementacji systemów rozproszonych jak i praktycznego zastosowania przykładowych komponentów na poziomie infrastruktury.

Czego nauczy się uczestnik?

  • Fundamentalnych zagadnień dotyczących asynchronicznej wymiany wiadomości pomiędzy aplikacjami w środowisku sieciowym.
  • Teoretycznych aspektów systemów rozproszonych i ich implikacji na komunikację międzyusługową.
  • W jaki sposób takie pojęcia jak czas, porządek, kolejność oraz przyczynowość determinują zachowanie naszego systemu.
  • Dogłębnego zrozumienia takich elementów infrastruktury jak broker wiadomości oraz strumień danych z uwzględnieniem różnic pomiędzy nimi.
  • Praktycznego wykorzystania brokera wiadomości oraz strumienia danych do realizacji konkretnych wymagań biznesowych.
  • W jaki sposób dobór konkretnej topologii oraz routingu wpływa na przesyłanie komunikatów.
  • Czym różnią się od siebie wybrane modele dostarczenia wiadomości.
  • Dlaczego równoległe przetwarzanie komunikatów nierzadko stanowi wyzwanie.
  • Jak zagwarantować ściśle określoną kolejność komunikatów mając na uwadze horyzontalne skalowanie producentów oraz konsumentów wiadomości.
  • Jak poradzić sobie z transakcyjnościa, idempotentnością, deduplikacją oraz obsługą błędów w odniesieniu do przetwarzania wiadomości.
  • Czy replikacja danych i praca w środowisku wysokiej dostępności (HA) faktycznie jest trudna.
  • Omówienia i porównania istniejących narzędzi wraz z doborem konkretnego z nich w zależności od przypadku użycia.

Program szkolenia

Dzień 1

  • Zagadnienia fundamentalne
  • Rodzaje komunikacji międzyusługowej
  • Broker wiadomości
  • Topologia i routing komunikatów
  • Modele dostarczania wiadomości

Dzień 2

  • Równoległe przetwarzanie komunikatów
  • Spójność danych
  • Kolejność dostarczania wiadomości
  • Transakcyjność
  • Obsługa błędów

Dzień 3

  • Wprowadzenie do strumieniowania
  • Broker wiadomości vs strumień danych
  • Strumienie w praktyce
  • Deduplikacja komunikatów
  • Reguły persystencji danych

Dzień 4

  • Partycjonowanie – przetwarzanie równoległe
  • Skalowanie producentów i konsumentów
  • Agregacja danych
  • Streaming – zagadnienia dodatkowe
  • Replikacja danych

Grupa Docelowa

Szkolenie dedykowane jest programistom mid/senior oraz architektom chcącym ugruntować i pogłębić wiedzę w zakresie komunikacji asychnronicznej z naciskiem na jej praktyczne wykorzystanie w systemach rozproszonych.

Trenerzy

Dariusz Pawlukiewicz

Współzałożyciel DevMentors.io, konsultant, inżynier oprogramowania, architekt w EcoVadis. Entuzjasta Domain-Driven Design oraz systemów rozproszonych. Ex-Microsof MVP oraz prelegent na konferencjach branżowych.

Piotr Gankiewicz

Współzałożyciel DevMentors.io, inżynier oprogramowania w Tickmill pracujący nad systemami tradingowymi, a po godzinach kontrybutor open source rozwijający Iggy.rs (message streaming w Rust). Ex-Microsof MVP oraz prelegent na konferencjach branżowych.