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