Trwają zapisy do grupy

Architektura Mikroserwisów na platformie Java

Podczas tego szkolenia dowiesz się, w jaki sposób projektować architektury mikroserwisów na przykładzie platformy Java oraz popularnych narzędzi i technologii używanych w praktyce w infrastrukturze mikroserwisowej. Nauczysz się, jak dobierać odpowiednie rozwiązanie mając na uwadze zarówno korzyści, jak i kompromisy poszczególnych wzorców architektonicznych.

3550 PLN+23% VAT (4366 PLN brutto / 1 os.)

Czas trwania szkolenia:4 dni (32h)

Poziom zaawansowania:

Kod kursu:MICROSERVICES

javamicroservicesarchitecturepatterns

Dostępne terminy

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

12 listopada
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

3550 PLN netto
Ikona podpowiedziDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Ikona podpowiedziZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

2 grudnia
Trwają zapisy na szkolenie

Trener:

Mateusz Kamiński

Cena:

3550 PLN netto
Ikona podpowiedziDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Ikona podpowiedziZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Forma szkolenia

Interesuje Cię szkolenie stacjonarne?

Dostępne terminy

Interesują Cię inne terminy?

Architektura Mikroserwisów na platformie Java

Cele szkolenia

  • projektowanie, implementowanie, testowanie i wdrażanie architektury mikroserwisów

  • poznanie wzorców architektonicznych niezbędnych dla poprawnie działającego systemu mikroserwisowej

  • przegląd popularnych narzędzi i ich zastosowanie w infrastrukturze mikroserwisowej

  • podejmowanie decyzji umożliwiających ciągły rozwój mikroserwisów oraz migrację istniejącego monolitu do architektury mikroserwisów


Dla kogo?

  • Doświadczonych programistów oraz architektów budujących i rozwijających systemy w języku Java


Zalety

  • Szkolenie "Architektura Mikroserwisów" ma charakter praktycznych warsztatów programistycznych realizowanych w języku Java z wykorzystaniem popularnego dla mikroserwisów frameworka w tym języku, czyli Quarkus

  • Praktyczne warsztaty pozwalają zapoznać się z wieloma popularnymi narzędziami i technologiami

  • Nauczysz się jak modelować serwisy, komunikację międzyserwisową oraz jak efektywnie zarządzać i utrzymywać produkcyjnie wdrożone serwisy

  • Dowiesz się, jakie są niezbędne charakterystyki mikroserwisów oraz jak o nie zadbać

  • Poznasz techniki wytwarzania testów niezbędnych w architekturze mikroserwisowej

  • Dowiesz się, jak podejść do migracji istniejących systemów monolitycznych oraz zadbać o wysoką jakość utworzonego rozwiązania


Wymagania

  • Podstawowa znajomość typowych wzorców architektonicznych

  • Podstawowa znajomość języka Java oraz dowolnego frameworka

  • Podstawowa znajomość zagadnień związanych z analizą i projektowaniem architektury oprogramowania


W cenie otrzymasz:

  • Materiały szkoleniowe

  • Certyfikat ukończenia szkolenia

  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program

Pobierz program w PDF

Wprowadzenie

  • Architektura kodu, a infrastruktury

  • Przegląd architektur infrastrukturalnych (monolit, modularny monolit, SOA, EDA, systemy aktorowe)

  • Korzyści i koszt wykorzystania mikroserwisów

  • Fallacies of Distributed Computing

Modelowanie mikroserwisów

  • Jak definiować serwisy

  • Operacje systemowe: komendy i zapytania

  • Business Capabilities

  • Przegląd wzorców strategicznych Domain Driven Design

  • Ubiquitous Language

  • Wprowadzenie do Event Storming

  • Bounded Context

  • Aggregate as a Service

  • Przegląd wzorców taktycznych Domain Driven Design

  • Wyzwania związane ze stosowaniem DDD

  • Context Mapping - wzorce mapowań kontekstów

  • Formalne podejście w modelowanie mikroserwisów z wykorzystaniem języków formalnych

Loosely-Coupled Architecture

  • Loose Coupling & High Cohesion

  • Abstrakcyjność i niestabilność

  • Komunikacja pomiędzy serwisami

  • Backward i Forward Compatibility

  • Shared libraries

Podejmowanie decyzji

  • Architecture Decision Record

  • ArchUnit jako sposób testowania architektury

  • JMolecules i DDD

Komunikacja międzyserwisowa

Omówienie problemu rzetelności komunikacji

  • Wzorce 1-1, 1-N, M-N

  • Komunikacja synchroniczna, a asynchroniczna

  • Komunikacja zdarzeniowa

  • Porównanie: Message Broker, Event Broker, Brokerless

  • Wyzwania komunikacji opartej na zdarzeniach

  • Wzorce transakcyjności obsługi wiadomości

  • Formaty wiadomości

  • Protocol Buffers

  • HTTP a REST

  • Client Driven API

  • Wzorce paginacji i projekcji danych

  • gRPC

  • Komunikacja, a niezawodność

  • HTTP Cache

API

  • Zakres widoczności API

  • Abstrakcyjne typy interfejsów i operacji

  • Sposoby wersjonowania API

  • Wzorce rezyliencji: Circuit Breaker, Fallback, Timeout, Retry

  • Service Discovery na przykładzie Consula

  • API Gateway

  • Backend For Frontend

  • Wzorzec API Composition

  • GraphQL

Command Query Responsibility Segregation

  • Kiedy stosować CQRS

  • Command

  • Query

  • Różne sposoby implementacji

Bazy danych

  • Sharding

  • SQL i schemat relacyjny

  • Anomalie we współbieżnej modyfikacji danych

  • Poziomy izolacji

  • Wzorce transakcyjności

  • NoSQL

  • ACID vs CAP

  • Modele danych w bazach danych

  • Jak podejmować decyzje?

Edge functions

  • Uwierzytelnienie

  • Autoryzacja

  • Cache - buforowanie replikowane

  • Throttling - Rate Limits, Bulkhead

  • Metryki

  • Logowanie

Transakcje

  • Transakcje lokalne vs rozproszone

  • Omówienie algorytmu 2PC

  • Eventual consistency

  • Saga

  • Podtypy transakcji w Sagach

  • Choreografia, a orkiestracja

  • Wzorce izolacji Sag

  • Event Sourcing

  • Wydajność agregatów

Testowanie

  • Jakość oprogramowania

  • Piramida testów

  • Testy E2E

  • TestContainers

  • Gherkin i Cucumber

  • Consumer-Driven Contract na przykładzie Pact

  • A/B testing

  • Chaos testing

Production Ready

  • Bezpieczeństwo komunikacji międzyserwisowej

  • Configurability i modele dystrybucji konfiguracji

  • Observability

  • Health Check API z wykorzystaniem Consul

  • Log aggregation z wykorzystaniem stosu ELK

  • Distributed tracing z wykorzystaniem Open Telemetry i Jaeger,

  • Alerty

  • Metryki aplikacyjne

Deployment

  • Podstawy Kubernetes

  • Omówienie modeli wdrażania

  • Metryki DORA

  • Deployment vs Release separation

  • Blue Green Deployments

  • Canary releases

  • Feature toggles

Mikroserwisy, a organizacja pracy zespołów

  • Prawo Conway’a

  • Komunikacja pomiędzy zespołami

  • Autonomia

Transformacja istniejących aplikacji do mikroserwisów

  • Minimalizacja ryzyka

  • Znajdowanie potencjalnych serwisów

  • Anti-Corruption Layer

  • Strangler Pattern

  • Wzorce pomocnicze

  • Wzorce weryfikacji poprawności migracji funkcjonalności do mikroserwisów

Autorem szkolenia jest Mateusz Kamiński

Absolwent informatyki Instytutu Informatyki na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, obecnie Engineering Manager w Sages. Przez wiele lat prowadził zespoły programistyczne wytwarzające współczesne oprogramowanie, kładąc przy tym nacisk na jakość i elastyczność tworzonych rozwiązań. Od kilku lat lider zespołu technicznego Sages, który to w niedługim czasie z niewielkiego startupu rozwinął się w software house. Od początków kariery był mentorem w zespołach programistycznych,…