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