2. 2 / 19
Proč Microservices
●
Oproti monolitu? To je dobrá otázka.
●
Snažší deployment.
●
Menší nutný kontext pro vývojáře. Může se
více soustředit na samotnou úlohu, než řešit
hodně věcí okolo.
5. 5 / 19
Synchronizace dat
●
Každá služba má vlastní databázi a vzájemně
si nelezou do zelí
●
To prospívá izolaci datových struktur a dat
samotných
●
Entity, které hrají roli ve více databázích, mají
své tabulky v každé z nich. Jsou propojeny
referencí a atributy odpovídají kontextu
7. 7 / 19
Uživatelská session
●
Držení uživatelské
session v systému → trochu overkill
●
Řešením může být samonosná session cookie
●
JWT – specifkace pro přenos autorizačního
tokenu
●
JWT putuje s každým požadavkem napříč
službami a nese sebou informaci o volajícím,
což může být uživatel, nebo microservice
9. 9 / 19
Periodicky spouštěné úlohy
●
Nutnost zajistit provedení úlohy pouze jednou
instancí
●
Nutnost zajistit sekvenční provedení úloh
●
Bez nutnosti vlastní Quartz komponenty v
každé službě
●
Bez nutnosti nastavovat všechny CRONy pro
každou službu zvlášť
11. 11 / 19
Cluster
●
Docker Swarm – nativní nástroj pro
clusterizaci docker instancí aneb jak si udělat
jednu velkou docker instanci
●
Umožňuje replikování služeb
●
Umožňuje bezvýpadkový release
●
Umožňuje auto restart
●
Je snadný na použití
13. 13 / 19
Unit testy – TDD ve Springu
●
V první fázi vývoje. Testuje se kód.
●
Cílem je co nejlepší code coverage.
●
Umožňuje nahodit celý container jako HTTP
server a přímo testovat REST endpointy.
●
Spring profl ofine“ znamená, že nahozená
služba neprovolává nic směrem ven.
●
Umožňuje Dependency injection a
testování bean.
16. 16 / 19
Integrační testy
●
Testy nad celou běžící aplikací.
●
Behaviorální testy – lidsky čitelný zápis
●
Slouží k otestování celé funkcionality
●
Slouží jako dokumentace
●
Slouží vývojářům při práci, podobně jako unit
testy