Słowo mikroserwisy padło w tym roku na konferencjach i portalach branżowych w liczbie, która powinna znaleźć się w Księdze Guinessa. Czy ten nowy, eksplodujący na naszych oczach trend zmienia na zawsze naszą branżę, czy też przeminie jak wiele innych rozwiązań z kategorii „silver bullet”. Postaramy się podczas tego szkolenia odpowiedzieć na wiele pytań, wprowadzić podstawowe wzorce i przedstawić techniki projektowania mikrousług. Podzielimy się z Wami naszym doświadczeniami i obserwacjami z implementacji mikrousług i przestrzec przed czającymi się niebezpieczeństwami, a przede wszystkim wywołać dyskusję, która pozwoli odnaleźć Wam Waszą własną drogę w tej nowej architekturze.
Dzień 1
Wprowadzenie do pojęcia architektura oprogramowania
- Czym jest architektura aplikacji, oprogramowania i korporacyjna?
- Czym różni się architektura od projektu (ang. design)
- Jakie można wyróżnić kluczowe elementy architektury aplikacyjnej
Dekompozycja domeny wykorzystując Domain-Driven Design
- Różne podejścia do strukturyzowania architektury
- Ubiquitous language – baza komunikacji między programistami i ekspertami dziedzinowymi
- Bloki budujące w DDD i ich odpowiedzialności
- Strategiczny rozwój systemu (ang. strategic design)
Część praktyczna
Analiza zadania projektowego, przygotowanie projektu aplikacji (z podziałem na moduły, usługi)
oraz dobór odpowiednich narzędzi.
Dzień 2
Micro Services
- Monolityczne aplikacje i Micro Services
- Architektura wokół funkcjonalności biznesowych
- Smart endpoints and dumb pipes
- Decentralizacja zarządzania
- Decentralizacja danych
- Podział na Micro Services
Usługi RESTful Web Services
- Konfiguracja aplikacji i podstawowe usługi: praca z parametrami
- Content negotiation
- Projektowanie URLi
- Wykorzystanie parametrów i metod HTTP
- Wersjonowanie i zarządzanie zasobami
- Hypermedia as the Engine of Application State (HATEOAS)
Część praktyczna
Praktyka budowy mikro usług oraz ich wzajemnej komunikacji.
Dzień 3
Produkcyjne wdrożenie mikrousług
- Testowanie akceptacyjne serwisów (Consumer Driven Contracts)
- Infrastruktura jako kod
- Modelowanie procesów w obrębie serwisów (orkiestracja i choreografia)
- Bezpieczeństwo i ograniczanie dostępu poprzez SSO i JSON Web Token
- Monitoring usług
- Minimalizacja zasięgu problemów (Cache, Circuit Breaker)
Część praktyczna
Produkcyjne wdrożenie utworzonych usług wraz z wymaganymi zabezpieczeniami oraz
monitoringiem.
Dzień 4
Nierelacyjne bazy danych (noSQL)
- Dostępne bazy noSQL; kiedy warto i do czego
- Wolumen, szybkość, spójność – w odniesieniu do dostępnych źródeł danych
- CAP theorem w praktyce
- Projektowanie modeli pod kątem odczytu
Część praktyczna
Wykorzystanie bazy MongoDB w środowisku mikro usług.