Założenia Agenda z podziałem na konkretne aktywności

Transkrypt

Założenia Agenda z podziałem na konkretne aktywności
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
Założenia
Biorąc pod uwagę mieszaną charakterystykę zespołu (role w projekcie, doświadczenie w
poszczególnych elementach) przyjęto następujące cele strategiczne:
•
szkolenie ma charakter interdyscyplinarny
•
szklenia ma na celu zapoznanie wszystkich uczestników z wyzwaniami i problemami jakie w
codziennej pracy dotyczą całego zespołu ( wszystkich ról)
•
szkolenia ma skłaniać uczestników do dyskusji i wymiany poglądów
•
ciężar materiału przesunięto w kierunku koncepcji i strategii zmniejszając proporcje ćwiczeń,
które przekazują wiedzę powszechnie dostępną w tutorialach
•
szkolenia ma przygotowywać uczestników do ew. wdrożenia podejścia mikroserwisów na
poziomie zmiany organizacji, wyjaśniając co i dlaczego musi być zmienione aby podejście
działało w praktyce
Agenda z podziałem na konkretne aktywności
DZIEŃ 1 - Przygotowanie infrastruktury
Problem do rozwiązania
Część 1 - wprowadzenie
Krótkie wprowadzenie teoretyczne
Przygotowanie CI/CD
Część 2 - service discovery
Krótkie wprowadzenie teoretyczne
Service discovery:
Część 3 - monitoring
Krótkie wprowadzenie teoretyczne
Monitoring, metryki
Część 4 - logowanie
Krótkie wprowadzenie teoretyczne
Centralne logowanie
DZIEŃ 2 - Architektura aplikacji i systemu
Problem do rozwiązania
Część 1 - wprowadzenie
Wprowadzenie teoretyczne
Utworzenie schematu architektury przez uczestników
Część 2 - wprowadzenie do SpringBoot i Micro Infra Spring
1/6
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
Krótkie wprowadzenie teoretyczne
Tworzenie pierwszych serwisów przez uczestników
Część 3 - wprowadzenie do testowania mikroserwisów
Krótkie wprowadzenie teoretyczne
AccuREST
DZIEŃ 3 - hackathon
Problem do rozwiązania
DZIEŃ 1 - Przygotowanie infrastruktury
Problem do rozwiązania
W świecie mikroserwisów bardzo istotną rolą jest komunikacja. DevOpsi oraz Developerzy powinni
bardzo mocno ze sobą współpracować. Usługi utworzone tego dnia przez uczestników będą
wykorzystane przy hacakathonie zorganizowanym ostatniego dnia.
Część 1 - wprowadzenie
Krótkie wprowadzenie teoretyczne
• Czym jest DevOps?
• CI/CD
• Infrastructure as a Code (Jenkins + Jenkins Job DSL)
• Przedstawienie Vagrant i Ansible
Przygotowanie CI/CD
Warsztat, na którym uczestnicy będą tworzyć lokalne środowisko w kontenerze lub maszynie wirtualnej.
Dobrani w pary (najlepiej DevOps + Developer) mają za zadanie postawić następujące części
infrastruktury przy użyciu Ansible:
• Jenkins
• Rundeck
• Nexus
2/6
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
Część 2 - service discovery
Krótkie wprowadzenie teoretyczne
• Co to jest service discovery
Service discovery:
Warsztat, na którym uczestniczy będą stawiać Ansiblem następujące usługi:
• ZooKeeper
• Exhibitor
Część 3 - monitoring
Krótkie wprowadzenie teoretyczne
• Co to jest KPI?
• Po co warto zbierać metryki?
Monitoring, metryki
Warsztat, na którym uczestniczy będą stawiać Ansiblem następujące usługi:
• Graphite
• Grafana
• Collectd
• Nagios
Uczestnicy będą monitorować stan ich komputerów.
Część 4 - logowanie
Krótkie wprowadzenie teoretyczne
• Jak zbierać logi w systemach rozproszonych
3/6
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
Centralne logowanie
Warsztat, na którym uczestniczy będą stawiać Ansiblem następujące usługi:
• Elasticsearch
• Logstash
• Kibana
Uczestnicy będą zbierać logi z usług systemowych.
DZIEŃ 2 - Architektura aplikacji i systemu
Problem do rozwiązania
Mikrousługi to coś więcej niż osobne repozytorium. Rzadko kiedy ktoś zadaje jedno z poniższych pytań
jak chce wprowadzić mikroserwisy do organizacji:
• Czy za wprowadzeniem architektury mikroserwisowej powinna pójść zmiana struktury
organizacji
• Jak deployować mikrousługi? (Każdy osobno, czy wszystko razem?)
• Jak testować integrację mikrousług? (End to end czy w izolacji?)
• Jak upewnić się, że nie złamano kompatybilnośći API? (Wersjonować API czy nie?)
• Skąd użytkownik ma wiedzieć, kto ma jakie API?
Warsztaty obejmować będą teoretyczne rozważania na wyżej wymienione pytania oraz ich praktyczną
realizację przez uczestników.
Celem będzie przekazanie informacji, iż nie ma jedynego słusznego podejścia - wszystko zależy od
wielu czynników.
Część 1 - wprowadzenie
Wprowadzenie teoretyczne
• Co to jest Prawo Conwaya i dlaczego jest ważne?
• Zalety i wyzwania związane z użyciem mikroserwisów
4/6
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
• Kiedy warto myśleć o rozpoczęciu pracy z wykorzystaniem architektury opartej na
mikroserwisach
• Projektowanie z myślą o awariach
• Decentralizacja zarządzania danymi
• Smart endpoints, dump pipes
• Strategie refaktoryzacji systemów monolitycznych
• Jak określić granicę serwisów
• Podejście Bounded Context z DDD
• Antywzorce: Nanoservice
• Debugowanie problemów na produkcji - CorrelationID w headerach
Część teoretyczna odbędzie się w formie dyskusji z uczestnikami w celu wymiany doświadczeń.
Utworzenie schematu architektury przez uczestników
• Jak podzielić ludzi i zespoły? DB, QA, Developers, Ops
• Jak obsłużyć awarie?
• Jak trzymać konfigurację?
• Jak podzielić części aplikacji?
Część 2 - wprowadzenie do SpringBoot i Micro Infra Spring
Krótkie wprowadzenie teoretyczne
• SpringBoot - Jedna technologia, która pokrywa całość developmentu
• Micro Infra Spring (Rozszerzenie SpringBoot i SpringCloud o brakujące ogniwa w architekturze
mikroserwisowej)
• Publikacja API przy pomocy Swaggera
Tworzenie pierwszych serwisów przez uczestników
• W parach Developer + DevOps uczestnicy stworzą mikroserwis na Spring Boocie
• Przedstawienie SpringBoot Actuatora
• Stworzenie pierwszych kontrolerów wersjonowanych w headerach
• Odpalanie aplikacji w różnych profilach
• Dodanie micro-infra-springa do aplikacji
5/6
Agenda szkolenia: Microservices - architektura aplikacji,
systemu i wdrożenia na platformie Java
• Działający Swagger i przedstawienie opublikowanej dokumentacji API
Część 3 - wprowadzenie do testowania mikroserwisów
Krótkie wprowadzenie teoretyczne
• Testowanie akceptacyjne serwisów
• Consumer Driven Contracts
• Testy end to end
AccuREST
• Warsztaty z obsługi AccuRESTa
• Każdy z utworzonych serwisów będzie musiał napisać testy swojego kontraktu
• Stuby serwisów zostaną opublikowane we wskaznym Nexusie
• Inni uczestnicy odpalą swoje aplikacje i dociągną stuby serwisów zależnych
• Wpięcie Consumer Driven Contracts w proces budowania mikroserwisu
DZIEŃ 3 - hackathon
Problem do rozwiązania
W ciągu tego dnia uczestnicy będą musieli zbudować system składający się z kilku, współpracujących
ze sobą mikroserwisów. Uczestnicy na pewno napotkają problemy komunikacyjne, dotyczących
testowania kodu, ponawiań żądań, skalowalności, monitoringu i logowania.
Będziemy wspierać uczestników w utworzeniu całego systemu. Gdyby zabrakło nam czasu by ów
system postawić, będziemy mieli wcześniej przygotowaną jego kopię, żeby przedstawić uczestnikom w
pełni działające rozwiązanie.
6/6

Podobne dokumenty