jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

45
Tomasz Lelek tomekl007 @tomekl007

Upload: tomasz-lelek

Post on 28-May-2015

350 views

Category:

Software


0 download

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 Hystrix

TRANSCRIPT

Page 1: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Tomasz Lelek

tomekl007

@tomekl007

Page 2: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Page 3: 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

Page 4: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Rozwiązywanie problemów

Page 5: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Monolit

Page 6: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Domena aplikacji

Page 7: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Jeden obiekt – wiele tożsamości

Page 8: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Ta sama funkcjonalność -nowa architektura

Page 9: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Przekierowanie requestów

Page 10: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Url Rewriting

#Apache rewrite url, work for post requestRewriteEngine OnRewriteRule /generate http://reportservice.no/generate [P]

Page 11: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Potrzeby

Page 12: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

i

Page 13: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Embedded Container

Page 14: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Startowanie serwisu

./sbt>container:start[info] Started [email protected]:8090[success] Total time: 2 s

Page 15: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Jak wygląda mikro serwis ?

Page 16: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Użycie przez importowanie klienta

Page 17: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Wielu klientów

Page 18: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Bardzo specyficzny model ( core )

Page 19: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Rest, json, http

Page 20: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Architektura

Page 21: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Zarządzanie konfiguracja

Page 22: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Pytanie o konfiguracje

Page 23: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Podmiana konfiguracji

Page 24: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Monitorowanie serwisów - status

Page 25: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Monitorowanie - zależności

Page 26: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Grafowa wizualizacja

Page 27: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Wizualizacja zależności

Page 28: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Gdzie jest serwis z konfiguracjami ?

Page 29: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

etcd

Page 30: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Circuit Breaker

Page 31: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Hystrix

Page 32: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Implementacja

Page 33: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Wiele serwisów = wiele logów

Page 34: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Jedno miejsce przeglądania

Page 35: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

+ logstash

Page 36: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Konfiguracja Logstash

Page 37: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

/_search?pretty&type=batch-staging

Page 38: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Page 39: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Odpowiednia dokumentacja

Page 40: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Dokumentacja

Page 41: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Wygenerowany json

Page 42: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Swagger-ui

https://github.com/wordnik/swagger-ui

Page 43: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Dokumentacja jako klient

Page 44: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Czas na mikro serwisy !

Page 45: Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?

Dziękuje, pytania ?