Tworzenie złożonych systemów w architekturze mikroserwisowej

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ąć
- Dzielenie modularnego monolitu na mikroserwisy
- Komunikacja synchroniczna i asynchroniczna w architekturze mikroserwisowej
- 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 mikroserwisowa
- Zalety mikroserwisów
- Wyzwania systemów rozproszonych
- Monolit vs Mikroserwisy
- Refaktoring systemów typu legacy za pomocą architektury mikroserwisowej
- SLA
- Integracja mikroserwisów
- API niezależne od technologii
- Wspólna baza danych
- Komunikacja synchroniczna vs asynchroniczna
- Zdalne wywołania procedur (RPC)
- REST
- Protokół HTTP
- JSON
- Zasoby
- Metody HTTP
- Kody odpowiedzi
- Reprezentacje
- Domena
- CRUD vs domena
- Mapowanie domeny na REST
- HATEOAS - maszyna stanów
- Cache
- Wersjonowanie API
- Ten sam kod w wielu usługach
- Service Discovery
- Load balancing
- Retryable
- Grodzie
- Circuit breaker
- Rozproszone logowanie
- Serwer konfiguracyjny
- Dzielimy monolit
- Powody dzielenia
- Nierównomierny rozwój systemu
- Struktura zespołu
- Technologia
- Bezpieczeństwo
- Splątane zależności
- Problem wspólnej bazy danych
- Eliminowanie relacji kluczy obcych
- Wspólne dane
- Współdzielone dane
- Wspólne tabele
- Problem transakcji
- Odrzucanie całej operacji
- Transakcje rozproszone
- Wysoko wydajne raporty danych - implementacja wzorca CQRS poziom 2
- Problem wydajności
- Widoki zmaterializowane
- Powody dzielenia
- Testowanie mikroserwisów
- Piramida testów
- Testy E2E i ich wady
- Zależność od środowisk wdrożeniowych
- Niedeterministyczność
- Testy kontraktowe
- Provider
- Consumer
- Biblioteka PACT
- Testowanie na produkcji
- Deployment vs Release
- Wdrożenia kanarkowe
- Monitoring
- Bezpieczeństwo
- Wprowadzenie
- SSO
- OAuth 2.0
- JWT
- 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 (mikroserwisy). Zalety i wyzwania stojące podczas wykorzystania takiej architektury oraz sprawne przejście od monolitu, poprzez modularny monolit do klasycznych mikroserwisów na przykładzie prawdziwej aplikacji.
Cel szkolenia
Zrozumiesz, że mikroserwisy to nie tylko modny zwrot, przyciągający uwagę programistów w ofertach pracy, przygotujesz się na wyzwania idące za wdrożeniem architektury mikroserwisowej, a także zobaczysz jak najlepiej wykorzystywać zalety takiego podejścia. Zrozumiesz jak dobrze wyznaczać granice serwisów oraz jak zadbać o poprawną i bezawaryjną komunikację między nimi. Na koniec pochylimy się nad kwestiami bezpieczeństwa i testowania rozproszonych usług.
Dla kogo?
Adresatami są osoby pracujące na codzień, lub mające zamiar pracować ze złożonymi systemami informatycznymi w architekturze rozproszonej. 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?
Jeżeli w Twoim projekcie macie zamiar podjąć decyzję o wykorzystaniu mikroserwisów to dużym plusem będzie zdobycie umiejetności prawidłowego podzielenia obecnego monolitu, a następnie wdrożenie zdobytej na kursie wiedzy jak zrobić to najefektywniej.
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órego zdecydowanie wpłyną na jego jakość. Jeżeli dopiero zamierzasz wdrożyć podział na mikroserwisy to dzięki kursowi zrobisz to dobrze i bezpiecznie.
Czego się nauczysz?
Poznasz techniki projektowania aplikacji w architekturze mikroserwisowej oraz dzielenia na niezależne usługi istniejących aplikacji w formie monolitu. Poznasz techniki zapewnienia bezawaryjnej i bezpiecznej komunikacji pomiędzy usługami oraz wykorzystania największych zalet architektury.
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.
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



