jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
DESCRIPTION
Tworząc architekturę w oparciu o koncepcję mikro serwisów, przed zespołem staje wiele wyzwań. -Budowanie łatwo rozszerzalnej architektury mirkoserwisów. Tworząc nowy serwis, zawsze potrzebujemy danych z innego. Aby je otrzymać wystarczy zaimportować lekkiego klienta, który jest interfejsem innego serwisu. -Jak odpowiednio wykorzystać protokół http, aby zamienić go w swój największy atut i nie próbować ukrywać go niepotrzebnie ? -które funkcjonalności wyciągnąć jako pierwsze ? Jak wykorzystać domain driven design, do modelowania domeny biznesowej, w sposób specyficznych dla danego mikroserwisu ? -Jak zarządzać konfiguracją, i deploymentem wielu serwisów ? -implementowanie wzorca Circuit Breaker, używając biblioteki Netflix HystrixTRANSCRIPT
Tomasz Lelek
tomekl007
@tomekl007
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Plan Prezentacji
1. kontekst biznesowy2. technologia3. architektura4. zarządzanie konfiguracja5. monitorowanie6. zbieranie logów7. nowoczesna dokumentacja
Rozwiązywanie problemów
Monolit
Domena aplikacji
Jeden obiekt – wiele tożsamości
Ta sama funkcjonalność -nowa architektura
Przekierowanie requestów
Url Rewriting
#Apache rewrite url, work for post requestRewriteEngine OnRewriteRule /generate http://reportservice.no/generate [P]
Potrzeby
i
Embedded Container
Startowanie serwisu
./sbt>container:start[info] Started [email protected]:8090[success] Total time: 2 s
Jak wygląda mikro serwis ?
Użycie przez importowanie klienta
Wielu klientów
Bardzo specyficzny model ( core )
Rest, json, http
Architektura
Zarządzanie konfiguracja
Pytanie o konfiguracje
Podmiana konfiguracji
Monitorowanie serwisów - status
Monitorowanie - zależności
Grafowa wizualizacja
Wizualizacja zależności
Gdzie jest serwis z konfiguracjami ?
etcd
Circuit Breaker
Hystrix
Implementacja
Wiele serwisów = wiele logów
Jedno miejsce przeglądania
+ logstash
Konfiguracja Logstash
/_search?pretty&type=batch-staging
Odpowiednia dokumentacja
Dokumentacja
Wygenerowany json
Swagger-ui
https://github.com/wordnik/swagger-ui
Dokumentacja jako klient
Czas na mikro serwisy !
Dziękuje, pytania ?