Breaking the Monolith from JavaZone 2013

10 Oct 2013

Check also Antares insight post.

Breaking the Monolith (video)

Stefan Tilkov beskrev en arkitektur for smidighet (manøvrerbarhet) og hvordan man kan løse opp i en monolitt. Basert på hans og Innoq sin erfaring. Med monolitt mener han systemer med millioner kodelinjer - de svære systema som er så nedsylta i teknisk gjeld at de ikke lar seg endre eller utvide. “Nobody designs a monolith on purpose”, men det blir slik fordi man tenker at 1 prosjekt = 1 system.

I steden for å bygge ett stort system, så bygger man flere undersystem. Undersystema er isolerte fra hverandre, med: * egen persistens * intern, separat logikk * egen domenemodell * egen implementasjonsstrategi * eget UI * egen utvikling * begrenset interaksjon med andre system. * autonom produksjonssetting og drift

Nevnte 12 factor app, Dropwizard og reactive. Fra 12 factor: * separat, kjørbar prosess * tilgang via standard porter og protokoller * shared-nothing model * horisontal skalerbart * rask start og recovery

Arkitektur gjøres på 3 nivåer: * Domene-arkitekturen deler systemet i undersystemer, og sier hva som skal gjøres i hvert undersystem. * Makro-arkitekturen spesifiserer grensesnitt mellom undersystemene og omgivelsene. * Mikro-arkitektur internt for hvert undersystem er mest mulig fri.

Necessary rules and guidelines
Main objectives over time

Migration

prerequisites procedure 1. Close for change 2. Enable integrateability (authentication and navigation) 3. Create new system for new feature 4. Copy and isolate

Posts