Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne

Tytuł: Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne
Kod: Arch-practical
Kategoria: Architektura systemów i aplikacji
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 2-3 dni
Odbiorcy: developerzy, architekci, DevOps
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Od architekta oczekuje się, że na podstawie celu biznesowego i oczekiwanych funkcjonalności dostarczy implementowalny projekt systemu.

Od wysokopoziomowych diagramów, przez narzędzia i niskopoziomowe rozwiązania techniczne, tak aby klient dostał dokładnie to czego potrzebuje, otrzymał niezbędne charakterystyki jakościowe, jak na przykład niskie koszty utrzymania i by jednocześnie nie przepłacił za całość.

Tymczasem większość zespołów deweloperskich podchodzi do architektury systemów beztrosko. Nie wie na jakie cechy niefunkcjonalne optymalizować swoją architekturę, nie bierze pod uwagę ograniczeń ludzkich i organizacji, zbyt szeroko definiuje odpowiedzialności modułów i mikroserwisów, nie wie jaki styl architektoniczny rozwiązania przyjąć i dlaczego, lub wprowadza kosztowne podejścia i narzędzia, które nie zwracają nakładu pracy na nie poniesionego. Wiele zespołów nie potrafi wizualizować, weryfikować i analizować możliwych architektur.

Źle przygotowana architektura jest w stanie pogrzebać każdy projekt, niezależnie od poziomu operowania językiem, bibliotekami i frameworkami.

Na tym szkoleniu nauczysz się wszystkiego co niezbędne, by świadomie tworzyć rozwiązania w jednym z trzech najpopularniejszych stylów architektonicznych: modularnym monolicie, rozproszonych synchronicznych mikroserwisach, i mikroserwisach asynchronicznych, podejściu inaczej zwanym Event Driven Architecture.

W ramach szkolenia uczestnicy ćwiczą trzy style projektując nowy system. Omawiamy typowe błędy i analizujemy rozwiązania. Uczymy jak świadomie wybrać styl adekwatny do sytuacji, jak tworzyć części systemu z wysokim SLA, jak zapewnić wysoką wydajność, jak podzielić moduły i mikroserwisy. Pokazujemy najnowsze rozwiązania takie jak rozproszone event logi (Apache Kafka) i doradzamy jak ich możliwości wpływają na projekt. Analizujemy jak struktura organizacyjna i zakładane cechy niefunkcjonalne wpływają na decyzje projektowe. Wszystko to podajemy na przykładach z życia, z projektów w których braliśmy sami udział.

Po szkoleniu uczestnicy potrafią
  • świadomie i profesjonalnie zdecydować na co optymalizują architekturę i które obostrzenia organizacyjno-techniczne muszą wziąć pod uwagę
  • stworzyć profesjonalny projekt architektoniczny w modelu C4, zweryfikować jego poprawność, przedstawić go inwestorowi oraz współpracować z innymi architektami nad projektem większego systemu
  • świadomie zdecydować czy projekt wymaga modularnego monolitu, mikroserwisów synchronicznych, czy architektury event-driven i w jakim zakresie
  • zapewnić wysokie SLA ścieżek krytycznych, i odpowiednią ich wydajność
  • zapewnić elastyczność systemu i gotowość na nowe wymagania przy minimalnym koszcie rozwoju
  • i w końcu stworzyć architekturę która będzie w pełni implementowalna

Wyróżniki szkolenia

  • praktyczne podejście
  • stworzenie profesjonalnego projektu architektonicznego w modelu C4
  • szkolenie jest agnostyczne względem języka programowania: nie ma znaczenia czy używasz na co dzień .NET, JVM, Ruby czy PHP. Będziemy tworzyć diagramy w Javie, ale nie trzeba znać samego języka

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. Jak organizować architekturę w firmie, jak organizować architektów, jak być odpowiedzialnym architektem i jak pracować z innymi
  2. Narzędzia i notacje (model C4)
  3. Niefunkcjonalne wymagania, ograniczenia organizacyjne, ludzkie, formalne, ich wpływ na architekturę
  4. Świadomy wybór kierunku optymalizacji architektury i jej konsekwencje (koszty utrzymania, wydajność, SLA, odporność na awarie, nakład inicjalny pracy, możliwości rozwoju i elastyczność, dostępność)
  5. Trzy style architektury współczesnej: modularny monolit
    1. skąd się wziął monolit niemodularny, czemu wiele projektów tak kończy
    2. jakie są zalety, wady, kiedy świadomie używać
    3. ryzyko wdrożenia z przykładami; jakie są sposoby minimalizacji problemu
    4. jak dzielić na moduły: czym jest prawdziwy moduł i zmiana paradygmatu dzielenia (zachowania, nie dane)
    5. ćwiczenia w budowaniu architektury modularnego monolitu
  6. Trzy style architektury współczesnej: system rozproszony synchroniczny
    1. jakie są zalety, wady, kiedy świadomie używać
    2. jak wyznaczać granice, moduły vs mikroserwisy
    3. jak testować systemy rozproszone
    4. metody komunikacji i kontroli: orkiestracja vs choreografia
    5. jak obsłużyć błędy komunikacji i brak transakcyjności
    6. jak zapewnić wydajność przy narzucie komunikacji sieciowej
    7. ćwiczenia w budowaniu architektury rozproszonej synchronicznej
  7. Trzy style architektury współczesnej: system Event Driven (rozproszony asynchroniczny)
    1. jakie są zalety, wady, kiedy świadomie używać
    2. procesowanie strumieni, łączenie zdarzeń z różnych strumieni i zapewnienie następstwa czasowego
    3. serwisy stanowe a bezstanowe, read model
    4. Sagi i procesy długotrwające
    5. obsługa błędów w systemie asynchronicznym
    6. nowoczesne narzędzia do messagingu na przykładzie Apache Kafka
      1. liniowa skalowalność i persystencja zdarzeń
      2. gwarancje kolejności
      3. partycjonowanie
      4. grupy konsumentów
      5. grupy konsumentów
      6. compacted topic i automatyczny read model
      7. transakcyjność publikacji
    7. ćwiczenia w budowaniu architektury Event Driven
  8. Świadomy wybór stylów architektonicznych obecnych w projekcie
    1. kiedy, które i jak wybrać
    2. Jak i kiedy mieszać
    3. Jak wielkość organizacji i projektu wpływa na zmianę podejścia
  9. Typowe błędy projektów architektonicznych na przykładach
  10. Optymalizacja na niskie koszty rozwoju
  11. Optymalizacja na wysokie SLA
  12. Narzędzia do weryfikacji architektury w monolitach i systemach rozproszonych
    1. archunit
    2. consumer driven contract


Pobierz program w formacie PDF

Trenerzy

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

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Wymagania przed Szkoleniem

Przygotowanie komputerów: - git - IntelliJ IDEA (może być wersja community) - JDK 11 - kamera video i mikrofon (wystarczy laptop)

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.