Novinky a trendy z DDD a Microservices priamo z µCon London 2019

Zdeno Jašek

04.06.2019

Koncom mája som sa zúčastnil konferencie µCon London 2019, určite jedného z najväčších svetových podujatí tohto typu. Stretnutie bolo zamerané na microservices, DDD (Domain-Driven Design) a softvérovú architektúru. Vo svete vývoja veľkých aplikácií sú tieto témy veľmi úzko prepojené. Softvérová architektúra veľkých informačných systémov je v súčasnosti stavaná hlavne ako architektúra typu microservices. Domain-Driven Design je taktika členenia aplikácie na logické celky, ktoré následne určujú funkčnosť a obsah jednotlivých modulov v microservices.

Hlavná myšlienka ktorú som si priniesol z µCon London 2019.

V krátkosti by sa dali trendy softvérovej architektúry veľkých informačných systémoch zhrnúť tak, že už nikto nepochybuje o potrebe rozdeľovania aplikácií na menšie subsystémy – mikroslužby. A že rozhodujúcu úlohu pri tomto rozdeľovaní hrá Domain-Driven Design so svojou koncepciou „Bounded Context“. Doménový význam a doménová reprezentácia pojmov je považovaná za kľúčový aspekt, cez ktorý sa architekti pozerajú na definovanie microservices. Veľa sa na prednáškach spomínal aj koncept doménových udalostí a vzájomnej komunikácie modulov prostredníctvom nich. Nechýbali ani „filozofické prednášky“. Pre mňa osobne bola veľkým prínosom prezentácia Simona Wardleyho: „Crossing the River by Feeling the Stones“. Zamýšľal sa v nej nad významom stratégie, mapy, komunikácie a doktrín pri vývoji softvéru.

Najdôležitejšie postrehy z prednášok ktoré som navštívil Najdôležitejšie postrehy z prednášok ktoré som navštívil

  • Trendom je zdôrazňovanie sociálneho aspektu vývoja – rozdeľovania vývojárov na tímy a ich zviazanosť s konkrétnou doménou a službami.
  • Pozor na skoré oddeľovanie modulov – na dobré definovanie modulov je znalosť domény kľúčová.
  • Domain-Driven Design použila firma Taboola na riadenie akvizície a pochopenie správnej integrácie tímu novej firmy do tímu pôvodnej firmy.
  • Choreography 2.0 kladie veľký dôraz na to, aby správy posielané medzi modulmi jasne komunikovali svoj zámer (intention).
  • Neexistuje softvér bez dizajnu. Existuje iba sofvér s dobrým dizajnom alebo zlým dizajn.
  • K implementácii security na úrovni containerov (napr. Docker) treba pristupovať novým spôsobom, security as a code => DevSecOps.
  • Ak začínate s DDD, zvážte postupný nábeh. Napríklad už len využitie ValueObjectov v dizajne môže výrazne pomôcť na každom projekte.
  • Event store je vhodná databáza napríklad na riešenie audit logov.
  • Modulárny monolit (modulith) je oveľa lepšia architektúra než distibuovaný „Big Ball of Mud“. Preto treba nájsť najprv prirodzené hranice vo vnútri domény („Bounded Context“) a až potom sa snažiť o definovanie modulov.
  • Pozor na implementáciu „Big Ball of Mud“ ako distribuovaného systému (microservices). Takýto koncept vyberá to najhoršie z oboch svetov: z monolitu jeho neoddelené moduly a z microservices zase distribuovanosť riešenia. Zabrániť sa tomu dá využitím Bounded Contextu z DDD.
  • wisdom = knowledge + experience + good judgement
  • Aj GUI môže byť modulárne. Používajú sa dva prístupy: Edge-Side Include a Server-Side Include.

Pár slov o µCon London 2019.

Konferenciu organizovala komunita „Skills Matter“ v Londýne. Pred tromi rokmi som sa zúčastnil podobného stretnutia tejto komunity, ktoré však bolo zameraná výlučne len na Domain-Driven Design. Vtedy ho otváral Eric Evans – „father or everything“ (ako ho nazval moderátor). Organizátori tohtoročnej DDD-konferencie sa rozhodli zlúčiť tému DDD s témou microservices. Keďže ide o veľmi príbuzné oblasti, ich zlúčenie rozhodne prospelo. Stretnutie sa podstatne rozrástlo o technologický rozmer a aj o účastníkov. A zatiaľ čo stretnutie pred tromi rokmi trvalo iba jeden deň, tohto roku už rozšírený záber konferencie zabral tri dni v troch samostatných behoch. Všetky prednášky z konferencie sú zverejnené aj na webe organizátora – komunity Skills Matter. Záznamy z konferencie.

Chcete sa dozvedieť viac?

Ak máte chuť vypočuť si niektoré témy z konferencie podrobnejšie, pozývam vás na najbližšie stretnutie slovenskej DDD-community, 17.6. o 18:00 v HubHub v Bratislave, kde sa vybraným prednáškam budem venovať hlbšie (viď. www.dddcommunity.sk)

Zdeno Jašek

Ďalšie blog posty, čo by ťa mohli zaujímať